Прямая трансляция с IP-камеры h.264 в веб-браузер - PullRequest
0 голосов
/ 21 марта 2019

Я хочу транслировать потоковое видео с 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>
...