尽管如此,根据互联网和论坛上的大量说明,我还是遇到了这个问题。
ffmpeg -y -i input.mp4 -vcodec libvpx-vp9 -crf 31 -minrate 1500k -maxrate 4350k -pix_fmt yuv420p10le -colorspace 9 -slices 4 -color_range 2 -tile-columns 2 -quality good -g 240 -c:a libopus -b:a 128k -pass 1 NUL && ^ ffmpeg -i input.mp4 -vcodec libvpx-vp9 -crf 31 -minrate 1500k -maxrate 4350k -pix_fmt yuv420p10le -colorspace 9 -color_range 2 -tile-columns 3 -slices 4 -quality good -g 240 -map_metadata:g -1 -map_metadata:s:v -1 -map_metadata:s:a -1 -map_chapters -1 -c:a libopus -b:a 128k -pass 2 output.mp4
我是 Windows 用户。大多数人在 Linux 上使用 ffmpeg,因此两次编码使用/dev / null
。我不感兴趣,因为在 Windows 上它不起作用。按照 trac-page ffmpeg 上的说明进行阅读(trac.ffmpeg.org)。 它说:
注意。Windows 用户应使用 NUL 代替 / dev / null ,使用 ^ 代替 \ 。
但它没有帮助。我用过:
NUL
NULL
/dev/NUL
/dev/NULL
但无济于事。看来我失望了,从来没有完全沉浸在对 ffmpeg 的研究中。(最近才开始探索)。
有相同的主题,那里也说你需要使用 NUL。(点击)
在这种情况下,我请求专业人士的帮助。否则,仍然需要折磨模拟器......
答案1
FFmpeg 尝试根据输出文件名检测输出容器格式,但由于 NUL 不是实际文件名,因此必须指定格式。您可以使用空复用器。
ffmpeg -y -i input.mp4 -vcodec libvpx-vp9 -crf 31 -minrate 1500k -maxrate 4350k -pix_fmt yuv420p10le -colorspace 9 -slices 4 -color_range 2 -tile-columns 2 -quality good -g 240 -c:a libopus -b:a 128k -pass 1 -f null NUL && ffmpeg -i input.mp4 -vcodec libvpx-vp9 -crf 31 -minrate 1500k -maxrate 4350k -pix_fmt yuv420p10le -colorspace 9 -color_range 2 -tile-columns 3 -slices 4 -quality good -g 240 -map_metadata:g -1 -map_metadata:s:v -1 -map_metadata:s:a -1 -map_chapters -1 -c:a libopus -b:a 128k -pass 2 output.mp4
(我还没有检查你的其他参数)