ffmpeg基礎(chǔ)知識(shí)

背景知識(shí)

FFMPEG的視音頻編解碼功能確實(shí)太強(qiáng)大了,幾乎囊括了現(xiàn)存所有的視音頻編碼標(biāo)準(zhǔn),因此只要做視音頻開發(fā),幾乎離不開它

播放視頻流程

常見工具
查看媒體信息的工具:MediaInfo
二進(jìn)制查看信息:UItraEdit
視頻單項(xiàng)信息
封裝格式信息工具->Elecard Format Analyzer
視頻編碼信息工具->Elecard Stream Eye
視頻像素信息工具->YUVPlayer
音頻采樣數(shù)據(jù)工具->Adobe Audition

基本概念

兩種模式播放器

可視化界面播放器:騰訊視頻、愛奇藝視頻孽锥、QQ影音、暴風(fēng)影音细层、快播惜辑、優(yōu)酷等等…
非可視化界面播放器(命令操作播放器):
FFmpeg->ffplay(命令)播放器(內(nèi)置播放器)
vlc播放器、mplayer播放器

封裝格式

通骋呤辏看到視頻格式:mp4盛撑、mov、flv虚缎、wmv撵彻、avi钓株、rmvb实牡、mkv…何為封裝格式?就是把視頻數(shù)據(jù)和音頻數(shù)據(jù)打包成一個(gè)文件的規(guī)范轴合。


封裝格式作用.png
封裝格式列表.png

MPEG2-TS格式
視頻壓縮數(shù)據(jù)格式:MPEG2-TS
特定:數(shù)據(jù)排版创坞,不包含頭文件,數(shù)據(jù)大小固定(188byte)的TS-Packet


MPEG2-TS格式.png

FLV格式
優(yōu)勢(shì):由于它形成的文件極小受葛、加載速度極快题涨,使得網(wǎng)絡(luò)觀看視頻文件成為可能,它的出現(xiàn)有效地解決了視頻文件導(dǎo)入Flash后总滩,使導(dǎo)出的SWF文件體積龐大纲堵,不能在網(wǎng)絡(luò)上很好的使用等問題。
文件結(jié)構(gòu):FLV是一個(gè)二進(jìn)制文件闰渔,由文件頭(FLV header)和很多tag組成席函。tag又可以分成三類:audio,video,script,分別代表音頻流冈涧,視頻流茂附,腳本流(關(guān)鍵字或者文件信息之類)。
FLV文件=FLV頭文件+ tag1+tag內(nèi)容1 + tag2+tag內(nèi)容2 + ...+... + tagN+tag內(nèi)容N督弓。
FLV頭文件:(9字節(jié))
1-3:前3個(gè)字節(jié)是文件格式標(biāo)識(shí)(FLV 0x46 0x4C 0x56).
4-4:第4個(gè)字節(jié)是版本(0x01)
5-5:第5個(gè)字節(jié)的前5個(gè)bit是保留的必須是0.
6-9: 第6-9的四個(gè)字節(jié)還是保留的.其數(shù)據(jù)為00000009
整個(gè)文件頭的長(zhǎng)度营曼,一般是9(3+1+1+4)


FLV格式.png

視頻編碼

將視頻像素?cái)?shù)據(jù)(YUV、RGB)進(jìn)行壓縮成為視頻碼流愚隧,從而降低視頻數(shù)據(jù)量(減小內(nèi)存暫用)蒂阱,H.264最常用。

視頻編碼格式.png
RGB格式.png

音頻編碼

將音頻采樣數(shù)據(jù)(PCM格式)進(jìn)行壓縮成為音頻碼流,從而降低音頻數(shù)據(jù)量录煤,AAC虱痕、MP3等等…(減小內(nèi)存暫用)。


音頻編碼格式分析.png

