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

关于使用MediaInfo获取ISO-639语言信息的技术咨询

使用MediaInfo获取ISO-639语言信息的技术咨询

嘿,刚好我之前在C#项目里用过MediaInfo处理媒体元数据,来给你说说怎么获取ISO-639语言信息~

首先直接回答你的疑问:你提到的mediaInfo.Get(StreamKind.Audio, 0, "Language")这个调用确实能拿到语言信息,而且大多数情况下返回的就是符合ISO-639标准的代码——可能是双字母的ISO-639-1格式(比如en代表英语),也可能是三字母的ISO-639-2格式(比如eng),具体取决于媒体文件本身存储的元数据类型。

如果想要更精准地指定获取某一类ISO-639代码,你可以用更明确的参数:

  • 要获取ISO-639-1双字母代码,用mediaInfo.Get(StreamKind.Audio, 0, "Language_ISO639-1")
  • 要获取ISO-639-2三字母代码,用mediaInfo.Get(StreamKind.Audio, 0, "Language_ISO639-2")

给你贴个简单的代码示例,方便你参考:

using MediaInfoDotNet; // 这里假设你用的是NuGet上的MediaInfoDotNet封装库

// 初始化MediaInfo实例
var mediaInfo = new MediaInfo();
// 打开目标媒体文件
mediaInfo.Open(@"D:\your-media-file.mkv");

// 获取音频流的各类语言标识
string iso639_1 = mediaInfo.Get(StreamKind.Audio, 0, "Language_ISO639-1");
string iso639_2 = mediaInfo.Get(StreamKind.Audio, 0, "Language_ISO639-2");
string generalLang = mediaInfo.Get(StreamKind.Audio, 0, "Language");

// 输出结果
Console.WriteLine($"ISO-639-1 代码: {iso639_1 ?? "未找到语言元数据"}");
Console.WriteLine($"ISO-639-2 代码: {iso639_2 ?? "未找到语言元数据"}");
Console.WriteLine($"通用语言标识: {generalLang ?? "未找到语言元数据"}");

// 记得关闭资源
mediaInfo.Close();

另外要提醒你几个小细节:

  • 如果媒体文件本身没有嵌入语言元数据,这些调用都会返回空字符串,所以使用前最好做个判空处理
  • 如果你用的是官方的MediaInfo .NET绑定而非第三方封装,参数名称可能会略有不同,遇到问题可以查一下对应版本的API文档
  • 如果你的媒体有多个音频流,记得把第二个参数(索引)改成对应的序号,比如1就是第二个音频流

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.08 08:44:32