Сохраните поток в файлы mp4
Как мне сохранить поток (протокол 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 секунд живого видео)
2 ответа
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-минутные сегменты (т. е. множество коротких файлов из огромного длинного файла, например, для автомобильной стереосистемы), так как на странице man avconv недостаточно пояснительной информации. Ниже приведена рабочая командная строка оболочки для разбиения файла "интервью.mp3". использование меньшего количества параметров (карта) здесь не сработало. некоторые аудиофайлы требуют -map 0:0, смотрите выходные подсказки.
avconv -i interview.mp3 -codec copy -map 0 -f segment -segment_format mp3 -segment_time 600 "iview%03d.mp3"