没有合适的资源?快使用搜索试试~ 我知道了~
首页ffmpeg 基础库编程开发
ffmpeg 基础库编程开发
需积分: 14 160 浏览量
更新于2023-05-26
评论
收藏 9.14MB PDF 举报
FFmpeg有非常强大的功能包括视频采集功能、视频格式转换、视频抓图、给视频加水印等。文档带目录书签。
资源详情
资源评论
资源推荐

《FFmpeg 基础库编程开发》
1

《FFmpeg 基础库编程开发》
2
目录
第一章 多媒体概念介绍 .......................................................................................................................................................... 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

《FFmpeg 基础库编程开发》
3
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

《FFmpeg 基础库编程开发》
4
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

《FFmpeg 基础库编程开发》
5
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
剩余459页未读,继续阅读















安全验证
文档复制为VIP权益,开通VIP直接复制

评论0