Нужно транслировать видео с ip-камер на веб-страницу. Из доступных вариантов мне показался самым простым вариант со связкой ffserver и ffmpeg. Возможно ошибочно.
Сначала настроил для приема видео через html поток в формате mjpeg:
Файл "ffserver.conf"
<Feed feed1.ffm>
File /tmp/feed1.ffm
FileMaxSize 200M
</Feed>
<Stream feed1.mjpg>
Feed feed1.ffm
Format mpjpeg
NoAudio
</Stream>
Запуск ffserver
ffserver -d -f /etc/ffserver.conf
Запуск ffmpeg
ffmpeg -f mjpeg -i "http://10.1.1.60:80/axis-cgi/mjpg/video.cgi?resolution=640x480" -c copy http://127.0.0.1:8090/feed1.ffm"
Видеопоток доступен по ссылке "
10.1.1.40:8090/feed1.mjpg" - данный вариант работает.
Затем пришел через настроить прием видео через rtsp поток в формате h264:
Файл "ffserver.conf"
<Feed feed1.ffm>
File /tmp/feed1.ffm
FileMaxSize 200M
</Feed>
<Stream feed1.mp4>
Feed feed1.ffm
Format mp4
NoAudio
</Stream>
Запуск ffserver
ffserver -d -f /etc/ffserver.conf
Запуск ffmpeg
ffmpeg -i "rtsp://10.1.1.60:554/axis-media/media.amp?videocodec=h264&resolution=640x480" -acodec copy -vcodec copy "http://127.0.0.1:8090/feed1.ffm"
При попытке доступа к "
10.1.1.40:8090/feed1.mp4" в консоли ffserver "ругается":
Fri Jun 24 02:32:36 2016 10.1.1.41 - - New connection: GET /feed1.mp4
Fri Jun 24 02:32:36 2016 Codec for stream 0 does not use global headers but container format requires global headers
Fri Jun 24 02:32:36 2016 muxer does not support non seekable output
Fri Jun 24 02:32:36 2016 Error writing output header
Fri Jun 24 02:32:36 2016 10.1.1.41 - - [GET] "/feed1.mp4 HTTP/1.1" 200 68
Хотя если запустить только ffmpeg на запись видеопотока в файл:
ffmpeg -i "rtsp://10.1.1.60:554/axis-media/media.amp?videocodec=h264&resolution=640x480" -acodec copy -vcodec copy "/tmp/test.mp4"
Видеопоток корректно сохраняется в файл и проигрывается видеплеером.
Получается проблема не в кодеках и не в параметрах ffmpeg , а в файле "ffserver.conf"?