ffmpeg代码学习计划(持续更新)
来源:互联网 发布:制作电子相册软件 编辑:程序博客网 时间:2024/05/17 02:05
最近学习FFmpeg代码,好记性不如烂笔头,代码较复杂,入坑要小心,为了避免不小心沉浸在代码的海洋里,在此列个代码学习计划,学习习惯因人而异,这里仅供参考:
注:部分分析其他大神(如雷神等)已经做过,所以就不再重新写,直接加个传送门过去。
一、概览
FFmpeg代码比较复杂,在没熟悉之前建议先不要急着看代码,再说,这么多代码你也不知道从哪里看起。不防泡杯热茶,看看代码的整体结构,先在脑海里勾勒一幅草图:
《FFmpeg源代码结构》
二、找入口
三、从点到线
解码
avformat_open_input():打开媒体。
avformat_find_stream_info():获得媒体信息。
av_read_frame():获取一帧压缩编码数据(即一个AVPacket)。
avcodec_decode_video2():解码一个AVPacket的第一个视频帧,若一个AVPacket包含多个视频帧,则需要多次调用此方法。
avcodec_decode_audio4():解码一个AVPacket的第一个音频帧,若一个AVPacket包含多个音频帧,则需要多次调用此方法。
avformat_close_input():关闭和释放一个AVFormatContext,与avformat_open_input相对应。
注:上面几个函数可以理解成一些点,熟悉这些点之后再回头review一遍《FFmpeg源代码结构》的解码流程和《ffplay.c函数结构简单分析》,把这些点串成一条解码线路,以加深对代码的理解。
编码
avformat_write_header():写流媒体封装格式头。
avcodec_encode_video2():编码一帧视频。
avcodec_encode_audio2():编码一帧音频。
av_write_frame():封装输出一个音视频包。
av_write_trailer():写流媒体封装格式尾。
四、扩展
TBD
- ffmpeg代码学习计划(持续更新)
- FFMPEG源码分析(1)--持续更新
- FFMPEG源码分析(1)--持续更新
- FFMPEG 资料【持续更新】
- FFMPEG源码分析(1)----初版--持续更新
- FFMPEG源码分析(1)----初版--持续更新
- FFMPEG源码分析(1)--再版--持续更新
- FFMPEG源码分析(1)--再版--持续更新
- Django 代码片断收集(持续更新)
- iOS代码片段(持续更新)
- 常用JavaScript代码(持续更新)
- 深度学习代码(持续更新中)
- Django 代码片断收集(持续更新)
- Android常用工具代码块(持续更新)
- JS 自定义代码库(持续更新)
- processing 常用代码片段(持续更新)
- iOS 常用代码汇总(持续更新)
- caffe代码阅读(持续更新)
- php 学习之面向对象2
- Tautology poj3295
- JS操作数组
- 第一个让我觉得有点小激动的扫雷程序
- 10 种机器学习算法的要点(附 Python 和 R 代码)
- ffmpeg代码学习计划(持续更新)
- opencv只操作不规则多边形roi
- Oracle数据库连接Eclipse(JDBC六大步骤详解)
- Angularjs------- 定义全局变量的3中方法
- AndroidStudion遇到VM内存不足
- Programming Exercise 2: Logistic Regression Machine Learning
- 蓝桥杯 基础练习 数列排序(4)之快排
- C# 抽象类
- OpenCV的安装与配置