You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

FFmpeg支持的文件扩展名有哪些?如何获取并用于JavaFX的ExtensionFilter

获取FFmpeg支持的完整文件扩展名(用于JavaFX FileChooser)

我来帮你搞定这个问题——要拿到FFmpeg支持的完整文件扩展名列表给JavaFX的FileChooser用,确实不能直接靠ffmpeg -codecs或ffmpeg -formats的输出,因为那些是格式/编解码器名称,和实际扩展名不是直接对应的(就像你举的例子:matroska格式对应的是.mkv这类扩展名,而不是直接用格式名)。这里有几个实用的方法:

方法1:用命令行批量提取准确的扩展名映射

FFmpeg本身会为每个格式关联支持的扩展名,你可以针对单个格式查询,比如想知道Matroska支持哪些扩展名,运行:

ffmpeg -h demuxer=matroska

输出里会有一行类似 Extensions: mkv mk3d mka mks,这就是该格式对应的所有扩展名。

如果要批量提取所有格式的扩展名,可以用这两个命令分别获取输入(可解码)和输出(可编码)格式的扩展名:

# 提取所有可读取格式的扩展名
ffmpeg -hide_banner -formats | grep "^D " | awk '{print $2}' | xargs -I {} ffmpeg -h demuxer={} 2>&1 | grep -E "^    Extensions:" | awk '{print substr($0, 14)}'

# 提取所有可写入格式的扩展名
ffmpeg -hide_banner -formats | grep "^E " | awk '{print $2}' | xargs -I {} ffmpeg -h muxer={} 2>&1 | grep -E "^    Extensions:" | awk '{print substr($0, 14)}'

把这些输出收集起来,去重后就能得到完整的扩展名列表。

方法2:直接整理映射表(适合快速开发)

如果不想折腾命令行,也可以根据FFmpeg的格式规则整理一份常见的扩展名映射,比如:

  • 视频容器:.mp4, .mkv, .avi, .mov, .flv, .wmv, .webm
  • 音频格式:.mp3, .aac, .flac, .wav, .ogg, .ac3
  • 流媒体/其他:.m3u8, .ts

然后把这些分组到JavaFX的ExtensionFilter里,示例代码如下:

// 视频文件过滤器
ExtensionFilter videoFilter = new ExtensionFilter(
    "Video Files",
    "*.mp4", "*.mkv", "*.avi", "*.mov", "*.flv", "*.wmv", "*.webm"
);

// 音频文件过滤器
ExtensionFilter audioFilter = new ExtensionFilter(
    "Audio Files",
    "*.mp3", "*.aac", "*.flac", "*.wav", "*.ogg", "*.ac3"
);

// 所有支持的文件过滤器
ExtensionFilter allFilter = new ExtensionFilter(
    "All Supported Files",
    "*.mp4", "*.mkv", "*.avi", "*.mov", "*.flv", "*.wmv", "*.webm",
    "*.mp3", "*.aac", "*.flac", "*.wav", "*.ogg", "*.ac3", "*.m3u8", "*.ts"
);

// 把过滤器添加到FileChooser
FileChooser fileChooser = new FileChooser();
fileChooser.getExtensionFilters().addAll(videoFilter, audioFilter, allFilter);

小提示

  • 有些格式可能对应多个扩展名(比如Matroska对应.mkv、.mka、.mks),一定要确认完整的列表
  • 如果你的程序需要支持非常冷门的格式,建议用方法1的命令行工具批量提取,避免遗漏

内容的提问来源于stack exchange,提问作者zjevander

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:12:40