MediaInfo 在 C# 中动态检查 AudioStreams
Posted
技术标签:
【中文标题】MediaInfo 在 C# 中动态检查 AudioStreams【英文标题】:MediaInfo check AudioStreams dynamically in C# 【发布时间】:2020-10-23 11:12:49 【问题描述】:我正在使用带有 Wrapper-Class 的 MediaInfo.dll 来检查视频文件中的音频编解码器。
谁能告诉我如何检查文件的音频流数?
string pfad = Console.ReadLine();
string[] verzeichnisse = Directory.GetDirectories(pfad);
foreach (string verzeichnis in verzeichnisse)
string[] dateien = Directory.GetFiles(verzeichnis);
foreach (string datei in dateien)
if(datei.ToLower().Contains(".mkv") || datei.ToLower().Contains(".avi") || datei.ToLower().Contains(".mp4"))
var mediaInfo = new MediaInfo();
mediaInfo.Open(datei);
// HERE I WANT CHECK FIRST HOW MANY AUDIO-STREAMS THERE ARE
// ???
var audiostream1 = mediaInfo.Get(StreamKind.Audio, 0, "Format");
var audioStream2 = mediaInfo.Get(StreamKind.Audio, 1, "Format");
mediaInfo.Close();
【问题讨论】:
【参考方案1】:如何检查文件的音频流数?
mediaInfo.Count_Get(StreamKind.Audio);
您可以查看MediaInfo C# example 以获取更多示例。
另一个例子(你可以在链接的例子中找到它):
mediaInfo.Get(StreamKind.Audio, 0, "Language");
Jérôme,MediaInfo 的开发者。
【讨论】:
非常感谢! 可以获取 AudioStream 的语言吗? 检查我链接到的示例将提供答案,无论如何我用这样特定的附加示例编辑了我的答案。【参考方案2】:您可以在这里找到所有 MediaInfo 属性https://staxrip2.readthedocs.io/en/latest/mediainfo.html
其中一些不起作用,我不知道这是否是 C# 包装器中的错误。
在您的情况下,您可以分别计算视频、音频和字幕流:
mediaInfo.Get(StreamKind.Video, 0, "StreamCount");
mediaInfo.Get(StreamKind.Audio, 0, "StreamCount");
mediaInfo.Get(StreamKind.Text, 0, "StreamCount");
【讨论】:
以上是关于MediaInfo 在 C# 中动态检查 AudioStreams的主要内容,如果未能解决你的问题,请参考以下文章
将 MediaInfo DLL 与 C# DLLImport 一起使用