如何减少延迟 - 从网络摄像头流式传输VLC

时间:2012-02-02 20:02:29

标签: performance video-streaming audio-streaming vlc

我通过UDP从网络摄像头/麦克风传输视频和音频。当我查看流(即使在同一台机器上)时,会有大约4秒的延迟。我尝试将UDP缓存设置为0或1,但似乎没有帮助。我尝试降低视频和音频比特率,使用单声道声音并降低采样率都无济于事。

有没有人有任何想法如何减少延迟,更适合视频会议,即< 1秒钟?

我可以应用于可以提供帮助的观众/流媒体吗?

谢谢,

马克

3 个答案:

答案 0 :(得分:9)

如果您使用rtsp协议流式传输到视频/音频,则可以在

处调整延迟

tools-> preferences-> all-> input / codecs-> demuxers-> RTP / RTSP->缓存值

tools-> preferences-> all-> input / codecs-> demuxers-> RTP-> RTP去抖动缓冲区长度

答案 1 :(得分:5)

试试这个。

#!/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

我使用720p网络摄像头延迟2秒,它产生大约2.5Mbit / s的流量和一个核心的负载~30%。

答案 2 :(得分:3)

在我使用网络摄像头进行VLC流式传输的研究中,我使用带有 cif 视频大小的戴尔创意集成网络摄像头的WMV / ASF容器+ WMV2编解码器转码的UDP多播流延迟了2-3秒。

如果使用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