![未找到作为 ffmpeg 输入的多个文件](https://linux22.com/image/1053930/%E6%9C%AA%E6%89%BE%E5%88%B0%E4%BD%9C%E4%B8%BA%20ffmpeg%20%E8%BE%93%E5%85%A5%E7%9A%84%E5%A4%9A%E4%B8%AA%E6%96%87%E4%BB%B6.png)
我正在使用 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