FFmpeg 支持的所有文件扩展名是什么

zje*_*der 3 java ffmpeg javafx

我将如何获取 FFmpeg 支持的所有文件扩展名的列表,以便在 JavaFX 中 FileChooser 使用的 ExtensionFilter 中使用?

我熟悉 FFmpeg 的“-codecs”和“-formats”选项,但这些列出了格式和编解码器名称,它们不一定与其文件扩展名一致。

例如(“ffmpeg -formats”的部分输出)

  • D aac 原始 ADTS AAC(高级音频编码)
  • DE ac3 原始 AC-3
  • E matroska Matroska

从 ffmpeg 的输出中解析 aac 和 ac3 可以很好地为这些类型的文件创建文件扩展名,但 matroska 具有“.mkv”文件扩展名。

Gya*_*yan 6

没有直接可用的列表。你必须跑

对于输入格式, ffmpeg -demuxers
对于输出格式,ffmpeg -muxers

然后对于每个条目,运行

对于输入格式, ffmpeg -h demuxer=entry
对于输出格式,ffmpeg -h muxer=entry

每个格式读数都会显示类似的内容,

Muxer matroska [Matroska]:
    Common extensions: mkv.
    Mime type: video/x-matroska.
    Default video codec: h264.
...
Run Code Online (Sandbox Code Playgroud)

或者

Demuxer avi [AVI (Audio Video Interleaved)]:
    Common extensions: avi.
...
Run Code Online (Sandbox Code Playgroud)

然后您可以从Common extensions条目中收集所有扩展名。

  • 要获得一个不错的列表,请运行“ffmpeg -demuxers -hide_banner | 尾-n +5 | 切 -d' ' -f4 | xargs -i{} ffmpeg -hide_banner -h 解复用器={} | grep '通用扩展' | 切 -d' ' -f7 | tr ',' $'\n' | tr -d '.'` 与多路复用相同,只需将 `demux` 替换为 `mux` (4认同)