ffmpeg编程开发

本书非原创,因为里面大部分的内容都是来自互联网,我最多算是个图书管理员进行了整理、编辑,不过还是很用心的,应该不会误人子弟。

取之于互联网,也献之于互联网。广泛性且大量地借鉴了csdn blog和cnbolgs,里面真是人才济济啊,我这算不算剽窃

一些概念性的东西参见谷歌、度娘,ffmpeg精简源码分析、ffmpeg tutorial很多地方都是照搬,捣鼓的地方太多了,我到时候会把主要参考的内容发出来。其实年前就写好了(听着多带感,还不就是抄出来的),我也是一边学习一边整理的,自己看看暗爽就行了,发出来压力还是比较大的(还好没人认得我,不过哪里飞出一块板砖都不为过,写书有风险,发帖需谨慎啊!)。不过后来想想,一、给后来的童鞋一个启迪,二、也是希望有人认可自己,三、希望看过的童鞋能提意见,继续改,做了就要做好,四、不留下遗憾----谁没有一个写书的梦想啊,自传咱是没分了级别不够,捣鼓点别的还是可以的吧。

下载地址:

《ffmpeg编程开发.pdf》

《ffmpeg编程开发.word》



目录

第一章 多媒体概念介绍 6

1.1视频格式 6

1.1.1常见格式 6

1.2音频格式 9

1.2.1常见格式 9

1.2.2比较 15

1.3字幕格式 15

1.3.1外挂字幕与内嵌字幕的阐述 15

1.3.2外挂字幕视频与内嵌字幕视频的画面比较 15

1.3.3外挂字幕的三种格式 15

1.4采集录制和播放渲染 16

1.4.1视频采集 16

1.4.2视频录制 17

1.4.3视频渲染 17

1.5编解码器 18

1.6容器和协议 19

1.6.1容器格式和编码格式 19

1.6.2协议 26

1.6.2.1 视频协议 26

1.6.2.2 音频协议. 26

1.6.2.3 上层通讯协议 27

1.7常用概念介绍 27

1.7.1硬解 27

1.7.2 IBP 28

1.7.3 DTSPTS 31

1.7.4 分辨率 31

1.7.5 码率 32

1.7.6 帧率 32

1.7.7 RGBYUV 32

1.7.8 实时和非实时 32

1.7.9 复合视频和s-video 32

1.7.10 硬件加速 32

1.7.11 FFmpeg Device 32

第二章 FFmpeg框架 34

2.1 FFmpeg概述 34

2.1.1简介 34

2.1.2功能 34

2.1.3模块组成 35

2.1.4命令集 35

2.2 媒体播放器三大底层框架 37

第三章 编译及简单应用 41

3.1 FFmpeg库编译和入门介绍 41 41

3.2 流媒体数据流程讲解 49

3.3 简单应用 51

3.4 SDL Simple Direct Layer) 55

3.4.1 SDL显示视频 55

3.4.2 SDL显示音频 55

