Я ищу универсальный способ сброса потока rtsp. Я хочу понять, что некоторый поток rtsp хорошо работает, и сервер отправляет некоторое видео с возможностью просмотра.
openRTSP
Сначала google рекомендует мне инструмент openRTSP.
openRTSP -4 ${stream_link} > ${output_file}
Но выходной видеофайл, сбрасываемый этим инструментом, не совсем прав. Видеодекодер (ffdec) возвращает много ошибок, таких как "Не удалось декодировать видеопакет" и "[h264] без рамки!", Что меня не устраивает.
FFmpeg
Затем я попытался сбросить поток rtsp с помощью инструмента ffmpeg.
ffmpeg -loglevel debug -i "${stream_link}" -s 640x480 -vcodec copy -acodec copy -y ${output_file}
Но процесс потоковой передачи часто прерывался ошибкой:
Application provided invalid, non monotonically increasing dts to muxer in stream 0: 730672 >= 730672
av_interleaved_write_frame(): Invalid argument
Я пытаюсь использовать --fflags igndts
, но ffmpeg не игнорирует эти ошибки. Это не имеет никакого смысла, поскольку эта ошибка на самом деле означает, что аудио- и видеопотоки отправляются асинхронно. Хуже всего то, что сбрасываемый файл, вызванный этим прерывистым дампом, тоже неверен. Ffdec возвращает некоторую ошибку:
ERROR [mov,mp4,m4a,3gp,3g2,mj2] moov atom not found
ERROR [ffdec] av_open_input_file: Operation not permitted
После приятной чашки googling я обнаружил, что это действительно старая ошибка ffmpeg muxer.
MPlayer
Чем я пытался использовать mplayer с LIVE_555 lib.
mplayer -noframedrop -dumpfile ${output_file} -dumpstream ${stream_link}
Но у меня тоже есть ошибки.
Stream not seekable!
Core dumped ;)
Вопрос
Я думаю, что я делаю что-то неправильно. Это звучит очень смешно, что нет никакого способа сохранить поток rtsp в правильном и воспроизводимом видео файле.
Возможно, есть еще один инструмент, который может помочь с этой задачей? На самом деле, я буду благодарен за любые советы для всех типов библиотек и языков. Но этот процесс должен быть автоматическим и иметь cli.
Уточнения
Что-то около 50% экспериментов, которые я сделал на localhost с vlc-streamer, который эмулирует rtsp-broadcastcaster. Вот руководство, которое я пытаюсь выполнить.
У меня действительно свежий и последний ffmpeg с поддержкой x264, который я установил который полезный поток.