2016-04-28 15 views
1

Ich habe Anwendung, die .m3u8 Dateien abspielen kann. Wenn das Video jedoch mit MPEG 1/2 (mpgv) codiert ist, wird nur ein leerer Bildschirm angezeigt. Beim Öffnen von Videos wie H.264 ist alles in Ordnung. Was ist los mit dir?Video Dekodierung in UWP

Hier Code:

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" /> 

Allgemeinen in .m3u8 haben wir Liste der .ts Dateien. Aber die, die mit H.264 kodiert wurden, können abgespielt werden, und diejenigen, die mit MPEG-1 oder MPEG-2 codiert wurden, können nicht.

Ich glaube, ich muss mehr Handler extensions hinzuzufügen, oder vielleicht sollte ich Sie Microsoft Player Framework, aber sie haben nicht Dash plugin für Windows 10, so folgt this Beispiel, das ich nicht Ergebnis erreichen können. Oder vielleicht FFmpeg?

Antwort

2

Windows 10 unterstützt nativen MPEG2-Videocodec nicht.

Trotzdem 10 Windows-tut nativ unterstützt:

  • HLS

  • MPEG DASH (Live Profile)

Es ist auch Smooth Streaming unterstützen, wenn Sie die Smooth Streaming-Client verwenden SDK für Windows 10.

Sie verwendeten einen Link zu meinem b protokollieren, welche auf Windows 8.1 nicht auf Windows 10. Sie finden eine Probe eines Universal-Video-Player auf meinem GitHub verwandt ist, DASH unterstützt, HLS und Smooth Streaming + Playready DRM: https://github.com/flecoqui/Windows10/tree/master/Samples/UniversalMediaPlayer

Diese Beispielanwendung ist kompatibel mit PC , Tablet, Telefon und XBOX One unter Windows 10.

Wenn Sie MPEG2-Inhalte abspielen möchten, könnten Sie VLC verwenden. VLC unterstützt MPEG2-Codec. Probieren Sie die VLC 3.0 nächtlichen Build
http://nightlies.videolan.org/build/win32/
VLC 3.0 sollte bald RTM sein.

Lassen Sie mich wissen, wenn ich Ihre Frage beantwortet

+0

Vielen Dank für Ihre Antwort. Ich konnte meine MPEG-2-Datei nicht öffnen, daher suche ich nach einer anderen Lösung. – Vlad