libav - выводит сегментированную запись потока с текущей отметкой времени

573
Vico

Я делаю DIY DVR (используя Linux Mint) для моей D-LINK IPCAM, и после некоторых поисков в интернете я нашел решение, которое лучше соответствует моим потребностям: avconv.

Я узнаю об этой команде для записи потока в сегментированных видео:

avconv -i rtsp://<user>:<password>@xxx.xxx.xxx.xxx:xxx/play1.sdp -c copy -map 0 -f segment -segment_time 300 -segment_format mp4 "capture-%03d.mp4" 

... но единственная проблема заключается в том, что схема именования является последовательной (например, output-001.mp4), и мне нужно получить текущую дату и время окончания видео (например, output-08-12-2017_16-55).

Можно ли сделать это только с помощью bash и avconv или мне нужно будет прибегнуть к другим инструментам?

1
Зачем вам нужен сегментированный вывод? Не могли бы вы сохранить все в один файл? (Обратите внимание, что `avconv` не является` ffmpeg`.) slhck 7 лет назад 0
Да, извините за путаницу, но мне нужны автосегментированные видео, потому что я планирую записывать 24/7 с камеры безопасности, поэтому мне нужно удалить видео старше 1 недели, чтобы не допустить переполнения жесткого диска (500 ГБ). Vico 7 лет назад 0
Возможно с ffmpeg. Не представляется возможным с Libav. Gyan 7 лет назад 1
В самом деле? Я много искал решение ffmpeg, но не нашел ничего значимого. Vico 7 лет назад 0
С помощью ffmpeg вы можете добавить `-strftime 1` и отформатированную строку в выходное имя. Gyan 7 лет назад 0
Проверьте, сообщает ли `mediainfo`" Дата кодирования "или" Дата тегирования "для файлов MP4 (` mediainfo --Inform = "Видео;% Encoded_Date%" $ the_file`). Если это так, то это SMOP, чтобы потом переименовать их скриптом. xenoid 7 лет назад 0
@Mulvya спасибо за подсказку ffmpeg, я делаю ответ, описывающий, как я выполнил команду с этим. Vico 7 лет назад 0

1 ответ на вопрос

0
Vico

Как сказал Mulvya, мне удалось добиться этого с помощью ffmpeg:

ffmpeg -i rtsp://<user>:<password>@xxx.xxx.xxx.xxx:xxx/play1.sdp -c copy -map 0 -f segment -strftime 1 -segment_time 1800 -segment_format mp4 out-%d_%m_%Y-%H_%M_%S.mp4

Похожие вопросы