利用ffmpeg+mencoder視頻轉換的總結(C#)

來源:互聯網
上載者:User

Youtube的成功,使得國內的視頻網站如雨後春筍般的冒出來,前不久朋友叫我幫他寫一個將各種視頻格式轉換成flv的程式,這裡就將編寫程式遇到困難和獲得的經驗拿出來和大家分享一下。

1、使用引擎:ffmpeg + Mencoder
2、ffmpeg最新版本的:http://ffdshow.faireal.net/mirror/ffmpeg/
Mencoder新版本的:http://www5.mplayerhq.hu/MPlayer/releases/win32/
3、轉換速度比較:總體上ffmpeg轉換的速度快於Mencoder
4、轉換格式要求:rm、rmvb、rt格式的檔案只能用Mencoder轉換,出於速度考慮我基本上都用ffmpeg轉換,所以Mencoder能轉換的格式我沒有詳細測試(哪個朋友知道,麻煩你告訴我下,我補充上去)。
5、純音頻格式只能用Mencoder進行轉換。如何判斷是否是純音頻格式可以通過使用命令 FFmpeg -i "檔案的完整路徑" 獲得輸出後就可以分析出來。
6、.mov格式的用ffmpeg轉換出來的效果比較差,建議用Mencoder進行轉換,wmv8用ffmpeg經常會有花屏產生建議用Mencoder。
7、視頻按比率輸出的問題:必須先擷取源視頻檔案的寬度和高度(也是通過 FFmpeg -i "檔案的完整路徑" 獲得輸出後就可以分析出來)根據這個高度和寬度的比率來設定輸出檔案的尺寸。
8、可能的痛點:因為這ffmpeg 和 Mencoder都是命令列工具(當然你也可以下載原始碼自己修改成com之類的),在C#只能用Process調用,前面我提過要獲得輸出資訊(擷取視頻相關資訊、擷取當前的轉換進度、擷取什麼時候完成轉換),必須設定process.StartInfo.UseShellExecute = false; process.StartInfo.CreateNoWindow = true;然後必須通過非同步編程的方式擷取Process.StandardOutput和Process.StandardError的值,相關說明可以見(ms-help://MS.MSDNQTR.2003FEB.2052/cpref/html/frlrfSystemDiagnosticsProcessClassStandardOutputTopic.htm)(必須安裝了msdn的才能看)。

本文旨在協助大家少走一些彎路,並不提供實際的解決方案及相關的源碼下載,如需要源碼要付費才行(有意向者可以發送郵件cxbsky#hotmail.com)。
有其他任何問題歡迎大家在本文章發布留言。

參考文章:
http://wf.xplore.cn/read.php/90.htm

百度和google搜尋ffmpeg mencoder也有很多相關網頁

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.