AAC格式
AAC辐赞,全稱Advanced Audio Coding部翘,是一種專為聲音數(shù)據(jù)設(shè)計(jì)的文件壓縮格式。與MP3不同响委,它采用了全新的算法進(jìn)行編碼新思,更加高效,具有更高的“性價(jià)比”赘风。利用AAC格式夹囚,可使人感覺聲音質(zhì)量沒有明顯降低的前提下,更加小巧邀窃。蘋果荸哟,諾基亞手機(jī)支持AAC格式的音頻文件。
優(yōu)點(diǎn):相對(duì)于mp3瞬捕,AAC格式的音質(zhì)更佳鞍历,文件更小。
不足:AAC屬于有損壓縮的格式肪虎,與時(shí)下流行的APE劣砍、FLAC等無(wú)損格式相比音質(zhì)存在“本質(zhì)上”的差距。加之扇救,傳輸速度更快的USB3.0和16G以上大容量MP3正在加速普及刑枝,也使得AAC頭上“小巧”的光環(huán)不復(fù)存在。
①提升的壓縮率:可以以更小的文件大小獲得更高的音質(zhì)迅腔;
②支持多聲道:可提供最多48個(gè)全音域聲道装畅;
③更高的解析度:最高支持96KHz的采樣頻率;
④提升的解碼效率:解碼播放所占的資源更少沧烈;

視頻像素?cái)?shù)據(jù)

保存了屏幕上面每一個(gè)像素點(diǎn)的值掠兄,常見格式:RGB24、RGB32掺出、YUV420P徽千、YUV422P、YUV444P等等…一般最常見:YUV420P
視頻像素?cái)?shù)據(jù)文件大小計(jì)算汤锨?
例如:RGB24高清視頻體積双抽?(1個(gè)小時(shí)時(shí)長(zhǎng))
體積:3600 * 25 * 1920 * 1080 * 3 = 559GB(非常大 假設(shè):幀率25HZ,采樣精度8bit闲礼,每字節(jié)8位牍汹,24位3個(gè)字節(jié))

YUV播放器铐维,人類:對(duì)色度不敏感,對(duì)亮度敏感
Y表示:亮度慎菲,UV表示:色度

音頻采樣數(shù)據(jù)

保存了音頻中的每一個(gè)采樣點(diǎn)值
音頻采樣數(shù)據(jù)文件大小計(jì)算
例如:1分鐘PCM格式歌曲
體積:60 * 44100 * 2 * 2 = 11MB
分析:60表示時(shí)間嫁蛇,44100表示采樣率(一般情況下,都是這個(gè)采樣率露该,人的耳朵能夠分辨的聲音)睬棚,2表示聲道數(shù)量,2表示采樣精度16位 = 2字節(jié)

FFmepg應(yīng)用

提供了一套比較完整代碼->開源免費(fèi)解幼,核心架構(gòu)設(shè)計(jì)思想:(核心 + 插件)設(shè)計(jì)

ffmpeg.exe(視頻壓縮->轉(zhuǎn)碼來(lái)完成)
作用:用于對(duì)視頻進(jìn)行轉(zhuǎn)碼
將mp4->mov抑党,mov->mp4,wmv->mp4等等…
命令格式:ffmpeg -i {指定輸入文件路徑} -b:v {輸出視頻碼率} {輸出文件路徑}
測(cè)試運(yùn)行:將Test.mov->Test.mp4


ffmpeg命令參數(shù).png

ffplay.exe
作用:播放視頻
格式:ffplay {文件路徑}
例如:./ffplay Test.mov

ffplay快捷鍵.png

案例:視頻撵摆,轉(zhuǎn)為高質(zhì)量 GIF 動(dòng)圖底靠?
命令:./ffmpeg -ss 00:00:03 -t 3 -i Test.mov -s 640x360 -r “15” dongtu.gif
解釋:
1、ffmpeg 是你剛才安裝的程序特铝;

