Подтвердить что ты не робот

Как уменьшить задержку - потоковая передача VLC с веб-камеры

Я передаю видео и аудио с моей веб-камеры/микрофона через UDP. Когда я просматриваю поток (даже на той же машине), происходит отсрочка около 4 секунд. Я попытался установить параметр UDP Cache на 0 или 1, но он, похоже, не помогает. Я попытался уменьшить скорость передачи видео и аудио, используя монофонический звук и уменьшая частоту дискретизации до нуля.

Есть ли у кого-нибудь идеи, как я мог бы уменьшить задержку, что-то лучше подходит для видеоконференции, т.е. 1 секунда?

Есть ли способ, который я могу применить к средству просмотра/стримера, которое может помочь?

Спасибо,

Марк

4b9b3361

Ответ 1

В моем исследовании потоковой передачи VLC с веб-камерой я получил задержку в 2-3 секунды для многоадресного потока UDP, транскодированного с помощью WMV/ASF-контейнера + кодека WMV2 от веб-камеры Dell Creative Integrated с размером видео cif.

Если вы используете MP4/MOV-контейнер + H.264-кодек, я получил в два раза большую задержку первого с теми же настройками в битрейтах, fps и scale.

Я отключил звук в обоих настройках потоковой передачи, так как меня это не интересовало.

Я провел исследование с двумя версиями 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

Ответ 2

Если вы используете протокол rtsp для потоковой передачи на видео/аудио, вы можете настроить задержку на

tools- > preferences- > all- > input/codecs- > demuxers- > RTP/RTSP- > кеширование

tools- > preferences- > all- > input/codecs- > demuxers- > RTP- > длина буфера для удаления флага RTP

Ответ 3

Попробуйте это.

#!/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,5 Мбит/с трафик и нагрузку для одного ядра ~ 30%.