libav - Ausgabe der segmentierten Stream-Aufzeichnung mit dem aktuellen Zeitstempel

726
Vico

Ich mache einen DIY-DVR (mit Linux Mint) für mein D-LINK IPCAM, und nach einigen Suchläufen im Internet habe ich eine Lösung gefunden, die meinen Bedürfnissen besser entspricht: avconv.

Ich erfahre von diesem Befehl, um einen Stream in segmentierten Videos aufzunehmen:

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" 

...but the only problem is apparently the naming scheme is sequential (like output-001.mp4), and i need to get the current date and time the video is finished (like output-08-12-2017_16-55).

Is possible to make this only using bash and avconv or i will need to resort to other tools?

1
Warum brauchen Sie eine segmentierte Ausgabe? Könnten Sie nicht alles in einer einzigen Datei speichern? (Beachten Sie, dass "avconv" nicht "ffmpeg" ist.) slhck vor 6 Jahren 0
Tut mir leid für die Verwirrung, aber ich brauche automatisch segmentierte Videos, weil ich 24/7 von einer Überwachungskamera aufnehmen möchte. Ich muss also die Videos löschen, die älter als 1 Woche sind, um zu verhindern, dass die Festplatte (500 GB) voll wird. Vico vor 6 Jahren 0
Möglich mit ffmpeg. Erscheint bei Libav nicht möglich. Gyan vor 6 Jahren 1
"Ja wirklich?" Ich habe viel nach einer ffmpeg-Lösung gesucht, aber nichts Sinnvolles gefunden. Vico vor 6 Jahren 0
Mit ffmpeg können Sie "-strftime 1" und eine formatierte Zeichenfolge im Ausgabenamen hinzufügen. Gyan vor 6 Jahren 0
Prüfen Sie, ob "mediainfo" "Encoded date" oder "Tagged date" für die MP4-Dateien meldet ("mediainfo --Inform =" Video;% Encoded_Date% "$ the_file"). Wenn ja, ist es ein SMOP, sie anschließend mit einem Skript umzubenennen. xenoid vor 6 Jahren 0
@ Mulvya Danke für den ffmpeg-Tipp, ich mache eine Selbstantwort, in der beschrieben wird, wie ich den Befehl damit erledigt habe. Vico vor 6 Jahren 0

1 Antwort auf die Frage

0
Vico

Wie von Mulvya festgestellt, habe ich dies mit ffmpeg erreicht:

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