第 9 章 音訊和視訊

水之原發表於2016-04-26

學習要點:

1.音訊和視訊概述 

2.video 視訊元素 

3.audio 音訊元素

 

主講教師:李炎恢

 

本章主要探討 HTML5 中音訊和視訊元素,通過這兩個原生的媒體元素向 HTML 頁面中嵌入音訊和視訊。

 

一.音訊和視訊概述

首先,我們要理解兩個概念:容器(container)和編解碼器(codec)。

 

1.視訊容器

音訊檔案或視訊檔案,都只是一個容器檔案。視訊檔案包含了音訊軌道、視訊軌道和其他一些後設資料。視訊播放時,音訊軌道和視訊軌道是繫結在一起的。後設資料包含了視訊的封面、標題、子標題、字幕等相關資訊。主流視訊容器支援的格式為:.avi、.flv、.mp4、.mkv、.ogg、.webm。

 

2.編解碼器

音訊和視訊編碼/解碼是一組演算法,用來對一段特定音訊或視訊進行解碼和編碼,以便音訊和視訊能夠播放。原始的媒體檔案體積非常巨大,如果不對其進行編碼,那麼資料量是非常驚人的,在網際網路上傳播則要耗費無法忍受的時間;如果不對其進行解碼,就無法將編碼後的資料重組為原始的媒體資料。主流的音訊編解碼器:AAC、MPEG-3、Ogg Voribs,視訊編解碼器:H.264、VP8、Ogg Theora。

 

3.瀏覽器支援情況

起初,HTML5 規範本來打算指定編解碼器,但實施起來極為困難。部分廠商已有自己的標準,不願實現標準;而有一些編解碼器受專利保護,需要支付昂貴費用。最終放棄了統一規範的要求,導致各個瀏覽器實現自己的標準。

容器格式

視訊編解碼

音訊編解碼

IE9+

Firefox5+

Chrome13+

WebM

VP8

Vorbis

×

OGG

Theora

Vorbis

×

MPEG-4

H.264

AAC

×

疑問?

除了上面三款瀏覽器,還有 Safari5+支援 MPEG-4,Opera11 支援 WebM 和 OGG,通過這組資料,只要備好 MP4 和 OGG 格式的即可,但對於新的高清標準 WebM,當然是非常必要的。因為 WebM 不但清晰度高,而且免費,不受限制許可的使用原始碼和專利權。

目前 Chrome 瀏覽器,為了推廣 WebM 格式的視訊。聲稱未來將放棄 H.264 編碼的視訊,所以有可能在以後的版本中無法播放 MP4 的視訊。當然,目前演示的版本還是支援的。

 

二.video 視訊元素

以往的視訊播放,需要藉助 Flash 外掛才可以實現。但 Flash 外掛的不穩定性經常讓瀏覽器導致崩潰,因此很多瀏覽器或系統廠商開始拋棄它。而取代它的正是 HTML5 的 video 元素。

 

<video>元素的屬性

屬性名稱

說明

src

視訊資源的 URL

width

視訊寬度

height

視訊高度

autoplay

設定後,表示立刻開始播放視訊

preload

設定後,表示預先載入視訊

controls

設定後,表示顯示播放控制元件

loop

設定後,表示反覆播放視訊

muted

設定後,表示視訊處於靜音狀態

poster

指定視訊資料載入時顯示的圖片

 

1.嵌入一個 WebM 視訊

<video src="test.webm" width="800" height="600"></video>

解釋:<video>插入一個視訊,主流的視訊為.webm,.mp4,.ogg 等。src 表示資源

URL;width 表示寬度;height 表示高度。

 

2.附加一些屬性

<video src="test.webm" width="800" height="600" autoplay controls loop muted></video>

解釋:autoplay 表示自動開始播放;controls 表示顯示播放控制元件;loop 表示迴圈播放;muted 表示靜音。

 

3.預載入設定 

<video src="http://li.cc/test.webm" width="800" height="600" controls
preload="none"></video>

解釋:preload 屬性有三個值:none 表示播放器什麼都不載入;metadata 表示播放之前只能載入後設資料(寬高、第一幀畫面等資訊);auto 表示請求瀏覽器儘快下載整個視訊。

 

4.使用預覽圖 

<video src="http://li.cc/test.webm" width="800" height="600" controls poster="img.png"></video>

解釋:poster 屬性表示在視訊的第一幀,做一張預覽圖。

 

5.相容多個瀏覽器 

<video width="800" height="600" controls poster="img.png">
    <source src="test.webm">
    <source src="test.mp4">
    <source src="test.ogg">
    <object>這裡引入 flash 播放器實現 IE9 以下,但沒必要了</object>
</video>

解釋:通過<source>元素引入多種格式的視訊,讓更多的瀏覽器保持相容。

 

二.audio 音訊元素

和 video 元素一樣,audio 元素用於嵌入音訊內容,而音訊元素的屬性和視訊元素類似。音訊的支援度和視訊類似,使用<source>元素引入多種格式相容即可。主流的音訊格式有:.mp3,.m4a,.ogg,.wav。

屬性名稱

說明

src

視訊資源的 URL

autoplay

設定後,表示立刻開始播放視訊

preload

設定後,表示預先載入視訊

controls

設定後,表示顯示播放控制元件

 

1.嵌入一個音訊

<audio src="test.mp3" controls autoplay></audio>

解釋:和嵌入視訊一個道理。

 

2.相容多個瀏覽器

<audio controls>
    <source src="test.mp3">
    <source src="test.m4a">
    <source src="test.wav">
</audio>

解釋:略。

PS:更多設計到 API 的 JavaScript 控制,將在以後的基於 JavaScript 基礎後講解。

相關文章