Я хочу транслировать потоковое видео с IP-камеры h.264 / h.265 в браузер практически без задержек и в приличном качестве (Full HD).Я знаю, что есть несколько вопросов, подобных этому, но ответы кажутся либо неполными, либо устаревшими.До сих пор я пробовал ffmpeg
и ffserver
и имел некоторый успех с ними, но есть проблемы:
Когда я смотрю на mjpg
, качество не очень хорошее, если я использую webm
качество лучше, но имеется значительная задержка (приблизительно 5 секунд), вероятно, из-за перекодирования от h264
до vp9
.Как я могу улучшить это?Можно ли транслировать h264
без перекодирования в другой формат?Есть ли лучшие решения, чем ffserver
и ffmpeg
?
Вот конфигурация, которую я использовал для mjpg:
ffmpeg -rtsp_transport tcp -i rtsp://rtsp_user:Rtsp_pass@192.168.3.83:554/Streaming/Channels/101 -q:v 3 http://localhost:8090/feed3.ffm
на ffserver:
<feed feed3.ffm>
file /tmp/feed3.ffm
filemaxsize 1G
acl allow 127.0.0.1
</feed>
<Stream cam3.mjpg>
Feed feed3.ffm
Format mpjpeg
VideoCodec mjpeg
VideoFrameRate 25
VideoIntraOnly
VideoBufferSize 8192
VideoBitRate 8192
VideoSize 1920x1080
VideoQMin 5
VideoQMax 15
NoAudio
Strict -1
</Stream>
А для webm:
ffmpeg -rtsp_transport tcp -i rtsp://rtsp_user:Rtsp_pass@192.168.3.83:554/Streaming/Channels/101 -c:v libvpx http://127.0.0.1:8090/feed4.ffm
ffserver:
<Stream cam4.webm>
Feed feed4.ffm
Format webm
# Audio settings
NoAudio
# Video settings
VideoCodec libvpx
VideoSize 720x576
VideoFrameRate 25
AVOptionVideo qmin 10
AVOptionVideo qmax 42
AVOptionAudio flags +global_header
PreRoll -1
StartSendOnKey
VideoBitRate 400
</Stream>