我想使用Ffmpeg保存一个bmp
文件1.mp4
,如何实现?
问题很简单。我有一些源文件,我们称之为source.png
,我想将其编码为bmp
,但要将其保存为扩展名为的文件mp4
。当然,实现它的一种方法是将其保存为bmp
扩展名为的文件,然后使用命令行将其重命名为mp4
。但这不是我想要的。我希望它直接保存为mp4
。
我在网上搜索了一下,发现要实现这个功能,必须指定-f
参数。这是我的命令行:
ffmpeg -hide_banner -i source.png -f bmp 1.mp4
当然,我得到了一个错误Requested output format 'bmp' is not a suitable output format.
。我继续寻找解决方案,发现使用参数调用 Ffmpeg-formats
会显示所有支持的格式。我照做了,发现只有一种格式包含单词bmp
:
D bmp_pipe piped bmp sequence
然后我替换了-f bmp with
-f bmp_pipe`,但再次出现相同的错误。那么,如何正确执行此操作?
总的来说,我的问题是:给定扩展名(例如bmp
在这种情况下),如何确定需要放置在后面的单词-f
以便对扩展名进行编码?
也许我的问题不够清楚。我正在寻找一种方法来找到扩展名(、、、bmp
等)与我需要传递以编码到该扩展名的 Ffmpeg 参数之间的联系。png
mp4
avi
基本上,我正在创建一个用户界面应用程序,其中:
- 用户输入分机号(例如
mp4
) - 用户输入输出文件名(例如
C:\1.exe
(只是一个愚蠢的例子)) - 我需要生成 ffmpeg 进程,该进程将对输入文件进行编码,就像输出文件位于用户指定的扩展名中一样
我希望现在更加清楚了。
答案1
您必须通过父级复用器来获取图像序列image2
:
ffmpeg -i in.png -c:v bmp -vframes 1 -f image2 out.mp4
运行 ffmpeg-muxers
以获取可用值的列表-f
。没有链接到多路复用器的中央扩展列表。