未找到作为 ffmpeg 输入的多个文件

未找到作为 ffmpeg 输入的多个文件

我正在使用 Ubuntu 14.04,并使用以下选项从源代码编译了 ffmpeg 2.8.4:

./configure --enable-gpl --enable-libass --enable-libfaac --enable-libfdk-aac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-librtmp --enable-libtheora --enable-libvorbis --enable-libvpx --enable-x11grab --enable-libx264 --enable-nonfree --enable-version3 --enable-shared

我有一组从 0 到 n 连续编号的文件,并尝试使用“%03d”作为我的输入的一部分,如下所示:

ffmpeg -y -pix_fmt yuv420p -s qvga -start_number 0 -i picture%03d.yuv -f mp4 -vcodec libx264 -s qvga -an -threads 0 output.mp4

无论有没有 start_number,它都无法找到文件并在终端上显示以下错误消息:

ffmpeg 版本 2.8.4 版权所有 (c) 2000-2015 FFmpeg 开发人员
使用 gcc 4.8 构建(Ubuntu 4.8.4-2ubuntu1~14.04)
配置:--enable-gpl--enable-libass--enable-libfaac--enable-libfdk-aac--enable-libmp3lame--enable-libopencore-amrnb--enable-libopencore-amrwb--enable-librtmp--enable-libtheora--enable-libvorbis--enable-libvpx--enable-x11grab--enable-libx264--enable-nonfree--enable-version3--enable-shared
  libavutil 54. 31.100 / 54. 31.100
  libavcodec 56. 60.100 / 56. 60.100
  libavformat 56. 40.101 / 56. 40.101
  libavdevice 56. 4.100 / 56. 4.100
  libavfilter 5.40.101 / 5.40.101
  libswscale 3. 1.101 / 3. 1.101
  libswresample 1. 2.101 / 1. 2.101
  libpostproc 53. 3.100 / 53. 3.100
picture%03d.yuv:没有此文件或目录

以下是目录中一些文件的简短列表,以证明它们存在:

图片0.yuv 图片153.yuv 图片206.yuv 图片25.yuv 图片312.yuv 图片4.yuv
图片100.yuv 图片154.yuv 图片207.yuv 图片260.yuv 图片313.yuv 图片50.yuv
图片101.yuv 图片155.yuv 图片208.yuv 图片261.yuv 图片314.yuv 图片51.yuv
图片102.yuv 图片156.yuv 图片209.yuv 图片262.yuv 图片315.yuv 图片52.yuv
图片103.yuv 图片157.yuv 图片20.yuv 图片263.yuv 图片316.yuv 图片53.yuv
图片104.yuv 图片158.yuv 图片210.yuv 图片264.yuv 图片317.yuv 图片54.yuv
图片105.yuv 图片159.yuv 图片211.yuv 图片265.yuv 图片318.yuv 图片55.yuv
图片106.yuv 图片15.yuv 图片212.yuv 图片266.yuv 图片319.yuv 图片56.yuv

任何帮助都将非常感谢,提前感谢。

编辑-工作命令

ffmpeg -y -vcodec rawvideo -pix_fmt yuv420p -s qvga -start_number 0 -f image2 -i picture%d.yuv -f mp4 -vcodec libx264 -s qvga -an -threads 0 输出.mp4

答案1

您的输入文件名缺少零填充,因此使用-i picture%d.yuv

其他的东西:

  • 确保序列中没有丢失文件或中断。

  • 在这种情况下,您的输出选项-f mp4-s qvga-an-threads 0都是多余的。

答案2

-f image2尝试在之前添加-i picture%03d.yuv

编辑:解决方法。

如果您尝试将所有 yuv 文件编码为单个 mp4,则可以创建一个 yuv 文件,例如:

cat picture*.yuv > hugefile.yuv

然后对单个 yuv 文件进行编码。

编辑:保持自然排序。

为了保持自然排序顺序,我们可以使用-v命令选项ls

cat $(ls -v picture*) > hugefile.yuv

相关内容