首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UWP中的视频解码

UWP中的视频解码
EN

Stack Overflow用户
提问于 2016-04-28 18:03:20
回答 1查看 2K关注 0票数 1

我的应用程序可以播放.m3u8文件。然而,当视频编码与MPEG 1/2 (mpgv),它只是显示空白的屏幕。当打开像H.264这样的视频时,一切都很好。怎么了?

下面是代码:

代码语言:javascript
复制
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,但是它们没有用于windows 10的Dash plugin,所以按照示例,我无法实现结果。或者也许是FFmpeg?

EN

回答 1

Stack Overflow用户

发布于 2016-04-28 20:59:52

Windows 10不支持本机MPEG2视频编解码器。

尽管如此,Windows 10确实在本地支持:

  • HLS
  • MPEG破折号(实况简介)

如果您使用用于Windows 10的平滑流客户端SDK,它也支持平滑流。

您使用了与Windows8.1而不是Windows 10相关的我的博客链接。您将在我的github上找到一个通用视频播放器的示例,支持DASH、HLS和平滑流+ PlayReady DRM:https://github.com/flecoqui/Windows10/tree/master/Samples/UniversalMediaPlayer

此示例应用程序与运行Windows 10的PC、Tablet、Phone和XBOX One兼容。

如果您想播放MPEG2内容,也许可以使用VLC。VLC支持MPEG2编解码器。尝试VLC 3.0夜间构建

http://nightlies.videolan.org/build/win32/

VLC 3.0将很快成为RTM。

如果我回答了你的问题,请告诉我

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36922272

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档