2016-04-28 2 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-1 или MPEG-2, не могут.

Я думаю, мне нужно, чтобы добавить больше обработчиков extensions или, может быть, я должен вам Microsoft Player Framework, но они не имеют Dash plugin для окон 10, так что следующий this примера, я не могу выполнить результат. Или, может быть, FFmpeg?

ответ

2

Windows 10 не поддерживает видеокодек MPEG2.

Тем не менее, Windows 10 поддерживает нативно:

  • HLS

  • MPEG DASH (Live Profile)

Он также поддерживает Smooth Streaming, если вы используете Сглаживание потоковый клиент SDK для Windows 10.

Вы использовали ссылку на мой b журнал, который связан с ОС Windows 8.1 не для Windows 10. Вы найдете образец универсального видео проигрывателя на моем GitHub, поддерживая DASH, HLS и Smooth Streaming + PlayReady DRM: https://github.com/flecoqui/Windows10/tree/master/Samples/UniversalMediaPlayer

В этом примере приложение совместимо с ПК , Планшет, телефон и XBOX. Один работает под управлением Windows 10.

Если вы хотите воспроизвести контент в формате MPEG2, возможно, вы можете использовать VLC. VLC поддерживает кодек MPEG2. Попробуйте VLC 3.0 ночной сбор
http://nightlies.videolan.org/build/win32/
VLC 3.0 должен быть RTM в ближайшее время.

Дайте мне знать, если я ответил на ваш вопрос

+0

Спасибо за ваш ответ. Мне не удалось открыть файл MPEG-2, поэтому я буду искать другое решение. – Vlad

Смежные вопросы