MediaInfo 在 C# 中动态检查 AudioStreams

MediaInfo check AudioStreams dynamically in C#

我正在使用 MediaInfo.dll 和 Wrapper-Class 来检查音频编解码器的视频文件。

谁能告诉我如何检查文件的音频流数量?

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();

                }
            }
        }

how I can check COUNT of the Audio-Streams of the File?

mediaInfo.Count_Get(StreamKind.Audio);

您可以查看 MediaInfo C# example 以获取更多示例。

另一个例子(你可以在链接的例子中找到它):

mediaInfo.Get(StreamKind.Audio, 0, "Language");

Jérôme,MediaInfo 的开发者。

您可以在此处找到所有 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");