c++音視頻開發FFmpeg介紹與基礎知識理解

FFmpeg簡介
FFmpeg的名稱來自MPEG視頻編碼標準,前面的“FF”代表“Fast

Forward”,FFmpeg是一套可以用來記錄、轉換數字音頻、視頻,並能將其轉化爲流的開源計算機程序。可以輕易地實現多種視頻格式之間的相互轉換

FFmpeg的用戶有Google,Facebook,Youtube,優酷,愛奇藝,土豆等

基礎知識
容器/文件(Conainer/File):即特定格式的多媒體文件,比如mp4、flv、mkv等。

媒體流(Stream):表示時間軸上的一段連續數據,如一段聲音數據、一段視頻數據或一段字幕數據,可以是壓縮的,也可以是非壓縮的,壓縮的數據需要關聯特定的編解碼器。

數據幀/數據包(Frame/Packet):通常,一個媒體流是由大量的數據幀組成的,對於壓縮數據,幀對應着編解碼器的最小處理單元,分屬於不同媒體流的數據幀交錯存儲於容器之中。

一般情況下:

Frame對應壓縮前的數據,Packet對應壓縮後的數據。

編解碼器(Codec):以幀爲單位實現壓縮數據和原始數據之間的相互轉換的

複用(mux):把不同的流按照某種容器的規則放入容器,這種行爲叫做複用(mux)

解複用(mux):把不同的流從某種容器中解析出來,這種行爲叫做解複用(demux)

基礎知識-解複用器
複用(mux):把不同的流按照某種容器的規則放入容器,這種行爲叫做複用(mux)

複用器muxer比如MP4/FLV!c++音視頻開發FFmpeg介紹與基礎知識理解

解複用(mux):把不同的流從某種容器中解析出來,這種行爲叫做解複用(demux)

解複用器demuxerMP4/FLVc++音視頻開發FFmpeg介紹與基礎知識理解
基礎知識-編解碼器codec
編解碼器(Codec):以幀爲單位實現壓縮數據和原始數據之間的相互轉換的
視頻編解碼器 c++音視頻開發FFmpeg介紹與基礎知識理解
音頻編解碼器c++音視頻開發FFmpeg介紹與基礎知識理解
基礎知識-碼率和幀率
碼率和幀率是視頻文件的最重要的基本特徵,對於他們的特有設置會決定視頻質量。如果我們知道碼率和時長那麼可以很容易計算出輸出文件的大小。

幀率:幀率也叫幀頻率,幀率是視頻文件中每一秒的幀數,肉眼想看到連續移動圖像至少需要15幀。

碼率:比特率(也叫碼率,數據率)是一個確定整體視頻/音頻質量的參數,秒爲單位處理的位數,碼率和視頻質量成正比,在視頻文件中中比特率用bps來表達。

附:音視頻入門到提高技術教程c++音視頻開發FFmpeg介紹與基礎知識理解
~
教程主要涉及知識點:
1.FFmpeg的轉碼流程是什麼?

2.常見的視頻格式包含哪些內容嗎?

3.如何把這些內容從視頻文件中抽取出來?

4.如何從一種格式轉換爲另一種格式?

5.如何放大和縮小視頻?

6.如何旋轉,翻轉,填充,裁剪,模糊,銳化視頻?

7.如何給視頻加logo,刪除logo?

8.如何給視頻加文本,動態文本?

9.如何處理圖片?

10.如何錄像,添加動態logo,截圖,馬賽克視頻?

總結:在IT行業,只有不斷學才能跟上時代,5g來了,音視頻這個趨勢希望你能抓住。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章