天天看點

音視訊開發 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

音視訊開發 FFmpeg 介紹與基礎知識了解

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

音視訊開發 FFmpeg 介紹與基礎知識了解

解複用器demuxerMP4/FLV

基礎知識-編解碼器codec

編解碼器(Codec):以幀為機關實作壓縮資料和原始資料之間的互相轉換的

視訊編解碼器

音視訊開發 FFmpeg 介紹與基礎知識了解

音頻編解碼器

音視訊開發 FFmpeg 介紹與基礎知識了解

基礎知識-碼率和幀率

碼率和幀率是視訊檔案的最重要的基本特征,對于他們的特有設定會決定視訊品質。如果我們知道碼率和時長那麼可以很容易計算出輸出檔案的大小。

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

碼率:比特率(也叫碼率,資料率)是一個确定整體視訊/音頻品質的參數,秒為機關處理的位數,碼率和視訊品質成正比,在視訊檔案中中比特率用bps來表達。

繼續閱讀