使用ffmpeg拼接图片生成MP4报错:无法找到合适输出格式
FFmpeg拼接图片为MP4时出现格式错误问题
错误信息
[NULL @ 000001d48d1dcc00] Unable to find a suitable output format for 'ffmpeg'
ffmpeg: Invalid argument
所用命令
ffmpeg -r 30 -f image2 -s 1920x1080 -i C://MYPATH//back_squat_%03d.png -vcodec libx264 -crf 25 -pix_fmt yuv420p C://MYPATH//back_squat.mp4
完整输出
ffmpeg version 4.2.3 Copyright (c) 2000-2020 the FFmpeg developers built with gcc 9.3.1 (GCC) 20200523 configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-amf --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt libavutil 56. 31.100 / 56. 31.100 libavcodec 58. 54.100 / 58. 54.100 libavformat 58. 29.100 / 58. 29.100 libavdevice 58. 8.100 / 58. 8.100 libavfilter 7. 57.100 / 7. 57.100 libswscale 5. 5.100 / 5. 5.100 libswresample 3. 5.100 / 3. 5.100 libpostproc 55. 5.100 / 55. 5.100 Input #0, image2, from 'C://MYPATH//back_squat_%03d.png': Duration: 00:00:02.37, start: 0.000000, bitrate: N/A Stream #0:0: Video: png, rgba(pc), 900x1000 [SAR 2835:2835 DAR 9:10], 30 fps, 30 tbr, 30 tbn, 30 tbc Input #1, image2, from 'C://MYPATH//back_squat_%03d.png': Duration: 00:00:02.37, start: 0.000000, bitrate: N/A Stream #1:0: Video: png, rgba(pc), 900x1000 [SAR 2835:2835 DAR 9:10], 30 fps, 30 tbr, 30 tbn, 30 tbc [NULL @ 000002001b8d5780] Unable to find a suitable output format for 'ffmpeg' ffmpeg: Invalid argument
问题分析与解决
错误原因
- 核心问题是实际执行的命令中意外将'ffmpeg'作为输出目标文件名,导致FFmpeg无法识别该"文件"对应的格式,抛出错误。
- 从输出中的双输入流(Input #0和Input #1)可以推断,你可能在输入命令时重复输入了
ffmpeg(比如写成ffmpeg ffmpeg -r ...),或者误添加了重复的-i参数,导致程序解析出两个相同的输入源,同时把冗余的ffmpeg字符串当成了输出文件。
修正后的命令
确保命令开头仅出现一次ffmpeg,参数顺序正确,Windows路径使用规范的单斜杠或双反斜杠,修正命令如下:
ffmpeg -r 30 -f image2 -s 1920x1080 -i C:/MYPATH/back_squat_%03d.png -vcodec libx264 -crf 25 -pix_fmt yuv420p C:/MYPATH/back_squat.mp4
额外提示
- Windows环境下,路径分隔符推荐用
/或者\\,避免使用//(虽能识别但不符合规范)。 - 执行命令前仔细检查是否存在冗余的
ffmpeg字符串或重复参数,确保命令输入准确。
内容的提问来源于stack exchange,提问作者kumarvhat
相关产品推荐
相关产品推荐

