【FFmpeg】FFmpeg 相关术语简介 ( 容器 | 媒体流 | 数据帧 | 数据包 | 编解码器 | 复用 | 解复用 )
文章目錄
- 一、FFmpeg 簡(jiǎn)介
- 二、FFmpeg 相關(guān)術(shù)語(yǔ)
- 1、容器
- 2、媒體流
- 3、數(shù)據(jù)幀
- 4、數(shù)據(jù)包
- 5、編解碼器
- 6、復(fù)用
- 7、解復(fù)用
- 博客資源
一、FFmpeg 簡(jiǎn)介
FFmpeg 是 " Fast Forward mpeg " 的縮寫(xiě) , 其符合 mpeg 視頻編碼標(biāo)準(zhǔn) ;
FFmpeg 功能很強(qiáng)大 , 可以對(duì)音視頻進(jìn)行 格式轉(zhuǎn)換 , 內(nèi)容修改 , 等幾乎所有涉及音視頻的操作 ;
愛(ài)奇藝 , 優(yōu)酷 , YouTube 等公司的音視頻產(chǎn)品 , 幾乎都是基于 FFmpeg 進(jìn)行的二次開(kāi)發(fā) ;
二、FFmpeg 相關(guān)術(shù)語(yǔ)
1、容器
容器 Container : 容器的本質(zhì)就是文件 , 是特定的視頻文件 , 如 mp4 , mkv , flv 等格式的音視頻文件 ;
容器的作用 : 容器中可以存放 音頻 , 視頻 , 字幕流 等信息 , 將這些信息整合在一起 , 按照特定規(guī)則放置在容器文件中 ,
使用 MediaInfo 打開(kāi)一個(gè) mp4 格式的視頻文件 , 在 " 容器格式和一般信息 " 一欄中 , 可以看到該 mp4 容器文件中包含了 111 個(gè) AVC 視頻流 , 111 個(gè) AAC LC 音頻流 ;
MediaInfo 工具在 http://mediaarea.net/en/MediaInfo 地址下載 , 或本博客的博客資源中下載 ;
2、媒體流
媒體流 ( Stream ) : 時(shí)間上的一段連續(xù)數(shù)據(jù) , 一段聲音數(shù)據(jù) 稱為 音頻流 , 一段視頻數(shù)據(jù) 稱為 視頻流 , 一段字幕數(shù)據(jù) 稱為 字幕流 ;
這些媒體流數(shù)據(jù) 可以壓縮 , 也可以不壓縮 , 如視頻流以 H.264 格式進(jìn)行壓縮 , 將視頻幀編碼成 關(guān)鍵幀 , 非關(guān)鍵幀 , 音頻流一般是 AAC 編碼格式進(jìn)行壓縮 ;
媒體流如果是壓縮的 , 在播放時(shí) , 先使用解碼器解碼 , 然后再播放 ; 生成文件時(shí)需要使用編碼器 , 編碼后存儲(chǔ)到文件中 ;
3、數(shù)據(jù)幀
數(shù)據(jù)幀 ( Data Frame ) : 媒體流 由 若干 數(shù)據(jù)幀構(gòu)成 ; 壓縮格式中 , 數(shù)據(jù)幀是最小的處理單元 ;
在容器中如果有多個(gè)數(shù)據(jù)流 , 那么 視頻幀 , 音頻幀 , 字幕信息 , 交錯(cuò)存儲(chǔ) , 以保證實(shí)時(shí)性 ;
數(shù)據(jù)幀是未壓縮的原始數(shù)據(jù) , 如 : 視頻幀每一幀都是一張完整的 YUV 圖片 , 音頻幀是 PCM 格式的 ;
4、數(shù)據(jù)包
數(shù)據(jù)包 ( Data Packet ) : 將 數(shù)據(jù)幀 壓縮后就是 數(shù)據(jù)包 , 數(shù)據(jù)幀是未壓縮的原始數(shù)據(jù) , 數(shù)據(jù)包時(shí)壓縮后的數(shù)據(jù) ;
生成容器文件時(shí) , 壓縮數(shù)據(jù) , 將數(shù)據(jù)幀 編碼壓縮 成 數(shù)據(jù)包 ;
播放容器文件時(shí) , 解壓數(shù)據(jù) , 將數(shù)據(jù)包 解碼展開(kāi) 成 數(shù)據(jù)幀 ;
視頻編碼過(guò)程 : YUV 格式的圖像 -> H.264 編碼器編碼 -> H.264 視頻幀
視頻解碼過(guò)程 : H.264 視頻幀 -> H.264 解碼器解碼 -> YUV 格式的圖像
音頻數(shù)據(jù)編碼過(guò)程 : PCM 音頻數(shù)據(jù) -> ACC 編碼器編碼 -> AAC 音頻幀
音頻數(shù)據(jù)解碼過(guò)程 : AAC 音頻幀 -> AAC 解碼器解碼 -> PCM 音頻數(shù)據(jù)
5、編解碼器
編解碼器 ( Codec ) : 數(shù)據(jù)幀 ( 原始數(shù)據(jù) ) 與 數(shù)據(jù)包 ( 壓縮數(shù)據(jù) ) 之間的轉(zhuǎn)換工具 ;
數(shù)據(jù)幀 ( 原始數(shù)據(jù) ) -> 編解碼器 ( 編碼 ) -> 數(shù)據(jù)包 ( 壓縮數(shù)據(jù) )
數(shù)據(jù)包 ( 壓縮數(shù)據(jù) ) -> 編解碼器 ( 解碼 ) -> 數(shù)據(jù)幀 ( 原始數(shù)據(jù) )
6、復(fù)用
復(fù)用 ( Mux ) : 將不同的 媒體流流 , 按照一定規(guī)則放入容器 ;
音頻流 , 視頻流 , 字幕流 ,
按照一定規(guī)則
封裝到 容器 ( 視頻文件 ) 中 ;
復(fù)用的關(guān)鍵工具時(shí) 復(fù)用器 ( Muxer ) ;
7、解復(fù)用
解復(fù)用 ( Demux ) : 從容器中解析不同的流出來(lái) ;
從 容器 ( 視頻文件 ) 中 ,
按照一定規(guī)則
拆分出 音頻流 , 視頻流 , 字幕流 ,
解復(fù)用的關(guān)鍵工具時(shí) 解復(fù)用器 ( Demuxer ) ;
博客資源
https://download.csdn.net/download/han1202012/19555927
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的【FFmpeg】FFmpeg 相关术语简介 ( 容器 | 媒体流 | 数据帧 | 数据包 | 编解码器 | 复用 | 解复用 )的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【FFmpeg】Windows 搭建 F
- 下一篇: 【FFmpeg】FFmpeg 相关术语简