可以做動效的網(wǎng)站如何做百度關(guān)鍵詞推廣
播放器框架
相關(guān)術(shù)語
?容器/文件(Conainer/File):
即特定格式的多媒體文件,比如mp4、flv、mkv等。
? 媒體流(Stream):
表示時間軸上的一段連續(xù)數(shù)據(jù),如一段聲音數(shù)據(jù)、一段視頻數(shù)據(jù)或一段字幕數(shù)據(jù),可以是壓縮的,也可以是非壓縮的,壓縮的數(shù)據(jù)需要關(guān)聯(lián)特定的編解碼器(有些碼流音頻他是純PCM)。
? 數(shù)據(jù)幀/數(shù)據(jù)包(Frame/Packet):
通常,一個媒體流是由大量的數(shù)據(jù)幀組成的,對于壓縮數(shù)據(jù),幀對應(yīng)著編解碼器的最小處理單元,分屬于不同媒體流的數(shù)據(jù)幀交錯存儲于容器之中。
? 編解碼器:
編解碼器是以幀為單位實現(xiàn)壓縮數(shù)據(jù)和原始數(shù)據(jù)之間的相互轉(zhuǎn)換的。
復(fù)用器和解復(fù)用器(封裝和解封裝)
編碼器和解碼器
FFmpeg常用函數(shù)庫
FFMPEG有8個常用庫:
? AVUtil:
核心工具庫,下面的許多其他模塊都會依賴該庫做一些基本的音視頻處理操作。
? AVFormat:
文件格式和協(xié)議庫,該模塊是最重要的模塊之一,封裝了Protocol層Demuxer、Muxer層,使得協(xié)議和格式對于開發(fā)者來說是透明的。
? AVCodec:
編解碼庫,封裝了Codec層,但是有一些Codec是具備自己的License的,FFmpeg是不會默認添加像libx264、FDK-AAC等庫的,但是FFmpeg就像一個平臺一樣,可以將其他的第三方的Codec以插件的方式添加進來,然后為開發(fā)者提供統(tǒng)一的接口。
? AVFilter:
音視頻濾鏡庫,該模塊提供了包括音頻特效和視頻特效的處理,在使用FFmpeg的API進行編解碼的過程中,直接使用該模塊為音視頻數(shù)據(jù)做特效處理是非常方便同時也非常高效的一種方式。
? AVDevice:
輸入輸出設(shè)備庫,比如,需要編譯出播放聲音或者視頻的工具ffplay,就需要確保該模塊是打開的,同時也需要SDL的預(yù)先編譯,因為該設(shè)備模塊播放聲音與播放視頻使用的都是SDL庫。
? SwrRessample:
該模塊可用于音頻重采樣,可以對數(shù)字音頻進行聲道數(shù)、數(shù)據(jù)格式、采樣率等多種基本信息的轉(zhuǎn)換。
? SWScale:
該模塊是將圖像進行格式轉(zhuǎn)換的模塊,比如,可以將YUV的數(shù)據(jù)轉(zhuǎn)換為RGB的數(shù)據(jù),縮放尺寸由1280720變?yōu)?00480。
? PostProc:
該模塊可用于進行后期處理,當我們使用AVFilter的時候需要打開該模塊的開關(guān),因為Filter中會使用到該模塊的一些基礎(chǔ)函數(shù)。