ffmpeg学习笔记目录

1、命令使用

最开始看一下 ffmpeg命令的中文解释,然后 ffmpeg的基本用法,日常命令使用中最多的 ffmpeg调用x264编码、 mpeg4中的deblocking的用法, x264中输出值含义, x264编码之码率控制, x264参数介绍之一, x264参数介绍之二, ffmpeg添加字幕, ffmpeg一些filter用法。

2、编译ffmpeg

win7用mingw+msys编译ffmpeg
编译中遇到的文题解决
各个组件下载地址,及编译方法,问题处理

ffmpeg.exe用vs2010编译

ffmpeg库移植vs下所需步奏

ffmpeg编译libxml2

mingw下配置pkg-config

ffmpeg安装gme

3、用ffmpeg的api做一些简单demo

先了解下函数:ffmpeg函数介绍

然后了解下ffmpeg各个结构体:ffmpeg各个结构介绍

这里打算再写一篇文章,来介绍ffmpeg的架构(还没做)。


开始使用api,demuxe和muxer示例:ffmpeg视频合并,ffmpeg视频切割

视频编码和色彩空间转换的例子

视频解码

视频转码。

音视频采集(录屏+录音)

音频采集(录音)

音频转码很多时候需要重采样:用filter重采样,采用swr_convert重取样

音频解码并保存为PCM:PCM简介,demo

音频编码

filter示例:使用filter缩放的例子, 添加水印,添加字幕

使用filter混音:混音算法简介,混音demo

使用filter加字幕

4、在使用api中遇到的一些问题及一些经验

avio_open无法打开中文路径的问题
用ffmpeg转出来的视频,在有些流媒体服务器上部署,客户端需要下载完整个视频才能播放的问题
avcodec_decode_video2 少帧问题
AVFrame关于视音频数据存储,AVFrame处理YUV旋转
AVFrame存储YUV420P对齐
av_read_frame读出的视频流数据在AVPacket中的存储
I帧和IDR帧
关于视频播放时旋转不对的问题

5、关于时间戳


时间戳问题汇总
视音频pts计算
ffmpeg源码的时间基转换和时间戳比较
ffmpeg timebase

6、源码跟踪

用eclipse调试ffmpeg

eclipse调试快捷键总结

ffmpeg.exe跟踪:
ffmpeg编码,函数调用图
open_input_file函数调用图
transcode函数调用图

ffmpeg api函数跟踪:
avformat_open_input
avformat_find_stream_info
avcodec_open2
av_read_frame
avcodec_decode_video2
av_write_frame和av_interleaved_wirte_frame

7、ffmpeg加入自定义的模块

muxer: 代码实现、 加入ffmpeg源码
demuxer: 代码实现、 加入ffmpeg源码
encoder: 代码实现、 加入ffmpeg源码
decoder:代码实现、加入ffmpeg源码

8、容器分析

mpeg-ps分析
mpeg-ps分析代码实现







你可能感兴趣的:(ffmpeg,ffmpeg学习笔记)