摘要:但所有這些方案都是將視頻分成小片,由瀏覽器多帶帶下載,因此會產(chǎn)生最小五秒鐘的延遲。對筆者來說這是最好的樹莓派視頻方案。確保用來分發(fā)視頻流的服務器安裝了。在樹莓派上你可能需要將分辨率降至來確保編碼速度仍能維持。
這篇文章是2014年發(fā)的,已經(jīng)過時了!不要再評論了!
最近在做的一個小項目需要用到相關技術,找到這篇文章貌似不錯,于是就翻譯轉載上來了。
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.原文地址 / Original post:
HTML5 Live Video Streaming via WebSockets - PhobosLab
筆者之前做一個實時監(jiān)控應用的時候,曾搜索過一些將 iPhone 的攝像頭拍攝的畫面實時傳輸?shù)綖g覽器的方案,一個都沒有。
就 HTML5 來說,視頻(實時)直播是一個很悲催的活,HTML5 視頻目前還沒有一個正式的流式傳輸支持,Safari 支持很蹩腳的 HTTP Live Streaming 并且也即將有 Media Source Extension 規(guī)范和 MPEG-DASH。但所有這些方案都是將視頻分成小片,由瀏覽器多帶帶下載,因此會產(chǎn)生最小五秒鐘的延遲。
下面是一個完全不同的方案,可以支持所有現(xiàn)代瀏覽器:Firefox、Chrome、Safari、Mobile Safari、Android 版 Chrome 甚至是 IE10。
原文的這個位置提供了一個_偽_直播例子。
這套方案向后兼容,沒有用到什么新奇技術,目前暫時不支持音頻。但它出乎意料地好用。
來自攝像頭的視頻被 ffmpeg 編碼,然后通過 HTTP 傳遞給一個 Node.js 寫的小腳本;腳本會將這條 MPEG 視頻流通過 WebSockets 分發(fā)給所有鏈接的瀏覽器;瀏覽器使用 JavaScript 解碼 MPEG 視頻流并將解碼后的畫面渲染到 Canvas 元素上。
你甚至可以用樹莓派來傳輸視頻。可能會有點慢,但是筆者測試過以 30fps 的幀率實時編碼 320x240 視頻不成問題。對筆者來說這是最好的樹莓派視頻方案。
下面是構建步驟。首先你需要取得最新版本的 ffmpeg,最新的安裝包可以從 deb-multimedia 獲得。如果你使用 Linux,你的攝像頭應該在位于 /dev/video0 或 /dev/video1;在 OS X 或 Windows 上你可以用 VLC。
確保用來分發(fā)視頻流的服務器安裝了 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// / 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 被發(fā)送到所指定的服務器和端口。確保密碼正確,URL 中的長和寬也需要正確指定,否則服務器無法正確判斷當前的分辨率。
在樹莓派上你可能需要將分辨率降至 320x240 來確保編碼速度仍能維持 30fps。
要觀看直播,需要從前文提到的 jsmpeg 項目中下載 stream-example.html 和 jsmpg.js 文件,更改 stream-example.html 中的 WebSocket URL 為你的服務器地址,并使用你喜歡的瀏覽器打開。
如果一切正常,你就能看到少于 100ms 延遲的流暢的攝像頭畫面。很好很強大對不?
更便捷的方案請圍觀原文的 Instant Webcam。
只是備忘一下,近期會再發(fā)一篇博文來總結一下各個方案的實際使用效果。重復一次原文地址 / Original post:
HTML5 Live Video Streaming via WebSockets - PhobosLab
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/11007.html
摘要:轉自今天來談談前端面試中基本上每次一面都會被問到的一個問題,那就是的新特性了。元素,表示生成密匙。和通過設置和特性,可以將輸入框的數(shù)值輸入范圍限定在最低值和最高值之間。一旦為某輸入型控件設置了特性,那么此項必填,否則無法提交表單。 轉自:http://hyuhan.com/2017/07/06/... 今天來談談前端面試中基本上每次一面都會被問到的一個問題,那就是html5的新特性了。...
摘要:今天來談談前端面試中基本上每次一面的時候都會被問到的一個問題,那就是的新特性。新表單元素元素,表示電話號碼。和通過設置和特性,可以將輸入框的數(shù)值輸入范圍限定在最低值和最高值之間。一旦為某輸入型控件設置了特性,那么此項必填,否則無法提交表單。 今天來談談前端面試中基本上每次一面的時候都會被問到的一個問題,那就是html5的新特性。這個是學習前端必須掌握的基礎知識。 新增的元素 html5...
閱讀 3801·2021-11-24 09:39
閱讀 1810·2021-11-02 14:41
閱讀 814·2019-08-30 15:53
閱讀 3479·2019-08-29 12:43
閱讀 1189·2019-08-29 12:31
閱讀 3086·2019-08-26 13:50
閱讀 795·2019-08-26 13:45
閱讀 985·2019-08-26 10:56