【视频】视频基本参数介绍
視頻(Video)泛指將一系列靜態(tài)影像以電信號的方式加以捕捉、紀(jì)錄、處理、儲存、傳送與重現(xiàn)的各種技術(shù)。
連續(xù)的圖像變化每秒超過24幀(frame)畫面以上時,根據(jù)視覺暫留原理,人眼無法辨別單幅的靜態(tài)畫面;看上去是平滑連續(xù)的視覺效果,這樣連續(xù)的畫面叫做視頻。
單純傳輸視頻畫面,視頻量非常大,對現(xiàn)有的網(wǎng)絡(luò)和存儲來說是不可接受的。
為了能夠使視頻便于傳輸和存儲,人們發(fā)現(xiàn)視頻有大量重復(fù)的信息,如果將重復(fù)信息在發(fā)送端去掉,在接收端恢復(fù)出來,這樣就大大減少了視頻數(shù)據(jù)的文件,因此有了H.264視頻壓縮標(biāo)準(zhǔn)。
視頻文件格式
視頻文件后綴都有諸如mp4、rmvb、mkv、avi等等,這些是文件的擴(kuò)展名,也就是視頻文件格式
視頻編碼方式
指視頻文件格式中視頻流數(shù)據(jù)的壓縮編碼方式,MPEG-4、MPEG-4/AVC、H.264等等
幀率
表示一秒播放的視頻中有多少個幀,單位是(Frame Per Second)簡稱:FPS或“赫茲”(Hz)以及Gop(表示多少秒一個I幀),人眼能接受的視頻連續(xù)播放的最小幀率為25幀/秒。
幀是組成視頻的基本單位。視頻文件本身是由很多連續(xù)的圖片組成,當(dāng)這些圖片以一定的時間間隔顯示時就是所謂的視頻播放,而人眼感官視頻連續(xù)最大延時間隔為40ms,當(dāng)然每秒顯示的幀數(shù)越多畫面看起來就越流暢。
所以說要想得到非常流暢的畫面感,幀率當(dāng)然是越高越好,但是超過60幀每秒估計(jì)人類也可能感知不出效果了。
ffmpeg -i input.mp4 –r 29.00 output.mp4
分辨率
單位英寸中所包含的像素點(diǎn)數(shù),影響圖像大小,與圖像大小成正比:分辨率越高,圖像越大;分辨率越低,圖像越小。
-s 640x360 ? ffmpeg -i input.mp4 -s 640x360 output.mp4
清晰度
在碼率一定的情況下,分辨率與清晰度成反比關(guān)系:分辨率越高,圖像越不清晰,分辨率越低,圖像越清晰。
在分辨率一定的情況下,碼率與清晰度成正比關(guān)系,碼率越高,圖像越清晰;碼率越低,圖像越不清晰。
碼率(比特率)
比特率,英文為 bit rate,描述每秒鐘輸出多少 KB 的參數(shù),單位是 Kbps,也就是 kbit/s,8Kbit/s = 1KB/s。也就是說800Kbps意思就是每秒視頻就要占用100KB磁盤空間 ?規(guī)范寫法是800Kbps,也就是800Kbit/s?
由于保存完整的一幀一幀圖片的視頻原文件太大,必須要通過某種視頻壓縮算法將視頻中的圖片壓縮,以減小視頻文件大小,那么讀者應(yīng)該可以想到,壓縮比越大,解壓縮還原后用來播放的視頻就會有越嚴(yán)重的失真,因?yàn)閴嚎s的同時不可避免的丟失了視頻中原來圖像的數(shù)據(jù)信息。
在理解這個的前提下,我來舉個例子,一個分辨率為1080P的原視頻(未經(jīng)壓縮)被壓縮成分別為4GB 和 1GB的兩個視頻文件。由于1GB的視頻的壓縮比更大,所以在觀看1GB視頻的明顯感覺到?jīng)]有4GB視頻清晰(雖然他們的分辨率都是1080P)。
所謂碼率,簡單來說就是指在壓縮視頻的時候給這個視頻指定一個參數(shù),用以告訴壓縮軟件期望的壓縮后視頻的大小。碼率的英文名為bps(bit per second),就是用平均每秒多少bit來衡量一個視頻大小。
比如那個被壓縮的1080P的視頻,假設(shè)它的長度為100分鐘,大小為1GB。
100M=100X60S=6000s
1GB=1024MB= 1024X1024KB=1024X1024X1024Byte=1024X1024X1024X8bit=8589934592bit
那么這個視頻的碼率大概就是1.4Mbit/s(8589934592/6000),這個比特率在在線視頻中已經(jīng)是非常高的了,一般主流視頻平臺的最高碼率在1Mbit左右,比如直播網(wǎng)站斗魚的高清選項(xiàng)實(shí)際播放的視頻碼率是900Kbit/s(0.9Mbit)。
碼率控制對于在線視頻比較重要。因?yàn)樵诰€視頻需要考慮其能提供的帶寬。
那么,什么是碼率?很簡單:?
bitrate = file size / duration?
比如一個文件20.8M,時長1分鐘,那么,碼率就是:?
biterate = 20.8M bit/60s = 20.8*1024*1024*8 bit/60s= 2831Kbps
一般音頻的碼率只有固定幾種,比如是128Kbps,?
那么,video的就是?
video biterate = 2831Kbps -128Kbps = 2703Kbps。
那么ffmpeg如何控制碼率。?
ffmpg控制碼率有3種選擇,-minrate -b:v -maxrate?
-b:v主要是控制平均碼率。?
比如一個視頻源的碼率太高了,有10Mbps,文件太大,想把文件弄小一點(diǎn),但是又不破壞分辨率。?
ffmpeg -i input.mp4 -b:v 2000k output.mp4?
上面把碼率從原碼率轉(zhuǎn)成2Mbps碼率,這樣其實(shí)也間接讓文件變小了。目測接近一半。?
不過,ffmpeg官方wiki比較建議,設(shè)置b:v時,同時加上 -bufsize?
-bufsize 用于設(shè)置碼率控制緩沖器的大小,設(shè)置的好處是,讓整體的碼率更趨近于希望的值,減少波動。(簡單來說,比如1 2的平均值是1.5, 1.49 1.51 也是1.5, 當(dāng)然是第二種比較好)?
ffmpeg -i input.mp4 -b:v 2000k -bufsize 2000k output.mp4
-minrate 就簡單了,在線視頻有時候,希望碼率波動,不要超過一個閾值,可以設(shè)置maxrate。?
ffmpeg -i input.mp4 -b:v 2000k -bufsize 2000k -maxrate 2500k output.mp4
總結(jié)
對于視頻來講,碼率應(yīng)該是最重要的參數(shù),從上面的例子我們看出,碼率直接與視頻壓縮比相關(guān)。直觀來講,碼率越大代表一個視頻的畫質(zhì)也清晰(不考慮各種壓縮算法的優(yōu)劣問題)。
總結(jié)
以上是生活随笔為你收集整理的【视频】视频基本参数介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: numpy 数组与矩阵的乘法理解
- 下一篇: 【探索测试篇】探索无界,BUG无限,让程