Encoding FFmpeg—VP9中的两个过程为第一个过程生成一个空输出文件

Encoding FFmpeg—VP9中的两个过程为第一个过程生成一个空输出文件,encoding,ffmpeg,vp9,Encoding,Ffmpeg,Vp9,当我尝试在ffmpeg中用两遍编码一个视频文件时,使用vp9,第一遍的输出文件是空的。因此,我不能继续进行第二部分 两个通行证的代码: 1.通过: ffmpeg -y -s:v 3840x1920 -framerate 30 -i video_framerate_resolution.yuv -c:v libvpx-vp9 -crf 20 -pass 1 -an -f avi NULL && \ 2.通过 ffmpeg -s:v 3840x1920 -framerate 30

当我尝试在ffmpeg中用两遍编码一个视频文件时,使用vp9,第一遍的输出文件是空的。因此,我不能继续进行第二部分

两个通行证的代码:

1.通过:

ffmpeg -y -s:v 3840x1920 -framerate 30 -i video_framerate_resolution.yuv -c:v libvpx-vp9 -crf 20
-pass 1 -an -f avi NULL && \
2.通过

ffmpeg -s:v 3840x1920 -framerate 30 -i video_framerate_resolution.yuv -c:v libvpx-vp9
-pass 2 -b:v 1000K -f avi out.avi

任何帮助都将不胜感激。谢谢。

您不需要为第一次传递生成文件。其目的只是将帧发送到编码器,以便它可以记录统计数据。但是,您应该跳过muxer

所以,通过1

ffmpeg -s:v 3840x1920 -framerate 30 -i video_framerate_resolution.yuv -c:v libvpx-vp9 -b:v 1000k -pass 1 -an -f null -
通过2

ffmpeg -s:v 3840x1920 -framerate 30 -i video_framerate_resolution.yuv -c:v libvpx-vp9 -pass 2 -b:v 1000K out.avi

谢谢你的回复!我已经尝试了你的代码,但在第一次传递时,同样的黄色消息再次出现:“输出文件为空,未编码任何内容”。如果我忽略它并继续第二部分,则会出现一条红色错误消息:“Option framerate not found”(未找到选项帧速率)。第一个是警告,而不是错误。别理它。第二,在
-i
之前添加
-f rawvideo
。如果仍然不起作用,请粘贴pass 2的完整控制台。添加
-report
以记录它。