2暑中、-ss 00:00:03 表示從第 00 分鐘 03 秒開始制作 GIF,如果你想從第 9 秒開始鲫剿,則輸入 -ss 00:00:09鳄逾,或者 -ss 9,支持小數(shù)點(diǎn)牵素,所以也可以輸入 -ss 00:00:11.3严衬,或者 -ss 34.6 之類的,如果不加該命令笆呆,則從 0 秒開始制作;

3粱挡、-t 3 表示把持續(xù) 3 秒的視頻轉(zhuǎn)換為 GIF赠幕,你可以把它改為其他數(shù)字,例如 1.5询筏,7 等等榕堰,時(shí)間越長(zhǎng),GIF 體積越大嫌套,如果不加該命令逆屡,則把整個(gè)視頻轉(zhuǎn)為 GIF;

4踱讨、-i 表示 invert 的意思吧魏蔗,轉(zhuǎn)換;

5痹筛、Test.mov 就是你要轉(zhuǎn)換的視頻莺治,名稱最好不要有中文廓鞠,不要留空格,支持多種視頻格式谣旁;

6床佳、-s 640x360 是 GIF 的分辨率,視頻分辨率可能是 1080p榄审,但你制作的 GIF 可以轉(zhuǎn)為 720p 等砌们,允許自定義,分辨率越高體積越大搁进,如果不加該命令怨绣,則保持分辨率不變;

7拷获、-r “15” 表示幀率篮撑,網(wǎng)上下載的視頻幀率通常為 24,設(shè)為 15 效果挺好了匆瓜,幀率越高體積越大赢笨,如果不加該命令,則保持幀率不變驮吱;

8茧妒、dongtu.gif:就是你要輸出的文件,你也可以把它命名為 hello.gif 等等左冬。

視音頻編解碼技術(shù)零基礎(chǔ)學(xué)習(xí)方法
FFMPEG視音頻編解碼零基礎(chǔ)學(xué)習(xí)方法

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末桐筏,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子拇砰,更是在濱河造成了極大的恐慌梅忌,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,941評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件除破,死亡現(xiàn)場(chǎng)離奇詭異牧氮,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)瑰枫,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門踱葛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人光坝,你說(shuō)我怎么就攤上這事尸诽。” “怎么了盯另?”我有些...
    開封第一講書人閱讀 165,345評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵性含,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我土铺,道長(zhǎng)胶滋,這世上最難降的妖魔是什么板鬓? 我笑而不...
    開封第一講書人閱讀 58,851評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮究恤,結(jié)果婚禮上俭令,老公的妹妹穿的比我還像新娘。我一直安慰自己部宿,他們只是感情好抄腔,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著理张,像睡著了一般赫蛇。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上雾叭,一...
    開封第一講書人閱讀 51,688評(píng)論 1 305
  • 那天悟耘,我揣著相機(jī)與錄音,去河邊找鬼织狐。 笑死暂幼,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的移迫。 我是一名探鬼主播旺嬉,決...
    沈念sama閱讀 40,414評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼厨埋!你這毒婦竟也來(lái)了邪媳?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,319評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤荡陷,失蹤者是張志新(化名)和其女友劉穎雨效,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體亲善,經(jīng)...
    沈念sama閱讀 45,775評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡设易,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蛹头。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,096評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡戏溺,死狀恐怖渣蜗,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情旷祸,我是刑警寧澤耕拷,帶...
    沈念sama閱讀 35,789評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站托享,受9級(jí)特大地震影響骚烧,放射性物質(zhì)發(fā)生泄漏浸赫。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評(píng)論 3 331
  • 文/蒙蒙 一赃绊、第九天 我趴在偏房一處隱蔽的房頂上張望既峡。 院中可真熱鬧,春花似錦碧查、人聲如沸运敢。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)传惠。三九已至,卻和暖如春稻扬,著一層夾襖步出監(jiān)牢的瞬間卦方,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工泰佳, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留盼砍,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,308評(píng)論 3 372
  • 正文 我出身青樓乐纸,卻偏偏與公主長(zhǎng)得像衬廷,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子汽绢,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容