ffmpeg-将bmp文件另存为其他扩展名


0

我想使用Ffmpeg 保存bmp文件1.mp4,如何实现?

问题很简单。我有一些源文件,让我们调用它source.png,我想将其编码为bmp,但是将其另存为具有extension的文件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会显示所有受支持的格式。我做到了,我发现只有一种包含word的格式bmp

D  bmp_pipe        piped bmp sequence

然后,我替换了-f bmp with-f bmp_pipe`,但是再次出现相同的错误。那么,如何正确地做呢?

通常,我的问题是:给定扩展名(例如,bmp在这种情况下),如何确定-f为了像该扩展名一样进行编码而需要放置的单词?


也许我对这个问题不够清楚。我在寻找一种方式来找到扩展之间的连接(bmppngmp4avi和FFmpeg的参数,我需要以编码到该分机通过等)。

基本上,我正在创建一个用户界面应用程序,其中:

  1. 用户输入扩展名(例如mp4
  2. 用户输入输出文件名(例如C:\1.exe(仅是愚蠢的示例))
  3. 我需要生成ffmpeg进程,该进程将对输入文件进行编码,例如输出文件位于用户指定的扩展名中

我希望现在更加清楚。

Answers:


1

您必须通过父多路复用器来获取图像序列image2

ffmpeg -i in.png -c:v bmp -vframes 1 -f image2 out.mp4

运行ffmpeg -muxers以获取可用-f值列表。没有链接到多路复用器的扩展的集中列表。


嗯。一般适用吗?我的意思是,我正在寻找一种方法来询问用户扩展名,然后将图像(或视频)编码到该扩展名(但输出文件始终命名为.mp4)。那么,我可以-c:v bmp用任何其他扩展名替换吗,它将起作用?

对于图像格式,这是方法。对于视频格式,供应-f ext
Gyan

我更新了问题。因此,总而言之,对于所有图像扩展名,我都需要通过-c:v ext -f image2,对于所有视频格式,我都需要通过-f ext,对吗?有什么例外吗?

1
无法自动执行此操作,因为ffmpeg的行为不像输出扩展名是false标志。这是一个非常不典型且无法预料的用例,尤其是考虑到之后可以重命名该文件。
Gyan

1
如果要进行流传输,并且输出URI没有扩展名,则必须指定-f。运行ffmpeg -muxers以获取可用-f值列表。没有链接到多路复用器的扩展的集中列表。
Gyan
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.