1. 程式人生 > >HTML5_音視訊標籤 <audio> 和 <video>

HTML5_音視訊標籤 <audio> 和 <video>

HTML5_音視訊標籤 <audio> 和 <video>

  • 主流視訊格式檔案格式 (容器格式)

MPEG-4    通常以.mp4為副檔名
Flash視訊    通常以.flv為副檔名
Ogg    通常以.ogv為副檔名
WebM    通常以.webm為副檔名


頻視訊交錯    通常以.avi為副檔名


  • 主流音訊格式檔案格式 (容器格式)

MPEG-3 .mp3
Acc音訊 .acc
Ogg音訊 .ogg

  • .avi 和 .mp4

僅僅是容器的格式
只是決定怎麼將視訊儲存起來,
而不關心儲存的內容
包含了音訊軌道,視訊軌道和其他一些元資料

  • 元資料

包含了視訊的封面,標題,子標題,字幕等相關資訊

編解碼器
一組演算法,用來對一段特定的音訊/視訊進行編碼和解碼
原始媒體檔案體積巨大,
如果不進行編碼,那麼資料量非常驚人
如果不進行解碼,就無法將編碼後的資料重組為原始的媒體資料

  • 視訊編解碼器

H.264
VP8
Ogg Theora

  • 音訊編解碼器

AAC
MPEG-3
Ogg Vorbis

  • 瀏覽器對於容器和編解碼器支援的情況

Browser                        MP4(H.264 + AAC)         WebM(VP8 + Vorbis )        Ogg(Theora + Vorbis)


Internet Explorer 9                    YES                      NO                       NO
Firefox 4.0                                NO                       YES                      YES

Google Chrome                       YES                      YES                      YES
Apple Safari 5                          YES                      NO                       NO
Opera 10.6                               NO                       YES                      YES

http://www.html5videoplayer.net/html5video/html5-video-browser-compatibility/
目前還沒有一種編解碼和容器的組合能應用於所有的瀏覽器中!!!

  • H.264: 別名 MPEG-4的第十部分,由MPEG研發並於2003年標準化

它的目的支援一切裝置,無論是低頻寬低cpu,還是高頻寬高cpu 或者是兩者之間。
要做到這一點,H.264標準被分成不同的幾種配置。高配置使用了更多特性,
這會導致在解碼過程中更加消耗CPU,但視訊檔案本身會更小,視訊效果也更好

蘋果iphone手機 基本配置(BaseLine)
正常的電視機支援 基本配置(BaseLine) 和 主配置(Main)兩種
正常的電腦支援 基本配置(BaseLine) 和 主配置(Main) 高階配置(high)三種

  • 處理視訊的一個流程: (tools_resource)

把壓縮檔案 ffmpeg.zip 放到 software 資料夾中,解壓到當前資料夾,進入 bin,逐次雙擊執行
將 bin 加入系統環境變數
在命令列中進入 .mp4 檔案所在的資料夾

  • 格式轉化

用 FFmpeg 製作MP4 視訊
ffmpeg -i test.mp4 -c:v libx264 -s 1280x720 -b:v 1500k -profile:v high -level 3.1 -c:a aac -ac 2 -b:a 160k -movflags faststart OUTPUT.mp4

用 FFmpeg 製作 WebM 視訊
ffmpeg -i test.mp4 -c:v libvpx -s 1280x720 -b:v 1500k -c:a libvorbis -ac 2 -b:a 160k OUTPUT.webm

FFmpeg 製作 Ogg 視訊
ffmpeg -i test.mp4 -c:v libtheora -s 1280x720 -b:v 1500k -c:a libvorbis -ac 2 -b:a 160k OUTPUT.ogv

FFmpeg 製作Mp3音訊
ffmpeg -i test.mp3 -c:a libmp3lame -ac 2 -b:a 160k OUTPUT.mp3

FFmpeg 製作Ogg音訊
ffmpeg -i test.mp3 -c:a libvorbis -ac 2 -b:a 160k OUTPUT.ogg
ffmpeg -i IDon'tWannaLiveForever.mp3 -c:a libvorbis -ac 2 -b:a 160k IDon'tWannaLiveForever.ogg


FFmpeg 製作ACC音訊
ffmpeg -i test.mp3 -c:a aac -ac 2 -b:a 160k OUTPUT.aac

  • 1.製作一個Ogg容器中使用Theora視訊和Vorbis音訊的版本

2.製作另外一個版本,使用WebM視訊容器(VP8 + Vorbis)
3.再製作一個版本,使用MP4視訊容器,並使用H.264基本配置的視訊和ACC低配的音訊
4.連結上面3個檔案到同一個video元素,並向後相容基於Flash的視訊播放器