我正在尋找以最佳質量編碼在VP9中使用iPhone 6s拍攝的4k視頻。FFmpeg - 爲VP9編碼選擇合適的比特率
作爲參考,我想編碼,經由ffprobe
視頻流數據:
Duration: 00:00:10.48, start: 0.000000, bitrate: 46047 kb/s
Stream #0:0(und): Video: h264 (High) (avc1/0x31637661), yuv420p(tv, bt709), 3840x2160, 45959 kb/s, 29.98 fps, 29.97 tbr, 600 tbn, 1200 tbc (default)
Metadata:
creation_time : 2017-03-13T21:12:56.000000Z
handler_name : Core Media Data Handler
encoder : H.264
Stream #0:1(und): Audio: aac (LC) (mp4a/0x6134706D), 44100 Hz, mono, fltp, 79 kb/s (default)
Metadata:
creation_time : 2017-03-13T21:12:56.000000Z
handler_name : Core Media Data Handler
我使用下面的FFmpeg命令,基於these instructions(見Best Quality (Slowest) Recommended Settings
部分)。
ffmpeg -i INPUT.mov -c:v libvpx-vp9 -pass 1 -b:v 46000K -threads 4 -speed 4 -g 9999 -an -f webm -y /dev/null
ffmpeg -I INPUT.mov -c:v libvpx-vp9 -pass 2 -b:v 46000K -threads 4 -speed 0 -g 9999 -an -f webm OUTPUT.webm
是否有最佳實踐選擇最優-b:v
值,使得生成的視頻是從原來的視覺上不可區分?我嘗試過的值範圍從36000K-46000K,但是這些會導致整體比特率超過目標比特率的大文件。
在此先感謝!
這就是CRF(恆定質量)模式的用途。使用'-crf 20 -b:v 0'跳過兩遍。在輸入的短段上測試不同的CRF值(0到63)。一旦你達到產生足夠小和足夠好的輸出的價值,就使用該值。 – Mulvya
@ Mulvya評論之上的獎勵點:雖然使用其他編碼器,但1-pass和2-pass CRF應該可以得到相同的結果,但遺憾的是libvpx並不是這種情況,並且您仍然應該執行2遍編碼,即使在做CRF ... –