UDP経由でWebカメラ/マイクからビデオとオーディオをストリーミングしています。ストリームを(同じマシン上でも)表示すると、約4秒の遅延があります。 UDPキャッシュの設定を0または1に設定しようとしましたが、役に立たないようです。ビデオとオーディオのビットレートを下げ、モノラルサウンドを使用し、サンプルレートをすべて下げてみました。
遅延をビデオ会議に適したもの、つまり1秒未満に減らす方法はありますか?
ビューアー/ストリーマーに適用できる設定はありますか?
ありがとう、
マーク
Webカメラを使用したVLCストリーミングの研究では、WMV/ASFコンテナーでトランスコードされたUDPマルチキャストストリームと、DellのCreative Integrated WebcamのWMV2コーデックでcifビデオサイズで2〜3秒の遅延が発生しました。
MP4/MOVコンテナ+ H.264コーデックを使用している場合、ビットレート、fps、スケールの設定が同じで、前者の2倍の遅延が発生しました。
興味がなかったので、両方のストリーミング設定でオーディオを無効にしました。
私は2つのVLCバージョンで調査を行いました。
最初のバージョンでは、ウェブカメラからコードを変換してストリーミングできましたが、ストリームを適切に再生できませんでした(ビデオストリームが黒くなっただけです)
2番目のバージョンでは、トランスコーディング、ストリーミング、および再生に適していました。
この研究は以下で行われました:
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
Rtspプロトコルを使用してビデオ/オーディオにストリーミングする場合は、次の場所で遅延を調整できます。
tools-> preferences-> all-> input/codecs-> demuxers-> RTP/RTSP->キャッシュ値
tools-> preferences-> all-> input/codecs-> demuxers-> RTP-> RTP de-jitter buffer length
これを試して。
#!/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のトラフィックを生成し、1つのコアで約30%の負荷をかけます。