2016-04-28 17 views
1

私は.m3u8ファイルを再生できるアプリケーションを持っています。 ただし、MPEG 1/2 (mpgv)でエンコードされた動画は、空白の画面しか表示されません。 H.264のようなビデオを開くと、すべてがOKです。どうしましたか?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でエンコードされたものは再生できません。

私はあなたMicrosoft Player Framework必要がありますが、彼らは窓10のためのDash pluginを持っていないので、thisたとえば、次の私は結果を達成することはできませんextensionsに多くのハンドラを追加する必要がありますまたは多分私推測します。あるいはFFmpeg?

答えて

2

Windows 10はネイティブにMPEG2ビデオコーデックをサポートしていません。

それにもかかわらず、Windowsの10はネイティブにサポートしています:

  • HLS

  • のMPEG DASH(ライブプロファイル)

あなたがスムーズストリーミングクライアントを使用する場合にもスムーズストリーミングをサポートしていますSDK for Windows 10.

my bへのリンクを使用しましたあなたはDASH、HLSとスムーズストリーミング+にPlayReady DRMをサポートし、私のgithubの上のユニバーサル・ビデオプレーヤーのサンプルを見つけることができますどのWindowsの10のWindows 8.1にない関係してログインします。 https://github.com/flecoqui/Windows10/tree/master/Samples/UniversalMediaPlayer

このサンプルアプリケーションは、PCに準拠しています、Tablet、Phone、XBOX One Windows 10を実行します。

もしMPEG2コンテンツを再生したいのであれば、VLCを使うこともできます。 VLCはMPEG2コーデックをサポートしています。 VLC 3.0を毎晩試す
http://nightlies.videolan.org/build/win32/
VLC 3.0はすぐにRTMにする必要があります。

私はあなたの質問に答えたら教えてください

+0

ご返信ありがとうございます。私は 'MPEG-2'ファイルを開くことができませんでしたので、別の解決策を探します。 – Vlad