2012-02-02 152 views
13

我是通過UDP從我的網絡攝像頭/麥克風傳輸視頻和音頻。當我查看流(甚至在同一臺機器上)時,延遲時間約爲4秒。我曾嘗試將UDP緩存設置設置爲0或1,但似乎沒有幫助。我曾嘗試降低視頻和音頻比特率,使用單聲道並降低採樣率,但都無濟於事。如何減少延遲 - 來自網絡攝像機的VLC流式傳輸

有沒有人有任何想法,我可以減少延遲,更適合於一個視頻會議,即< 1秒?

有沒有可以適用於查看器/流器的設置?

感謝,

馬克

回答

3

在我的VLC流媒體與網絡攝像頭的研究中,我得到了2-3秒的延遲與WMV/ASF容器+ WMV2編解碼器從戴爾的創新集成網絡攝像頭與轉碼UDP組播流cif視頻大小。

如果使用MP4/MOV容器+ H.264編解碼器,我得到了前者的兩倍延遲,具有相同的比特率,fps和比例設置。

我在兩個流媒體設置中都禁用了音頻,因爲我對它不感興趣。

我確實有兩個版本VLC的研究:

  • VLC 1.1.11(最新的Windows穩定版)
  • VLC 2.1.0(最新的每日構建版)

隨着第一個版本,我可以轉碼和從網絡攝像頭流,但它無法正確播放流(它只是給一個變黑的視頻流)

隨着第二個版本,它的工作適用於轉碼,流媒體和播放。

Intel Core 2 Duo T7250 
4GB DDR2-667 SDRAM 
SATA 7200 RPM HDD 
GeForce 8400M GS 128MB GDDR3 (+ 128MB shared memory = 256MB video memory) 
Windows XP Pro SP3 
+0

我試過我的筆記本電腦上的simular設置,處理器是一個i7,但顯卡是一個集成的英特爾。你知道當流式傳輸視頻時顯卡處理器是否被使用嗎?這可能是我的問題。 – Marc 2012-02-13 11:33:13

+1

是的,在Windows下,'dshow://'是一個DirectShow接口;與任何DirectX界面一樣,它將使用DirectX GPU的所有硬件加速功能,如果在服務器端或客戶端檢測到這些功能,都可以提高性能。 – ecle 2012-02-13 13:33:09

7

如果使用RTSP協議以流視頻/音頻,您可以調整在

工具 - >首選項 - >清一色>輸入延遲:

這項研究上完成/ codecs-> demuxers-> RTP/RTSP->緩存值

工具 - >首選項 - >清一色>輸入/ codecs-> demuxers-> RTP-> RTP去抖動緩衝器長度

+8

注意:每晚構建版本VLC 2.1.0-git-20120203-0008的GUI中不存在「緩存值(ms)」和「RTP去抖動緩衝區長度(msec)」選項。即使是'輸入/編解碼器 - >訪問模塊 - > UDP'樹項目也缺失,因此'UDP緩存'選項在GUI中不可用。 – ecle 2012-02-13 13:27:10

+2

現在他們稱之爲「網絡緩存」,但它似乎並沒有以同樣的方式工作。我無法獲得我在2.0.4中獲得的1.1.9(〜100-150 ms)的巨大延遲(遠遠更多,對於這樣的低值變得不穩定)。 – 2013-01-26 12:49:52

+1

@YngveSneenLindal你在1.1.9中使用了什麼樣的命令行? – rogerdpack 2013-10-17 21:32:55

4

嘗試此。

#!/bin/sh 
ETH=eth0 

cvlc --miface=$ETH v4l2:///dev/video0 :input-slave=alsa://hw:0,0 :sout=#transcode{vcodec=h264,venc=x264{preset=ultrafast,tune=zerolatency,intra-refresh,lookahead=10,keyint=15},scale=auto,acodec=mpga,ab=128}:rtp{dst=224.10.0.1,port=5004,mux=ts} :sout-keep >/dev/null 2>/dev/null & 
vlc1=$! 
vlc --miface=$ETH rtp://224.10.0.1 >/dev/null 2>/dev/null & 
vlc2=$! 
wait $vlc2 
kill -9 $vlc1 

我已經2秒720p的攝像頭的延遲,它產生約2.5Mbit/s的TRAFIC和負載爲一個芯〜30%。