解码为yuv
来源:互联网 发布:古代西亚北非文明知乎 编辑:程序博客网 时间:2024/06/06 02:03
参考各路大神音视频开发,现总结如下,以免以后忘记。
首先说一下本篇转为的格式为yuv420p,yuv420p实际上是一种数据结构,四个y公用一个uv,所以一个y只用了四分之一u和四分之一v
先来一张解码流程图
av_register_all()初始化了格式封装信息库,初始化了muxer(复用器)和demuxer(分离器)和协议,实际上调用了 av_register_input_format()
和 av_register_output_format()
解释一下复用器和分离器
复用器就是将视频压缩数据(H.264)和音频压缩数据(AAC)合并成一个封装格式数据(mkv)
分离器就是将封装格式中的视频压缩数据和音频压缩数据分离开来
注册完以后并对数据初始化后就可以打开视频文件了
avformat_open_input()返回值为0代表成功
打开后就可以查看视频压缩数据和音频压缩数据流信息
avformat_find_stream_info()返回值大于等于0代表成功
找到相应的视频压缩数据和音频压缩数据后就根据解码器的ID去找相应的解码器
avcodec_find_decoder()如果返回值为空代表没有找到相应的解码器
找到解码器后打开解码器
avcodec_open2()返回值小于0代表打开解码器失败,打开解码器并不代表解码
打开解码器后然后读取一帧一桢的压缩(编码)数据
av_read_frame()返回值代表读取的压缩数据字节大小,0代表解码完成
读取一帧一桢的压缩数据后然后开始解码
avcodec_decode_video2()解码压缩数据,返回解码的字节大小
解码完成后该关闭的关闭,该释放的释放,代码中带有更详细的注释
项目地址
- 解码为yuv
- 多线程解码并保存为yuv
- ios 解码H264为YUV格式
- FFmpeg视频解码为YUV像素数据文件
- ffmpeg解码数据保存为yuv格式
- 使用ffmpeg实现解码并保存为yuv文件
- 在Andorid中使用FFmpeg实现YUV解码为BMP
- 使用ffmpeg接口解封装解码为YUV
- 使用ffmpeg接口将h.264解码为YUV
- 264 解码之 yuv
- jpeg6b直接解码yuv
- 程序实现了视频码流(支持HEVC,H.264,MPEG2等)解码为YUV数据。
- ffmpeg实战教程(一)Mp4,mkv等格式解码为h264和yuv数据
- 学习的第一个FFmpeg-demo---解封装且解码视频后存储为yuv和h.264文件
- yuv转换为rgb
- YUV编码为JPEG
- ffmpeg中获取yuv解码后数据
- <四> H264解码输出yuv文件
- ssh框架整合出现错误二
- [python]leetcode(437). Path Sum III
- 用Navicat for Mysql导入.sql文件
- Unity游戏开发——UnityUGUI打包图集
- java后台实现发送邮件的功能
- 解码为yuv
- HDU 4734 F(x) 数位DP
- 121. Best Time to Buy and Sell Stock
- 【自定义View】1.View的滑动
- LeetCode 135 : Candy
- CentOS 6.5 下 CDH 5.2.1 集群安装
- 关于使用file上传图片获取图片绝对路径
- HTML初学习
- H5~居中、盒模型、float(浮动)、position(定位)等问题