回答
雖然我不知道任何編碼您需要的任何服務,但您可以相當簡單。爲了全面支持所有html5瀏覽器的網絡,您需要以(至少)2種不同格式進行編碼。
h264由IE9,Safari,Mobile Safari(iPhone)和Android支持。 (我認爲Chrome可能支持這一點,但未來可能不支持政治)
Theora支持Opera,Mozilla(Firefox)和Chrome。
您可以使用ffmpeg編碼爲這兩種格式,所以完全可以自行創建批量轉換器。
這裏有幾個命令讓你開始:
ffmpeg -i input -pass 1 -vcodec libx264 -preset fast -b 512k -threads 0 -f mp4 -an -y /dev/null && ffmpeg -i [INPUT FILE] -pass 2 -acodec libfaac -ab 128k -ac 2 -vcodec libx264 -preset fast -b 512k -threads 0 output.mp4
這將做2遍編碼的MP4/AAC H264。使用-b選項播放更高和更低的比特率(和文件大小)。 -ab選項是你的音頻,128k應該很多,但如果你發現它聽起來不好,你可以嘗試使用256k。
Theora設置起來有點棘手,但是有一個很好的工具叫做ffmpeg2theora,它可以使轉換過程變得更簡單。它可以在這裏找到:http://v2v.cc/~j/ffmpeg2theora/
用法比ffmpeg更簡單一些,如:ffmpeg2theora -v 7 -a 3 [INPUT FILE]
,其中-v是視頻質量(10),-a是音頻質量(10)。
在這兩個示例中,用您的輸入替換[INPUT FILE]
,例如myvideo.avi
。
我推薦使用這兩種工具來獲得它們的感覺,它們都是強大的,一旦你掌握了它的使用非常簡單。
一旦你想爲它創建一個批處理文件,最簡單的方法之一就是編寫一個快速的shell腳本。下面是一個例子:
#!/bin/bash
# super simple batch video script
ffmpeg -i input -pass 1 -vcodec libx264 -preset fast -b 512k -threads 0 -f mp4 -an -y /dev/null && ffmpeg -i $1 -pass 2 -acodec libfaac -ab 128k -ac 2 -vcodec libx264 -preset fast -b 512k -threads 0 output.mp4 && ffmpeg2theora -v 7 -a 3 $1
將它保存爲encode.sh
。
然後,使其可執行:chmod 755 encode.sh
,並用路徑到視頻參數運行它:sh encode.sh "/path/to/video.avi"
在腳本中的唯一的東西,可能是不熟悉的有:
#!/bin/bash
- 這告訴sh在bash shell中運行這個腳本。
$1
- 這將是傳遞給bash shell的第一個參數。在上述情況下,視頻文件路徑。
&&
- 這告訴bash等到最後一個命令完成,然後繼續。你可以用這種方式把許多命令鏈接起來。
希望有所幫助。
FFMpeg是Miro所基於的命令行實用程序,因此您可能需要從此處開始。
感謝kinakuta,你知道是否有任何高流量服務使用此用戶生成的內容? – JewelThief
FFMpeg非常受歡迎,幾乎可以用於每個用戶生成的內容網站。據稱甚至YouTube使用它(雖然YouTube自己未證實 - 這裏的文章:http://multimedia.cx/eggs/googles-youtube-uses-ffmpeg/)。唯一受歡迎的其他開源編碼器是MEncoder。 – Jesse
http://www.bitcodin.com可以生成MPEG-DASH和HLS內容,這些內容可以通過不同的瀏覽器在HTML5中本地播放。有關內容生成的綜合教程:http://www.bitcodin.com/blog/2015/02/create-mpeg-dash-hls-content-for-amazon-s3-and-cloudfront/
可以使用基於HTML5的JavaScript播放器(例如http://www.dash-player.com)來播放HTML5。還有一個教程如何使用x264 + MP4Box生成MPEG-DASH內容:http://www.dash-player.com/blog/2014/11/mpeg-dash-content-generation-using-mp4box-and-x264/
- 1. Android的HTML5視頻編碼
- 2. 用於編輯視頻的管道API
- 3. 的Youtube API HTML5視頻
- 4. 用於html5音頻和視頻的volumelider
- 5. 用於Silverlight視頻會議的視頻/音頻編解碼器
- 6. 支持HTML5視頻編解碼器
- 7. 爲html5播放編碼視頻
- 8. 低cpu html5視頻編碼器配置
- 9. 用於Windows的視頻編碼庫
- 10. 適用於Android的編碼視頻
- 11. 用於HTML5視頻的Android webkit代理
- 12. 適用於iPad的HTML5視頻標籤
- 13. 使用api訪問html5視頻元素
- 14. html5音頻編解碼器
- 15. 在HTML5視頻API播放器中使用HTML5音頻API功能
- 16. 適用於iOS和Android的HTTP視頻流編解碼器(HTML5嵌入)
- 17. 如何編碼/解碼MVC(多視點視頻編碼)視頻?
- 18. 視頻播放:HTML5 VS的Youtube API
- 19. HTML5視頻標籤不適用於iPad?
- 20. z-index不適用於HTML5視頻
- 21. 適用於Android平臺的音頻/視頻編解碼器
- 22. 適用於Android的HTML5應用的視頻和音頻格式
- 23. 將javascript用於視頻源到HTML5視頻播放器
- 24. html5視頻代碼不起作用,不顯示視頻
- 25. 應該使用什麼HTML5視頻編解碼器?
- 26. 獲取HTML5視頻中的幀編號
- 27. Java編碼視頻
- 28. Android視頻編碼
- 29. 切換基於body_class的HTML5視頻源
- 30. Ooyala HTML5/Javascript API - 全屏播放視頻
這是什麼libfaac?我收到未知的編碼器錯誤。另外,我猜測第1遍的輸出應該在第2遍輸出。我們在這裏怎麼做。 – JewelThief