2016-04-28 206 views
1

我有可以播放.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-1MPEG-2的則不能。

我想我需要更多的處理程序添加到extensions也許我應該怎麼Microsoft Player Framework,但他們沒有Dash plugin爲Windows 10,所以以下this例如我不能完成的結果。或者也許FFmpeg?

回答

2

Windows 10不支持本地MPEG2視頻編解碼器。

不過時,Windows 10不原生支持:

  • HLS

  • MPEG DASH(Live個人資料)

它也支持平滑流,如果您使用的平滑流媒體客戶端SDK for Windows 10.

您使用了一個指向我的b登錄這是關係到Windows 8.1無法在Windows 10,你會發現一個通用視頻播放器在我的github上的樣本,支持DASH,HLS和Smooth Streaming的PlayReady的+ DRM: https://github.com/flecoqui/Windows10/tree/master/Samples/UniversalMediaPlayer

此示例應用程序是兼容PC ,平板電腦,電話和運行Windows 10的XBOX One。

如果您想播放MPEG2內容,可以使用VLC。 VLC確實支持MPEG2編解碼器。 嘗試VLC 3.0每晚構建
http://nightlies.videolan.org/build/win32/
VLC 3.0應該很快RTM。

讓我知道如果我回答你的問題

+0

感謝您的回覆。我無法打開我的'MPEG-2'文件,所以我會尋找另一種解決方案。 – Vlad