...
videoMedia = new Media(libVLC, new Uri(videoMediaFile));
videoMedia.ParsedChanged += OnVideoMediaParsedChanged;
videoMedia.Parse(MediaParseOptions.ParseNetwork);
...
private void OnVideoMediaParsedChanged(object sender, MediaParsedChangedEventArgs e)
{
foreach (var track in videoMedia.Tracks)
{
switch (track.TrackType)
{
case TrackType.Audio:
Debug.WriteLine("Audio track");
Debug.WriteLine($"{nameof(track.Data.Audio.Channels)}: {track.Data.Audio.Channels}");
Debug.WriteLine($"{nameof(track.Data.Audio.Rate)}: {track.Data.Audio.Rate}");
Debug.WriteLine(FourCCConverter.FromFourCC(track.OriginalFourcc));
break;
case TrackType.Video:
Debug.WriteLine("Video track");
Debug.WriteLine($"{nameof(track.Data.Video.FrameRateNum)}: {track.Data.Video.FrameRateNum}");
Debug.WriteLine($"{nameof(track.Data.Video.FrameRateDen)}: {track.Data.Video.FrameRateDen}");
Debug.WriteLine($"{nameof(track.Data.Video.Height)}: {track.Data.Video.Height}");
Debug.WriteLine($"{nameof(track.Data.Video.Width)}: {track.Data.Video.Width}");
break;
}
}
button1.Invoke(new Action(() =>
{
button1.Enabled = true;
}));
}
Video track
FrameRateNum: 30000
FrameRateDen: 1001
Height: 1080
Width: 1920
Audio track
Channels: 2
Rate: 48000
mp4a
在VLC我可以看到
3F2R/LFE
我怎样才能让libVLC给我
aout_FormatPrintChannels
//编辑:在播放视频大约1/3秒后(无论是本地文件还是网络),我开始得到正确的数字(6)。但这真的不好,因为我想事先重新映射频道实际上。。。