Htnl5直播_資料

一、使用 WebSockets 進行 HTML5 視頻直播 - 9up - SegmentFault.htmlhtml

http://www.javashuo.com/article/p-yarwilcz-ex.htmlhtml5

 

最近在作的一個小項目須要用到相關技術,找到這篇文章貌似不錯,因而就翻譯轉載上來了。 Recently I'm interesting in these technologies and I'm working on a project related to it. I've found this useful article so I translated and posted it here.node

原文地址 / Original post:
HTML5 Live Video Streaming via WebSockets - PhobosLabjquery

筆者以前作一個實時監控應用的時候,曾搜索過一些將 iPhone 的攝像頭拍攝的畫面實時傳輸到瀏覽器的方案,一個都沒有。linux

就 HTML5 來講,視頻(實時)直播是一個很悲催的活,HTML5 視頻目前尚未一個正式的流式傳輸支持,Safari 支持很蹩腳的HTTP Live Streaming 而且也即將有 Media Source Extension 規範和 MPEG-DASH。但全部這些方案都是將視頻分紅小片,由瀏覽器單獨下載,所以會產生最小五秒鐘的延遲。nginx

下面是一個徹底不一樣的方案,能夠支持全部現代瀏覽器:Firefox、Chrome、Safari、Mobile Safari、Android 版 Chrome 甚至是 IE10。git

原文的這個位置提供了一個直播例子。github

這套方案向後兼容,沒有用到什麼新奇技術,目前暫時不支持音頻。但它出乎意料地好用。web

來自攝像頭的視頻被 ffmpeg 編碼,而後經過 HTTP 傳遞給一個 Node.js 寫的小腳本;腳本會將這條 MPEG 視頻流經過 WebSockets 分發給全部連接的瀏覽器;瀏覽器使用 JavaScript 解碼 MPEG 視頻流並將解碼後的畫面渲染到 Canvas 元素上。sql

你甚至能夠用樹莓派來傳輸視頻。可能會有點慢,可是筆者測試過以 30fps 的幀率實時編碼 320x240 視頻不成問題。對筆者來講這是最好的樹莓派視頻方案。

下面是構建步驟。首先你須要取得最新版本的 ffmpeg,最新的安裝包能夠從 deb-multimedia 得到。若是你使用 Linux,你的攝像頭應該在位於 /dev/video0 或 /dev/video1;在 OS X 或 Windows 上你能夠用 VLC

確保用來分發視頻流的服務器安裝了 Node.js。下載 phoboslab/jsmpeg 項目的 stream-server.js 腳本。安裝 WebSocket 包 ws 並啓動服務器:

npm install ws node stream-server.js 你的密碼 

這裏的密碼是用來確保不會有好奇寶寶來劫持你的視頻流用的。若是服務器運行正常,你應該會看到這樣的輸出:

Listening for MPEG Stream on http://127.0.0.1:8082/<secret>/<width>/<height> Awaiting WebSocket connections on ws://127.0.0.1:8084/ 

服務器啓動後,你就能夠啓動 ffmpeg 並將它指向到正在運行的這個域名和端口了:

ffmpeg -s 640x480 -f video4linux2 -i /dev/video0 -f mpeg1video -b 800k -r 30 http://example.com:8082/你的密碼/640/480/ 

這條命令會開始從攝像頭捕捉 640x480 的視頻,並編碼成 30fps 碼率 800kbps 的 MPEG 視頻。編碼後的視頻會經過 HTTP 被髮送到所指定的服務器和端口。確保密碼正確,URL 中的長和寬也須要正確指定,不然服務器沒法正確判斷當前的分辨率。

在樹莓派上你可能須要將分辨率降至 320x240 來確保編碼速度仍能維持 30fps。

要觀看直播,須要從前文提到的 jsmpeg 項目中下載 stream-example.html 和 jsmpg.js 文件,更改 stream-example.html 中的 WebSocket URL 爲你的服務器地址,並使用你喜歡的瀏覽器打開。

若是一切正常,你就能看到少於 100ms 延遲的流暢的攝像頭畫面。很好很強大對不?

更便捷的方案請圍觀原文的 Instant Webcam

只是備忘一下,近期會再發一篇博文來總結一下各個方案的實際使用效果。

重複一次原文地址 / Original post:
HTML5 Live Video Streaming via WebSockets - PhobosLab

 

二、html5視頻直播方案總結_jquery教程_jqueryschool-國內最大的jquery原創分享社區.html

 

 

發佈時間:2015-12-19 16:24:18

 

最近在研究html5視頻直播,一句話,真特麼的蛋疼,下面是我最近研究粗略的一點總結

 

HTML5視頻直播

一、HLS直播流方案
Android不支持
IOS支持
微信瀏覽器環境可控制視頻全屏播放
其它瀏覽器環境直播全屏,採用下完注再看視頻直播方案
PC不支持
缺點:有延遲,具體延遲多少取決於服務器的配置和帶寬,最終結果須要一個實時直播流來測試才知道

二、視頻流解析圖片方案
mpg視頻流方案
Android和IOS都支持
6M視頻解析,結果加載很慢,解析也很不流暢
800K視頻流解析,結果加載變塊,解析也跟着變流暢
缺點:最終效果仍是取決於服務器推送過來的視頻流的大小,視頻流越小,加載越快,解析也更流暢

PC支持
6M視頻源本地解析很流暢
6M視頻源外網解析很流暢,加載時有點慢
缺點:沒有音頻功能,須要加載完視頻流纔開始解析,推送過來的視頻流越大,解析越慢,終端顯示越卡
優勢:兼容全部設備

mp4視頻流方案
Android和IOS都支持
6M視頻解析,結果加載很慢,解析也很不流暢
183K視頻流解析,結果加載變塊,解析也不太流暢
缺點:最終效果仍是取決於服務器推送過來的視頻流的大小,視頻流越小,加載越快,解析也更流暢,相對mpg視頻流方案來說效果沒那麼好

PC支持
6M視頻源本地解析很流暢
6M視頻源外網解析很流暢,加載時有點慢
缺點:沒有音頻功能,須要加載完視頻流纔開始解析,推送過來的視頻流越大,解析越慢,終端顯示越卡
優勢:兼容全部設備
最終效果仍是須要一個實時視頻源採集推送過來測試

 

三、

  3.一、HTML5 視頻直播(一) _ JerryQu 的小站.html

    https://imququ.com/post/html5-live-player-1.html

  3.二、HTML5 視頻直播(二) _ JerryQu 的小站.html

    https://imququ.com/post/html5-live-player-2.html

  3.三、HTML5 視頻直播(三) _ JerryQu 的小站.html

    https://imququ.com/post/html5-live-player-3.html

四、

五、

相關文章
相關標籤/搜索