国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
讓Chrome的HTML5 video/audio tag支持更多種音視頻格式
隨著HTML5的發(fā)展,今后會(huì)有越來越多的應(yīng)用程序基于HTML5開發(fā),多媒體應(yīng)用程序也不例外,HTML5新增加的video/audio tag提供了在網(wǎng)頁中直接播放音視頻的能力而無需借助任何插件,因此可以用HTML5開發(fā)一個(gè)媒體播放器,網(wǎng)上也已經(jīng)出現(xiàn)了不少HTML5播放器例如jPlayer。但目前各家瀏覽器支持的HTML5音視頻格式種類很有限,比如IE9只支持H.264,F(xiàn)irefox只支持VP8和Theora。Google Chrome算是支持格式最全的,支持的視頻格式包括H.264、VP8、Theora,音頻包括Vorbis、MP3、AAC、WAV。這些格式對于播放網(wǎng)絡(luò)在線音視頻(不算flash)基本上足夠了,但如果我們想播放本地音視頻就會(huì)遇到很多不支持的格式,比如在中國很流行的rmvb視頻,高清影片最常見的mkv、avi格式,這些格式目前所有瀏覽器都不支持,僅僅從這一點(diǎn)來看,目前基于HTML5的播放器還不可能代替象QQ影音、射手播放器這樣的傳統(tǒng)播放器。

有沒有可能自己給瀏覽器增加支持更多的音視頻格式?分析Google開源瀏覽器Chromium后得知它的音視頻解碼是由FFmpeg提供的(代碼在third_party\ffmpeg\),Chrome也是這樣,所以完全可以給Chrome增加支持更多種類的音視頻格式。


Chrome中的媒體播放架構(gòu)如下圖所示:






其中Pipeline是Google給Chrome開發(fā)的媒體框架引擎,HTML5 video/audio tag就是由這個(gè)引擎實(shí)現(xiàn)媒體播放的,F(xiàn)Fmpeg在其中提供demuxer和decoder,因此要增加支持音視頻格式主要修改FFmpeg就可以了。


從Chromium的源碼third_party\ffmpeg\chromium\config\Chrome\linux\ia32\config.h可以得知Chrome采用的FFmpeg的配置選項(xiàng),在原有的配置選項(xiàng)后面添加如下選項(xiàng):


  1. --enable-decoder='rv10,rv20,rv30,rv40,cook,h263,h263i,mpeg4,msmpeg4v1,msmpeg4v2,msmpeg4v3,amrnb,amrwb,ac3,flv' --enable-demuxer='rm,mpegvideo,avi,avisynth,h263,aac,amr,ac3,flv,mpegts,mpegtsraw' --enable-parser='mpegvideo,rv30,rv40,h263,mpeg4video,ac3'
復(fù)制代碼


用新的配置選項(xiàng)重新配置和編譯FFmpeg,用生成的3個(gè)動(dòng)態(tài)鏈接庫avcodec-54.dll、avformat-54.dll、avutil-51.dll替換掉Chrome里面原來的,要注意用來編譯FFmpeg的Chromium源碼的版本要跟Chrome差不多,相差太大的話替換庫后可能會(huì)造成Chrome無法正常運(yùn)行。在Windows上編譯FFmpeg的方法參見本人的另一篇文檔《在Windows上編譯Chromium中的FFmpeg》。


這樣修改FFmpeg后在Chrome中用HTML5 video/audio tag就可以播放更多格式的音視頻了,大部分常見的mkv、avi、flv、mov、amr都可以播放了。但是rmvb仍然無法播放,用Visual Studio 2010跟蹤后找到了原因,原來常見的rmvb電影視頻編碼是RV40,音頻編碼是COOK,這兩種codec類型在Chrome中都未被定義,在解析rmvb的時(shí)候會(huì)認(rèn)為是未知的codec類型(kUnknownVideoCodec和kUnknownAudioCodec),為此需要修改media\base\video_decoder_config.h和media\base\audio_decoder_config.h分別在里面的枚舉類型VideoCodec和AudioCodec中增添這兩種格式,然后還要修改media\ffmpeg\ffmpeg_common.cc,具體修改方法就不贅述了,一看代碼就知道。這樣修改以后Chrome的媒體引擎就可以識(shí)別RV40和COOK這兩種格式了,常見的rmvb電影也可以播放了。


可見要讓Chrome能播放更多格式的音視頻其實(shí)不難,當(dāng)然目前只是第一步,還有不少問題,比如播放rmvb電影時(shí)一拖動(dòng)進(jìn)度條屏幕顯示就亂了,要想把兼容性和穩(wěn)定性做好就要下更多功夫了。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
視音頻封裝格式
視頻編解碼技術(shù)VP8
三,F(xiàn)Fmpeg 命令學(xué)習(xí)
rmvb格式怎么轉(zhuǎn)換mkv?快捷視頻轉(zhuǎn)換
ffmpeg 安裝,轉(zhuǎn)視頻格式為m3u8,壓縮視頻
使用ffmpeg可以生成視頻截圖
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服