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