ffmpeg基礎庫編程開發是一款編程開發的書籍,給大家提供的是pdf格式下載,在線電子版閱讀,幫助學習編程的用戶快速了解,需要的快來下載吧!
全本書籍免費下載,在線閱讀!
ffmpeg基礎庫編程開發介紹
FFmpeg是一套可以用來記錄、轉換數字音頻、視頻,并能將其轉化為流的開源計算機程序。采用LGPL或GPL許可證。它提供了錄制、轉換以及流化音視頻的完整解決方案。它包含了非常先進的音頻/視頻編解碼庫libavcodec,為了保證高可移植性和編解碼質量,libavcodec里很多code都是從頭開發的。
FFmpeg在Linux平臺下開發,但它同樣也可以在其它操作系統環境中編譯運行,包括Windows、Mac OS X等
主要功能:多媒體視頻處理工具FFmpeg有非常強大的功能包括視頻采集功能、視頻格式轉換、視頻抓圖、給視頻加水印等。
ffmpeg基礎庫編程開發目錄
第一章 多媒體概念介紹 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 DTS和PTS 31
1.7.4 分辨率 31
1.7.5 碼率 32
1.7.6 幀率 32
1.7.7 RGB和YUV 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.exe,ffplay.exe,ffprobe.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
1 文件列表 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
1 文件列表 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
1 文件列表 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 源代碼分析1 : 整體結構 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
附錄C:ffmpeg參數中文詳細解釋 477
附錄D:ffplay的快捷鍵以及選項 479
附錄E: ffmpeg處理rtmp流媒體 481
- PC官方版
- 安卓官方手機版
- IOS官方手機版