我有可以播放.m3u8文件的應用程序。 但是,當用MPEG 1/2 (mpgv)
編碼的視頻時,它只顯示空白屏幕。當打開像H.264
這樣的視頻時,一切正常。怎麼了?在UWP中的視頻解碼
這裏是代碼:
using Microsoft.Media.AdaptiveStreaming;
//Listing: MainPage.xaml.cs -> class
private MediaExtensionManager extensions;
private PropertySet propertySet;
private IAdaptiveSourceManager adaptiveSourceManager;
//Listing: MainPage.xaml.cs -> class -> constructor
propertySet = new PropertySet();
extensions = new MediaExtensionManager();
adaptiveSourceManager = AdaptiveSourceManager.GetDefault();
propertySet["{A5CE1DE8-1D00-427B-ACEF-FB9A3C93DE2D}"] = adaptiveSourceManager;
extensions.RegisterByteStreamHandler("Microsoft.Media.AdaptiveStreaming.SmoothByteStreamHandler", ".ism", "text/xml", propertySet);
extensions.RegisterByteStreamHandler("Microsoft.Media.AdaptiveStreaming.SmoothByteStreamHandler", ".ism", "application/vnd.ms-sstr+xml", propertySet);
extensions.RegisterByteStreamHandler("Microsoft.Media.AdaptiveStreaming.SmoothByteStreamHandler", ".ism", "application/x-mpegurl", propertySet);
extensions.RegisterByteStreamHandler("Microsoft.Media.AdaptiveStreaming.SmoothByteStreamHandler", ".ism", "video/mp2t", propertySet);
extensions.RegisterSchemeHandler("Microsoft.Media.AdaptiveStreaming.SmoothSchemeHandler", "ms-sstr:", propertySet);
//Listing -> MainPage.xaml.cs -> OnNavigatedTo method
//Getting manifest.m3u8
var link = new Uri("path_to_remote_m3u8_file");
Player.Source = link;
Player.Play();
//Listing: MainPage.xaml
<MediaElement x:Name="Player" />
一般來說,在.m3u8
我們有.ts
文件列表。但那些編碼爲H.264
的可以播放,而編碼爲MPEG-1
或MPEG-2
的則不能。
我想我需要更多的處理程序添加到extensions
也許我應該怎麼Microsoft Player Framework
,但他們沒有Dash plugin
爲Windows 10,所以以下this例如我不能完成的結果。或者也許FFmpeg?
感謝您的回覆。我無法打開我的'MPEG-2'文件,所以我會尋找另一種解決方案。 – Vlad