我正在寻找以最佳质量编码在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 ... –