最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

FFmpeg基本常識和相關術語

2021-12-21 22:32 作者:青泉石上_  | 我要投稿

1. FFmpeg

FFmpeg 強大專用于處理音視頻的開源庫,包含了先進的音視頻編解碼庫,提供了錄制、轉換以及流傳輸音視頻的完整跨平臺解決方案。
既可以使用它的API對音視頻進行處理,也可以使用它提供的工具,如 ffmpeg, ffplay, ffprobe,來編輯音視頻文件。


開源代碼

github.com/FFmpeg/FFmpe


特點

1.功能完整:

FFmpeg是領先的多媒體框架,能夠解碼(decode)、編碼(encode)、轉碼(transcode)、復用(mux)、解復用(demux)、流(stream)、過濾(filter)和播放(play)人類和機器創(chuàng)建的幾乎所有內(nèi)容。

2.幾乎支持所有格式:

FFmpeg支持最模糊的古代格式直至最前沿。

無論是由某些標準委員會、社區(qū)還是公司設計的。

3.跨平臺高度可移植性:

FFmpeg可以在各種構建環(huán)境:機器體系結構和配置下,跨Linux、Mac OS X、Microsoft Windows、BSD、Solaris等編譯,運行并通過測試基礎架構 FATE。

4.每日更新的文檔:

各種在線每晚更新一次,并且對應于最新的FFmpeg版本。


2.?FFmpeg播放流程及相關術語

2.1 播放流程:

video.avi(Container) -> 打開得到 Video_Stream -> 讀取Packet -> 解析到 Frame -> 顯示Frame。


2.2 相關術語:

2.2.1 「封裝格式(Container Format)

封裝格式(Container Format),

可看作是編碼流(Stream)(音頻、視頻等)數(shù)據(jù)的一層外殼,將編碼后數(shù)據(jù),存儲于此封裝格式的文件之內(nèi)。


封裝又稱容器(Container),

容器的用詞更為形象。容器就是存放內(nèi)容的器具。

目的是為了運輸和傳送的。

例如:飲料是內(nèi)容,那么裝飲料的瓶子就是容器。

對視頻來說,封裝格式是MP4、AVI、MKV、RMVB等格式。


2.2.2 「流(Stream)

流(Stream)是一種音視頻數(shù)據(jù)信息的傳輸方式。

有五種流:視頻流(Video Stream)、音頻流(Audio Stream)、字幕(Subtitle)、附件(t)、數(shù)據(jù)(d)。

例如:曾經(jīng)多年前使用VCD看港片,可以選擇粵語或國語聲音,是視頻文件中存放了兩路音頻流,可供用戶選擇其中一路進行播放。


2.2.3 「幀(Frame)

幀(Frame)本意代表一幅靜止的圖像。

流(Stream)中,幀代表最小數(shù)據(jù)單元,也是編解碼器真正處理的最小處理單元。

數(shù)字視頻處理的幀,通常不是說原始圖像,而是被編碼器編碼后的一個圖像。

對于視頻來說,幀(Frame)是編碼器編碼后的一個圖像;
對于音頻來說,幀(Frame)是編碼器編碼后的一個聲音。

幀(Frame)分為:I幀:關鍵幀、P幀:預測幀、B幀:雙向預測幀。


2.2.4 「編解碼(Codec)

每路音視頻流(Stream)都會以幀(Frame)為最小單位,

被相應的編/解碼器(Codec)進行編碼解碼,以實現(xiàn)原始數(shù)據(jù)和壓縮數(shù)據(jù)之間的相互轉換。


編碼(Codec)是對原始數(shù)據(jù)的加工,

是對輸入源進行處理,然后輸出的過程。簡單說,就是對圖像和聲音的壓縮方法。

視頻編碼主要有:H263、H264、H265、MPEG系列等。


編碼(Codec)其實是編碼(COde)和解碼(DECode)的合稱。
CODEC = COde(編碼) + DECode(解碼)

解碼就是把編碼后的東西還原為原來的狀態(tài)。

對于視頻來說,就是把壓縮的圖像和聲音還原為正??梢圆シ诺膱D像和聲音。

編碼可以改變文件格式,或者文件格式不變,只更改其他數(shù)據(jù)。

FFmpeg編解碼是基于比特流進行的。


2.2.5 「數(shù)據(jù)包(Packet)

數(shù)據(jù)包(Packet)是從流(Stream)中讀取的原始Raw數(shù)據(jù)片段,這些數(shù)據(jù)片段中,包含的是解碼后能被應用程序處理的原始幀(Raw Frame)數(shù)據(jù)。

分開的數(shù)據(jù)流在送往編解碼(Codec)處理之前,要先放于緩存中,

添加一些附屬信息(例如:打上時間戳)以便后續(xù)處理,這個緩存空間就是數(shù)據(jù)包(Packet)


通信中Packet的理解:快遞郵包(分組→傳送→整合)

由于數(shù)據(jù)流是在時間軸上交錯放置,所有的視頻、音頻、字幕都被分割成一段一段的數(shù)據(jù),

這些一段段的數(shù)據(jù)從數(shù)據(jù)流中解析出來之后,就是存放在各自的數(shù)據(jù)包(Packet)


單純的視頻數(shù)據(jù)包來說,一個視頻數(shù)據(jù)包可以存放一個視頻幀;
單純的音頻幀來說,如果抽樣率(sample-rate)是固定不變的,一個音頻數(shù)據(jù)包可以存放幾個音頻幀;若是抽樣率是可變的,則一個數(shù)據(jù)包就只能存放一個音頻幀。



FFmpeg基本常識和相關術語的評論 (共 條)

分享到微博請遵守國家法律
长葛市| 莎车县| 宁远县| 方正县| 伊宁县| 两当县| 贵德县| 镇巴县| 马龙县| 砚山县| 贵阳市| 邵阳县| 资溪县| 防城港市| 惠州市| 都昌县| 渝北区| 博爱县| 东丰县| 平谷区| 稻城县| 四川省| 天长市| 广德县| 乐昌市| 抚顺县| 贡觉县| 东至县| 内乡县| 房山区| 卓资县| 清远市| 迁安市| 永顺县| 寻甸| 韶山市| 屏边| 长子县| 兴宁市| 上林县| 临潭县|