Windows和Windows Phone應用終於可以使用FFmpeg了

來源:互聯網
上載者:User

標籤:

(此文章同時發表在本人公眾號“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。

大致用法是:

  1. 建立一個FFmpegInterop對象,插接到XAML的MediaElement對象中或者WinJS的HTML5 Video組件中
  2. 使用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了

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.