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
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIn5GcsQXYtJ3bm9CXldWYtlWPzNXZj9mcw1ycz9WL49zdadHctx0MCpWTzgjRNdXRU9UNrpnTsJFVaVTVH9UbspWTwkEVOpXQ6lFaWpWT4dGRPtmTt1ENwkWTykzQNRDOTJmdO1GTuFzVh9GcuxUaOdVY3lTeMZTTINGMShUYvwlbj5yZtlmbkN3YuQnclZnbvN2Ztl2Lc9CX6MHc0RHaiojIsJye.jpg)
解複用(mux):把不同的流從某種容器中解析出來,這種行為叫做解複用(demux)
解複用器demuxerMP4/FLV
基礎知識-編解碼器codec
編解碼器(Codec):以幀為機關實作壓縮資料和原始資料之間的互相轉換的
視訊編解碼器
音頻編解碼器
基礎知識-碼率和幀率
碼率和幀率是視訊檔案的最重要的基本特征,對于他們的特有設定會決定視訊品質。如果我們知道碼率和時長那麼可以很容易計算出輸出檔案的大小。
幀率:幀率也叫幀頻率,幀率是視訊檔案中每一秒的幀數,肉眼想看到連續移動圖像至少需要15幀。
碼率:比特率(也叫碼率,資料率)是一個确定整體視訊/音頻品質的參數,秒為機關處理的位數,碼率和視訊品質成正比,在視訊檔案中中比特率用bps來表達。