3.5 ffmpeg程序的使用(ffmpeg.exeffplay.exeffprobe.exe 56

3.5.1 ffmpeg.exe 56

3.5.2 ffplay.exe 56

3.5.3 ffprobe.exe 56

第四章 数据结构 57

4.1  AVCodec结构体 59

4.2  AVCodecContext结构体 59

4.3  AVInputFormat结构体 60

4.4  AVFormatContext结构体 61

4.5  MovContext结构体 62

4.6  URLProtocol结构体 62

4.7  URLContext结构体 63

4.8  AVIOContext结构体(老版本为:ByteIOContext) 63

4.9  AVStream结构体 64

4.10  MOVStreamContext 结构体 65

4.11  AVPacket 结构体 66

4.12  AVPacketList 结构体 67

4.13 AVFrame结构体 67

第五章 重要模块 76

5.1 libavutil公共模块 76

文件列表 76

2 common.h 文件 76

3 bswap.h 文件 78

4 rational.h 文件 79

5 mathematics.h 文件 80

6 avutil.h 文件 80

5.2 libavcodec编解码模块 82

文件列表 82

2 avcodec.h 文件 82

3 allcodec.c 文件 87

4 dsputil.h 文件 87

5 dsputil.c 文件 88

6 utils_codec.c 文件 88

7 imgconvert_template.h 文件 99

8 imgconvert.c 文件 121

9 msrle.c 文件 164

10 turespeech_data.h 文件 171

11 turespeech.c 文件 174

5.3 libavformat容器模块 184

文件列表 184

2 avformat.h 文件 184

3 allformat.c 文件 190

4 cutils.c 文件 190

5 file.c 文件 192

6 avio.h 文件 194

7 avio.c 文件 196

8 aviobuf.c 文件 200

9 utils_format.c 文件 209

10 avidec.c 文件 220

5.4 libswscale视频色彩空间转换 243

5.5 libswresample音频重采样 243

5.6 libavfilter音视频滤器 243

5.7 libavdevice设备输入和输出容器 243

5.8 libpostproc视频后期处理 243

第六章 播放器 243

6.1 视频播放器 243

6.1.1 ffmpeg库的配置 243

6.1.2 一个简单的视频播放器 244

6.2 音频播放器 247

6.3 一个完整的播放器--ffplay 253

6.3.1 ffplay流程图 253

6.3.2 ffplay源码剖析 254

第七章 应用开发 275

7.1 ffmpeg库的使用:编码 275

第八章 关键函数介绍 280

8.1 avformat_open_input 280

8.2 avcodec_register_all() 281

8.3 av_read_frame() 283

8.4 avcodec_decode_video2() 283

8.5 transcode_init() 283

8.6 transcode() 294

第九章 ffmpeg相关工程 301

9.1 ffdshow 301

ffdshow 源代码分析: 整体结构 302

ffdshow 源代码分析 2: 位图覆盖滤镜(对话框部分Dialog 304

ffdshow 源代码分析 3: 位图覆盖滤镜(设置部分Settings 312

ffdshow 源代码分析 4: 位图覆盖滤镜(滤镜部分Filter 317

ffdshow 源代码分析 5: 位图覆盖滤镜(总结) 322

ffdshow 源代码分析 6: 对解码器的dll的封装(libavcodec 322

ffdshow 源代码分析 8: 视频解码器类(TvideoCodecDec 344

ffdshow 源代码分析 9: 编解码器有关类的总结 352

9.2 LAV filters 357

LAV Filter 源代码分析 1: 总体结构 357

LAV Filter 源代码分析 2: LAV Splitter 358

LAV Filter 源代码分析 3: LAV Video 1 382

LAV Filter 源代码分析 4: LAV Video 2 400

9.3 MPlayer 427

9.3.1 Mplayer支持的格式 427

9.3.2 Mplayer 中头文件的功能分析 427

9.3.3 MPlayer.main 主流程简要说明 428

9.3.4 Mplayer源码分析 429

第十章 开发实例 436

第十一章 mp4文件封装协议分析 436

11.1  概述 436

11.2  mp4的物理结构 436

11.3  数据的组织结构 437

11.4  mp4的时间结构 437

11.5  文件结构分析 438

11.5.1  File Type Box(ftyp) 438

11.5.2  Movie Box(moov) 438

第十二章 flv 文件格式分析 457

12.1  概述 457

12.2  文件总体结构 457

12.3  文件结构分析 458

12.3.1  flv文件头的结构 458

12.3.2  body主体结构 459

附录A:常见问题 465

1 ffmpeg 从内存中读取数据 465

2 MFC中使用SDL播放音频没有声音的解决方法 465

附录B:经典代码示例 466

附录Cffmpeg参数中文详细解释 477

附录Dffplay的快捷键以及选项 479

附录E: ffmpeg处理rtmp流媒体 481


你可能感兴趣的:(ffmpeg)