на потоковое видео приложения между Linux server (FFmpeg) и клиент Windows (VLC player), заметная задержка около 10 секунд.
команда FFmpeg:
ffmpeg -re -f v4l2 -i /dev/video0 http://192.168.1.101:8090/feed1.ffm
VLC-плеер:
http://192.168.1.101:8090/test.swf
несмотря на то, что и сервер, и клиент запускаются вместе, VLC player задерживает воспроизведение потока примерно на 10 секунд, начиная с первого кадра, захваченного сервером. Для по этой причине постоянно возникает задержка в 10 секунд.
Я пытаюсь выяснить, что вызывает эту задержку:
-
моя первая мысль заключается в том, что кодек задерживается с кодированием. В этом случае, какой кодек следует внести в файл конфигурации ffserver? Я экспериментировал со многими видеокодеками (rawvideo, flv, mjpeg), но тот же результат.
-
во-вторых, есть ли параметр, который я мог бы включить в свою команду ffmpeg для управления задержка?
-
С другой стороны, может эта задержка происходит из-за VLC player?
Я понимаю, что этот вопрос носит общий характер. Тем не менее, любая помощь, в случае, если вы столкнулись с подобной проблемой, будет высоко оценена.
файл конфигурации FFserver:
Port 8090
BindAddress 0.0.0.0
MaxClients 10
MaxBandwidth 40000
<Feed feed1.ffm>
File /tmp/feed1.ffm
FileMaxSize 500M
ACL allow localhost
ACL allow 127.0.0.1
ACL allow 192.168.0.0 192.168.255.255
</Feed>
<Stream test.swf>
Feed feed1.ffm
Format swf
VideoCodec flv
VideoSize 640x480
VideoFrameRate 30
VideoBitRate 400
AVOptionVideo flags +global_header
AVOptionVideo cpu-used 0
AVOptionVideo qmin 10
AVOptionVideo qmax 42
PreRoll 5
StartSendOnKey
NoAudio
</Stream>