為什么我錄制的MP4視頻在本地可以播放但是使用html5的video多媒體播放標簽不能正常播放只有一個進度條而不顯示圖像?
為了避免大家遇到同樣的問題我在這里就給大家普及一下html5關(guān)于<video>標簽的知識吧。
在使用html4協(xié)議做網(wǎng)站時我們想要在網(wǎng)頁上播放一個視頻要不使用flash去播放,要么就是嵌入式頁面來實現(xiàn),對于html5來說這兩種方法非常的不方便因為一個牛逼哄哄的<video>出現(xiàn)了,這個標簽的功能就是讓多媒體文件可以很方便的在網(wǎng)頁中播放。
html中播放一個視頻只需要一個標簽:
<video src="http://sp.ntaotu.com/localhost-wordpress-phpstudy.mp4" controls="controls" width="500" height="300"></video>
代碼雖然少了很多,但是功能卻很健全,這就是html5的亮點之一吧!
關(guān)于<video>標簽所支持的視頻格式和編碼:
MP4 = MPEG 4文件使用 H264 視頻編解碼器和AAC音頻編解碼器
WebM = WebM 文件使用 VP8 視頻編解碼器和 Vorbis 音頻編解碼器
Ogg = Ogg 文件使用 Theora 視頻編解碼器和 Vorbis音頻編解碼器
通過上面的信息我們會發(fā)現(xiàn)只有h264編碼的MP4視頻(MPEG-LA公司)、VP8編碼的webm格式的視頻(Google公司)和Theora編碼的ogg格式的視頻(iTouch開發(fā))可以支持html5的<video>標簽。
如果瀏覽器不支持video標簽怎么辦?
比如IE瀏覽器還有老版本的瀏覽器對html5的支持不太好,當用戶用這些瀏覽器打開我們帶有視頻的網(wǎng)頁怎么辦呢?
我們可以把代碼這樣寫:
<video src="http://sp.ntaotu.com/localhost-wordpress-phpstudy.mp4" controls="controls" width="500" height="300">您的瀏覽器不支持播放該視頻!</video>
這樣在不支持html5的瀏覽器中就會提示“您的瀏覽器不支持播放該視頻!”啦!
關(guān)于video標簽的擴展參數(shù)說明:
video 元素允許多個 source 元素。source 元素可以鏈接不同的視頻文件。瀏覽器將使用第一個可識別的格式,這樣我們只要多準備幾個不同格式的視頻就可以了。
用法:
1, <video width="500" height="250" controls="controls">
2, <source src="movie.ogg" type="video/ogg">
3 <source src="movie.mp4" type="video/mp4">
4,您的瀏覽器不支持此種視頻格式。
5, </video>
1, autoplay :出現(xiàn)該屬性意味著視頻在就緒后將自動播放,用法:autoplay="autoplay"
2, controls :出現(xiàn)該屬性意味著向用戶顯示控件,如播放按鈕等,用法:controls="controls"
3, height:設(shè)置高度 width:設(shè)置寬度
4, loop:自動重播,用法:loop="loop"
5, preload:視頻在頁面加載時進行加載并預備播放,用法:preload="auto" - 當頁面加載后載入整個視頻;preload="meta" - 當頁面加載后只載入元數(shù)據(jù);preload="none" - 當頁面加載后不載入視頻。注意:若使用了autoplay,則忽略preload
6, src:要播放視頻的url
mp4網(wǎng)頁播放有聲音無圖像的解決辦法:
關(guān)于網(wǎng)頁播放mp4格式的視頻,找了一些插件,這里推薦一下video.js
官方網(wǎng)址:http://www.videojs.com/
github :https://github.com/videojs/video.js/
demo:http://www.videojs.com/downloads/video-js-4.12.5.zip
使用方法:
①引入文件:指派flash播放的swf文件
<link rel="stylesheet">
<script src="http://example.com/path/to/video.js"></script>
<script>
videojs.options.flash.swf = "http://example.com/path/to/video-js.swf"
</script>
② 設(shè)置video參數(shù)(設(shè)置mp4視頻地址)
<video id="example_video_1" class="video-js vjs-default-skin"
controls preload="auto" width="640" height="264"
poster="http://video-js.zencoder.com/oceans-clip.png"
data-setup=‘{"example_option":true}‘>
<source src="http://video-js.zencoder.com/oceans-clip.mp4" type=‘video/mp4‘ />
<source src="http://video-js.zencoder.com/oceans-clip.webm" type=‘video/webm‘ />
<source src="http://video-js.zencoder.com/oceans-clip.ogv" type=‘video/ogg‘ />
<p class="vjs-no-js">To view this video please enable JavaScript, and consider upgrading to a web browser that <a target="_blank">supports HTML5 video</a></p>
</video>
使用demo里面的mp4視頻源,播放一切正常,換上自己的mp4源發(fā)現(xiàn)只有聲音并沒有圖像。這讓我很為難。
想來想去這跟插件沒關(guān)系,跟瀏覽器沒有關(guān)系,跟自己視頻源的格式編碼有關(guān)系。
找了很多辦法,嘗試過swf播放,但是mp4轉(zhuǎn)碼成swf格式,失真太嚴重,導致視頻很模糊,質(zhì)量很糟糕。
下載了格式工廠,嘗試著轉(zhuǎn)換了很多格式,都不盡人意。
發(fā)現(xiàn)mp4的視頻編碼有三種:MPEG4(DivX),MPEG4(Xvid),AVC(H264),我使用格式工廠一個一個嘗試。
最終發(fā)現(xiàn)轉(zhuǎn)換成AVC(H264)編碼,完美解決問題。
總結(jié):網(wǎng)頁播放mp4視頻,出現(xiàn)有聲音無圖像問題,先使用格式工廠轉(zhuǎn)換mp4->mp4格式,輸出編碼選擇AVC(H264),然后在網(wǎng)頁中代碼調(diào)用,看是否解決問題。
文章內(nèi)容來源于網(wǎng)絡(luò),侵刪