Как сохранить поток (протокол rtsp, кодек h264) в файле (контейнере mp4)? То есть на входе бесконечный поток (с камеры видеонаблюдения), а на выходе файлы в формате mp4 размером 5-10 минут времени записи.
ОС: debian, ubuntu Программное обеспечение: vlc, ffmpeg (avconv)
В настоящее время используется такая схема:
cvlc rtsp://admin:admin@10.1.1.1:554/ch1-s1 --sout=file/ts:stream.ts
ffmpeg -i stream.ts -vcodec copy -f mp4 stream.mp4
Но он не может записывать видео непрерывно (между перезапусками vlc потеря около 10 секунд живого видео)
VLC не поддерживает сегментирование выходного файла. Вы можете попробовать использовать напрямую ffmpeg, поскольку он поддерживает вывод сегментация:
ffmpeg -i rtsp://admin:admin@10.1.1.1:554/ch1-s1 -c copy -map 0 -f segment -segment_time 600 -segment_format mp4 "out%03d.mp4"
может быть полезно знать, как разбить аудиофайлы на 10-минутные сегменты (то есть много коротких файлов из огромного длинного файла, например, для автомобильной стереосистемы), поскольку справочная страница avconv не имеет достаточной пояснительной ценности. Ниже приведена рабочая командная строка оболочки для разделения файла "интервью.mp3". использование меньшего количества параметров (карта) здесь не сработало. для некоторых аудиофайлов требуется -map 0: 0, смотрите подсказки вывода.
avconv -i interview.mp3 -codec copy -map 0 -f segment -segment_format mp3 -segment_time 600 "iview%03d.mp3"