比特率和幀率是音視頻基本的特性,對于音視頻整體的質(zhì)量有關鍵作用!如果知道比特率和持續(xù)時間,就可以計算輸出文件的大小。
1.Frame(frequency)rate introduction
幀率就是每秒編碼進視頻文件的幀數(shù)目。人類的眼睛需要每秒至少15幀才能將圖像連貫在一起。幀率的單位是HZ,LCD顯示一般有60Hz的平率。
有2種類型的幀率-interlaced(denoted asiafter FPS number) and progressive(denoted aspafter FPS number)//逐行掃描和隔行掃描
逐行掃描(interlaced)的幀率一般用在電視:
-NTSC用60i fps,意思是:60 interlaced fields(30 frames)per second
-PAL and SECAM標準用50i fps,等于25幀每秒。
隔行掃描(progressive)幀率是24p,25p和30p,用在電影工業(yè)上?,F(xiàn)在較新的幀率是50p/60p用在高檔的HDTV產(chǎn)品上。
2.幀率設置
使用-r選項
語法是:
ffmpeg -i input -r fps output
例如:
ffmpeg -i input.avi -r 30 output.mp4
使用fps filter
另一個設置幀率是用fps filter,特別是在filterchains使用時非常有用
例如:修改輸入文件的幀率到25
ffmpeg -v clip.mpg -vf fps=fps=25 clip.webm
對幀率預定義值
例如:設置幀率29.97fps
3.比特率設置
比特率也是一個決定音視頻總體質(zhì)量的參數(shù)。他決定每個時間單位處理的bit數(shù)。
設置比特率:
比特率決定處理1s的編碼流需要多少bits,設置用-b選項。區(qū)分音視頻用-b:a和-b:v
例如:設置整體1.5Mbit每秒
ffmpeg -i file.avi -b 1.5M file.mp4
ffmpeg -i input.avi -b:v 1500K output.mp4
CBR設置:
CBR設置一般用作直播流,比如視頻會議。為輸出設置CBR,有三個參數(shù)必須設置為同一個值。
bitrate(-b option), minimal rate(-minrate), maximal rate(-maxrate)。maximal rate需要設置-bufsize選項。例如設置CBR為0.5Mbit/s。
ffmpeg -i in.avi -b 0.5M -minrate 0.5M -maxrate 0.5M -bufsize 1M output.mkv
設置輸出文件的最大size。
用-fs選項。
例如設置輸出文件的最大的size為10M
ffmpeg -i input.avi -fs 10MB output.mp4
文件大小計算:
文件的大小是是音視頻流大小的和。
視頻流的大小的方程式是(除以8是由bits到bytes的轉(zhuǎn)換):
video_size = video_bitrate * time_in_seconds / 8;
如果音頻是解壓縮的,計算公式是:
audio_size = smpaling_rate * bit_depth * channels * time_in_second / 8;
例如:計算10分鐘的視頻, 1500kbits/s 視頻比特率和 128kbits/s的音頻比特率,用下面的計算方法:
file_size = video_size + audio_size;
file_size = (video_bitrate + audio_bitrate) * time_in_seconds / 8;
file_size = (1500 kbits/s + 128kbits/s) * 600s
file_size = 1628kbits/s * 600s
file_size = 976800kb = 976800000 b / 8 = 122100000 B / 1024 = 119238.28125KB
file_size = 119238.28125 KB / 1024 = 116.443634033203125MB = 116.44M