没有扩展名的FFmpeg输出文件格式

60

我正在开发一个需要以以下形式存储视频的系统:

/path/to/video/<md5 of the file>

我的视频文件没有输出扩展名。我正在使用 ffmpeg 转换这些视频,但似乎它使用输出文件扩展名来确定输出格式,所以这就是我的问题。

由于文件名中没有输出扩展名,是否有一种方法可以在命令行中直接指定输出格式,而不需要创建临时文件或类似此类的不良解决方案吗?


可能还需要使用-y选项来允许覆盖目标文件。如果您没有指定-y选项并且文件正在使用中,ffmpeg将等待用户输入。正如我最近发现的那样,这会有效地挂起进程。 :P - Charlie
2个回答

99

使用-f参数告诉ffmpeg要使用哪种输出格式,例如:

ffmpeg -i input.mpg ... -f mp4 output

创建一个名为output的mp4格式文件。


34
-f 也用作输入格式规范,具体取决于其位置:ffmpeg -f mpg -i input.mpg ... -f mp4 output.mp4 - yetihehe
4
请注意,问题是“如果我没有扩展名会怎样?”因此您的答案应该说output而不是output.mp4,以证明它符合OP的问题。请将该内容翻译为中文。 - Alexis Wilke
这也帮助我解决了与流式传输到YouTube相关的问题。https://stackoverflow.com/questions/67943834/ffmpeg-stream-windows-7-desktop-to-youtube-give-invalid-argument - TenG

1

和 @luukes 的解决方案相同,但请注意如果你正在制作 aac 输出,-f 参数应该是 adts

ffmpeg -i input.mpg ... -f adts output

创建一个AAC格式的名为output的文件。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接