2014-02-08 135 views
0

我想在使用ffmpeg,nodejs和html5的屏幕上進行HTTP實時流。我希望它儘可能實時。不過,我發現客戶收到的視頻落後了1〜2秒(在Chrome/Chromium上)。我使用vp8/webm作爲我的編解碼器。

我已經消除了以下因素,例如:
1)網絡:我試圖服務和通過陳述視頻源爲127.0.0.1:PORT或本地主機接收本地視頻文件:PORT
2) ffmpeg編碼速度:我試圖在本地輸出文件,它的「延遲」似乎可以忽略不計。
3)Chrome內部緩衝區。緩衝區佔0.07s〜0.08s。

在nodeJS端,我有一個運行ffmpeg命令的子進程,並執行了ffmpeg.stdout.pipe(res); < - ffmpeg的是child_process.spawn(...)使用ffmpeg的NodeJS管道


如此看來,中的NodeJS的ffmpeg.std.pipe(RES)似乎是一個延遲的視頻流。我是否認爲這樣做是正確的?無論如何,我可以減少延誤?

+0

1-2秒數據這種類型的應用是令人驚訝的低等待時間。這不太可能比這更好。每層都有緩衝區。 – Brad

+0

Ahhhh我明白了......那對我來說很難過=(。感謝Brad! –

回答

0

進入的WebRTC沒有必要實施像編解碼器,管道等任何東西(已經在鉻,歌劇,火狐)

用途: MediaCaptureAPI(訪問您的凸輪和麥克風,並轉換對象URL,默認情況下它們使用的編解碼器VP8等)

RTCPeerconnectionAPI(發送和接收媒體流P2P)

RTCDatachannelAPI(發送和接收使用P2P)

+0

嗯......不要認爲它會起作用......因爲我想將遠程機器的屏幕傳輸到瀏覽器,請更正如果我錯了,WebRTC只允許我從瀏覽器到瀏覽器(並且它似乎只適用於視頻攝像頭和麥克風) 由於VNC的某些限制,無法使用通常的VNC ... = \ –

+0

WebRTC也支持屏幕共享(只在鉻),但它需要在這裏HTTPS https://simpl.info/screencapture/ –

+0

Oooo webRTC能夠從系統桌面/窗口中獲取屏幕沒有運行在鉻?哇。 ..很棒,我會嘗試的!謝謝! –