-
总结自编的ffmpeg基础开发资料
资源介绍
适合fresh man上手 ffmpeg 库。
目录
-------------------------
目录
第一章 多媒体概念介绍 6
1.1 视频格式 6
1.1.1 常见格式 6
1.2 音频格式 8
1.2.1 常见格式 9
1.2.2 比较 14
1.3 字幕格式 14
1.3.1 外挂字幕与内嵌字幕的阐述 14
1.3.2 外挂字幕视频与内嵌字幕视频的画面比较 15
1.3.3 外挂字幕的三种格式 15
1.4 采集录制和播放渲染 15
1.4.1 视频采集 15
1.4.2 视频录制 16
1.4.3 视频渲染 16
1.5 编解码器 18
1.6 容器和协议 18
1.6.1 容器格式和编码格式 18
1.6.2 协议 24
1.6.2.1 视频协议 25
1.6.2.2 音频协议 25
1.6.2.3 上层通讯协议 25
1.7 常用概念介绍 26
1.7.1 硬解 26
1.7.2 IBP 帧 26
1.7.3 DTS 和PTS 30
1.7.4 分辨率 30
1.7.5 码率 30
1.7.6 帧率 30
1.7.7 RGB 和YUV 30
1.7.8 实时和非实时 30
1.7.9 复合视频和 s-video 31
1.7.10 硬件加速 31
1.7.11 FFmpeg Device 31
第二章 FFmpeg 框架 32
2.1 FFmpeg 概述 32
2.1.1 简介 32
2.1.2 功能 32
2.1.3 模块组成 33
2.1.4 命令集 33
2.2 媒体播放器三大底层框架 35
第三章 编译及简单应用 39
3.1 FFmpeg 库编译和入门介绍 41 39
3.2 流媒体数据流程讲解 40
3.3 简单应用 42
3.4 SDL( Simple Direct Layer) 45
3.4.1 SDL 显示视频 45
3.4.2 SDL 显示音频 46
3.5 ffmpeg 程序的使用(ffmpeg.exe,ffplay.exe,ffprobe.exe) 46
3.5.1 ffmpeg.exe 46
3.5.2 ffplay.exe 46
3.5.3 ffprobe.exe 46
第四章 数据结构 50
4.1 AVCodec 结构体 51
4.2 AVCodecContext 结构体 52
4.3 AVInputFormat 结构体 53
4.4 AVFormatContext 结构体 62
4.5 MovContext 结构体 63
4.6 URLProtocol 结构体 63
4.7 URLContext 结构体 64
4.8 AVIOContext 结构体(老版本为:ByteIOContext) 64
4.9 AVStream 结构体 65
4.10 MOVStreamContext 结 构体 66
4.11 AVPacket 结 构体 67
4.12 AVPacketList 结 构体 67
4.13 AVFrame 结构体 53
第五章 重要模块 68
5.1 libavutil 公共模块 68
1 文件列表 68
2 common.h 文件 68
3 bswap.h 文件 70
4 rational.h 文件 71
5 mathematics.h 文件 71
6 avutil.h 文件 72
5.2 libavcodec 编解码模块 73
1 文件列表 73
2 avcodec.h 文件 74
3 allcodec.c 文件 78
4 dsputil.h 文件 79
5 dsputil.c 文件 79
6 utils_codec.c 文件 80
7 imgconvert_template.h 文件 90
8 imgconvert.c 文件 110
9 msrle.c 文件 152
10 turespeech_data.h 文件 159
11 turespeech.c 文件 162
5.3 libavformat 容器模块 171
1 文件列表 171
2 avformat.h 文件 172
3 allformat.c 文件 177
4 cutils.c 文件 178
5 file.c 文件 179
6 avio.h 文件 182
7 avio.c 文件 184
8 aviobuf.c 文件 188
9 utils_format.c 文件 197
10 avidec.c 文件 208
5.4 libswscale 视频色彩空间转换 230
5.5 libswresample 音频重采样 230
5.6 libavfilter 音视频滤器 230
5.7 libavdevice 设备输入和输出容器 230
5.8 libpostproc 视频后期处理 230
第六章 播放器 230
6.1 视频播放器 230
6.1.1 ffmpeg 库的配置 230
6.1.2 一个简单的视频播放器 231
6.2 音频播放器 234
6.3 一个完整的播放器--ffplay 240
6.3.1 ffplay 流程图 240
6.3.2 ffplay 源码剖析 240
第七章 应用开发 262
7.1 ffmpeg 库的使用:编码 262
第八章 关键函数介绍 267
8.1 avformat_open_input 267
8.2 avcodec_register_all() 268
8.3 av_read_frame() 269
8.4 avcodec_decode_video2() 270
8.5 transcode_init() 270
8.6 transcode() 280
第九章 ffmpeg 相关工程 288
9.1 ffdshow 288
ffdshow 源代码分析 1 : 整体结构 288
ffdshow 源代码分析 2: 位图覆盖滤镜(对话框部分 Dialog) 290
ffdshow 源代码分析 3: 位图覆盖滤镜(设置部分Settings) 297
ffdshow 源代码分析 4: 位图覆盖滤镜(滤镜部分Filter) 301
ffdshow 源代码分析 5: 位图覆盖滤镜(总结) 306
ffdshow 源代码分析 6: 对解码器的 dll 的封装(libavcodec) 306
ffdshow 源代码分析 8: 视频解码器类(TvideoCodecDec) 328
ffdshow 源代码分析 9: 编解码器有关类的总结 335
9.2 LAV filters 340
LAV Filter 源代码分析 1: 总体结构 340
LAV Filter 源代码分析 2: LAV Splitter 341
LAV Filter 源代码分析 3: LAV Video (1) 364
LAV Filter 源代码分析 4: LAV Video (2) 382
9.3 MPlayer 408
9.3.1 Mplayer 支持的格式 408
9.3.2 Mplayer 中头文件的功能分析 408
9.3.3 MPlayer.main 主流程简要说明 408
9.3.4 Mplayer 源码分析 409
第十章 开发实例 416
第十一章 mp4 文件封装协议分析 416
11.1 概述 416
11.2 mp4 的物理结构 416
11.3 数据的组织结构 417
11.4 mp4 的时间结构 417
11.5 文件结构分析 418
11.5.1 File Type Box(ftyp) 418
11.5.2 Movie Box(moov) 418
第十二章 flv 文件格式分析 437
12.1 概述 437
12.2 文件总体结构 437
12.3 文件结构分析 438
12.3.1 flv 文件头的结构 438
12.3.2 body 主体结构 439
附录A:常见问题 444
1 ffmpeg 从内存中读取数据 444
2 MFC 中使用SDL 播放音频没有声音的解决方法 444
附录B:经典代码示例 445
附录 c:ffmpeg 参数中文详细解释 456
附录D:ffplay 的快捷键以及选项 458
附录E: ffmpeg 处理 rtmp 流媒体 459
- 上一篇: Android摄像头采集视频并编码H264存储
- 下一篇: ffmpeg2.8录像+录音