Windows和Windows Phone应用终于可以使用FFmpeg了
(此文章同时发表在本人微信公众号“dotNET每日精华文章”,欢迎右边二维码来关注。)
题记:曾经在Windows Phone上想开发一个支持多种格式的媒体播放器是比较困难的一件事情,因为无法利用FFmpege这样的开源库。不过现在好了,微软提供了一个开源的FFmpegInterop解决了此问题。
由于WinRT和Windows Phone平台的限制,在上面的APP只能播放内置多媒体播放器支持的几种格式(比如WMV,MP4等),虽然这些格式还是能满足大部分情况。不过如果你打算开发一款格式支持更全面的播放器(或者你的软件打算播放一些额外的格式,比如mkv、flv和mov等),那么就比较分周折了,因为一些常用的开源多媒体库无法直接使用。就连VLC这样的著名软件都迟迟没有推出WP版本。
微软曾经发布了一系列编译指令来构建和WinRT兼容的FFmpeg。不过这样做会带来性能损耗。为了解决这个问题,微软最近在GitHub上发布了一个名为FFmpegInterop的开源库,解决了这个问题。这个开源库利用FFmpege来处理媒体内容,但回放使用Windows媒体框架。这种方式能够获得更好的性能,因为Windows媒体框架可以利用硬件加速。微软同时也发布了使用C#、C++和JavaScript编写的示例媒体播放器APP。
大致用法是:
- 创建一个FFmpegInterop对象,插接到XAML的MediaElement对象中或者WinJS的HTML5 Video组件中
- 使用FileOpenPicker打开一个本地文件,作为一个流传递给FFmpegInterop
上述使用步骤的C#代码类似如下:
1: // Instantiate FFmpeg object and pass the stream from opened file
2: IRandomAccessStream readStream = await file.OpenAsync(FileAccessMode.Read);
3: FFmpegMSS = FFmpegInteropMSS.CreateFFmpegInteropMSSFromStream(readStream, false, false);
4:
5: // Pass MediaStreamSource to Media Element
6: mediaElement.SetMediaStreamSource(FFmpegMSS.GetMediaStreamSource());
更详细的用法可以通过“阅读原文”来了解。从原文地址中也可以找到该项目的GitHub地址。
(特别提醒,微软在GitHub上的主页还列出了很多开源项目,是个不容错过的宝藏。)
原文地址:http://blogs.windows.com/buildingapps/2015/06/05/using-ffmpeg-in-windows-applications/
Windows和Windows Phone应用终于可以使用FFmpeg了的更多相关文章
- Windows下使用Visual Studio 2010编译ffmpeg全过程
在visual studio 2010中调用ffmpeg http://blog.sina.com.cn/s/blog_4178f4bf01018wqh.html Windows下使用Visual S ...
- Installing the .NET Framework 3.5 on Windows 8, Windows 8.1 and Windows 10
Installing the .NET Framework 3.5 on Windows 8, Windows 8.1 and Windows 10 .NET Framework (current v ...
- 用C#创建Windows服务(Windows Services)
用C#创建Windows服务(Windows Services) 学习: 第一步:创建服务框架 创建一个新的 Windows 服务项目,可以从Visual C# 工程中选取 Windows 服务(W ...
- Memory Limits for Windows and Windows Server Releases
来源:https://msdn.microsoft.com/en-us/library/windows/desktop/aa366778(v=vs.85).aspx Limits on memory ...
- Notice to users of DB Query Analyzer in Windows 7, Windows 8 and Windows 10
UnlikeWinXP, VISTA, Windows2000, Windows Nt and Win98,Windows 7 / Windows 8 / Windows 10 select ...
- How to detect, enable and disable SMBv1, SMBv2, and SMBv3 in Windows and Windows Server
转自:https://support.microsoft.com/en-us/help/2696547/detect-enable-disable-smbv1-smbv2-smbv3-in-windo ...
- [转载]Memory Limits for Windows and Windows Server Releases
Memory Limits for Windows and Windows Server Releases This topic describes the memory limits for sup ...
- C# windows服务:创建Windows服务(Windows Services)的一般步骤
C#创建Windows服务(Windows Services) Windows服务在Visual Studio 以前的版本中叫NT服务,在VS.net启用了新的名称.用Visual C# 创建Wind ...
- [微软]The latest version of Windows is Windows Sandbox
The latest version of Windows is Windows Sandbox by Surur @mspoweruser Dec 19, 2018 at 1:40 GMT As h ...
随机推荐
- Hifiman:一个国产音频厂商的忧伤[转]
一则苹果计划32亿美元收购音频设备厂商Beats的消息,让音频设备——这个极少被人们重视又时刻离不开的产品重新引发了关注. 国产数码品牌通常都被自然的贴上低端.低质的标签.然而难能可贵的是,国产音频设 ...
- 什么情况下可以不写PHP的结束标签“?>”
我们经常看到有些PHP文件中的代码是只有开始标签,而没有结束标签的,那么什么情况下可以不写这个结束标签,而什么情况下必须写?先来看2个例子: 下面的代码正常运行: <?php echo 1234 ...
- POJ 2559
http://poj.org/problem?id=2559 题意:就是找出可以完整连接的最大的矩形面积. 思路:找出单独的一块矩形,往两边延伸,记录两边的比他高的矩形是在哪个位置,然后最右的位置减去 ...
- 关于fill_parent,match_parent和wrap_content (转载)
fill_parent&match_parent: 在Android2.2及以上版本中,fill_parent与match_parent意思相同(其中fill_parent兼容低版本).都是尽 ...
- Java for LeetCode 220 Contains Duplicate III
Given an array of integers, find out whether there are two distinct indices i and j in the array suc ...
- 1.openstack之mitaka搭建基本配置
介绍:本次案列为基本的三节点部署 注:搭建所需要的包可以联系QQ:22102107获取 一:网络: 1.管理网络:192.168.11.0/24 2.数据网络:1.1.1.0/24 注:每个节点两个网 ...
- HDU 3957 Street Fighter(搜索、DLX、重复覆盖+精确覆盖)
很久以前就看到的一个经典题,一直没做,今天拿来练手.街霸 给n<=25个角色,每个角色有 1 or 2 个版本(可以理解为普通版以及爆发版),每个角色版本可以KO掉若干人. 问最少选多少个角色( ...
- Match:Seek the Name, Seek the Fame(POJ 2752)
追名逐利 题目大意:给定一个字符串S,要你找到S的所有前缀后缀数组 还是Kmp的Next数组的简单应用,但是这一题有一个BUG,那就是必须输出字符串的长度(不输出就WA),然而事实上对于abcbab, ...
- 【python】入门学习(五)
字符串: 正索引,从0开始 和 负索引,从-1开始 >>> s = 'apple' >>> s[0] 'a' >>> s[1] 'p' >& ...
- .NET微信公众号开发-1.0初始微信公众号
一.前言 微信公众号是开发者或商家在微信公众平台上申请的应用账号,该帐号与QQ账号互通,通过公众号,商家可在微信平台上实现和特定群体的文字.图片.语音.视频的全方位沟通.互动 .形成了一 种主流的线上 ...