2008-11-20 33 views
2

我期待在我的應用程序中添加對讀寫視頻文件的支持。如果你不得不選擇一種文件格式和編解碼器組合來滿足大多數用戶的需求,你可以選擇:如果您必須添加對一種視頻文件格式和編解碼器的支持,您會選擇哪一種?

1)MPEG-4/H.264(.mp4) 2)AVI/DiVX(。 AVI) 3)的Ogg/Theora格式(.OGG) 4)Windows媒體視頻(.wmv)

我傾向於MPEG-4/H.264因爲它是在Linux,Mac OS X的支持, Flash播放器,iPods,Playstation 3,XBox360和即將在Microsoft Silverlight和Windows Media Player 12中支持。

我是否缺少任何東西?有什麼更好的,我可以選擇?

回答

3

這取決於你的應用程序在做什麼。如果您想處理從視頻採集卡錄製的視頻,則可能需要使用嵌入式mpeg2讀取.mpg文件。大量視頻使用.avi或.wmv容器。微軟正在推動.wmv,但.avi在免費工具中有更好的支持。 Windows上沒有很多工具支持.mp4容器(Mac可能不同)。 H.264,mpeg2和mpeg4是我最喜歡的編解碼器。 H.264是優秀的質量/比特率,但是它使精確和快速的搜索變得更加困難,並且非常耗費CPU資源。就質量/比特率而言,mpeg4的性能幾乎與h.264相當,但它的CPU密集程度要低得多。 mpeg2需要更多的位來實現相同的質量,但它幾乎在任何地方都受到支持,並且在這些文件中進行解碼和查找非常簡單。

如果你不介意使用LGPL代碼,我建議你看看ffmpeg的libavcodec和libavformat。它會讓你在所有平臺上做你提到的所有事情(雖然我不確定Oora & Theora--我沒有用過它們)。

1

我認爲你的第一個選擇是我的選擇。我認爲大多數應用程序可以讀取這種格式,並且它不太靈活。

如果我是正確的,AVI/DIVX文件實際上可以包含不同類型的媒體,wmv也是如此。這使得更難使用這些格式,因爲您需要支持所有的編碼。

0

首先,您的視頻中是否還會有聲音?如果是的話,我會用mp3。

現在,考慮視頻編解碼器和視頻容器。我認爲你不應該考慮方案3和4的各種原因。 Theora真的不受歡迎(我還沒有碰到Theora視頻),WMV是微軟的技術,所以你的選擇有限。

現在,關於前兩個:我將在Avi容器中使用DivX(Mpeg4 part 2)視頻。這是非常受歡迎的,因爲大多數電腦和大量的DVD都可以播放這些視頻。另外,還有一個偉大的開源DIVX編解碼器XVID。最後,DIVX在編碼和解碼方面所需的資源比H.264要少得多。最後一個很重要,因爲根據編碼參數,甚至可能不支持實時H.264編碼。

由於通過使用開源工具將代碼轉換爲任何格式非常容易,因此在多個平臺中缺少對AVI/DIVX的支持並不是問題。

相關問題