Angenommen, ich habe eine Streaming-Video-URL rtsp: // was auch immer, und ich möchte diesen Video-Stream als eine Reihe von Dateien ungefähr in der gleichen Größe oder Dauer in meinem Dateisystem speichern. Idealerweise möchte ich die Dateien mit einem Start- und Stoppzeitstempel als Teil des Dateinamens speichern, und jede Datei sollte so beschaffen sein, dass sie eigenständig als Videodatei angezeigt werden kann, wenn sie jemand sehen möchte. Ich verstehe, dass ffmpeg eine Segmentbefehlsoption hat, die es mir erlaubt, nach Zeit zu segmentieren und in einer Reihe von Dateien wie outfile% 3d.dat oder was auch immer zu speichern. Aber nehmen wir an, ich möchte dies fortwährend tun und die Dateien zyklisch durchgehen (alte alt werden lassen), wenn die Gesamtgröße aller gespeicherten Dateien einen bestimmten Wert überschreitet. Angenommen, ich möchte die letzten 500 GB Video von dieser Streaming-URL speichern und dies Tag für Tag kontinuierlich in die ferne Zukunft tun. Was passiert mit dem Ausgabedateinamen, nachdem outfile999.dat gespeichert wurde? Beginnt die Zählung bei 0 wieder? Oder stoppt ffmpeg einfach oder stürzt ab? Gibt es einen ffmpeg-Befehl, der alte Dateien segmentieren und auslagern kann, oder müsste ich sonst ein anderes Programm gleichzeitig ausführen oder müsste ich mich dafür in ffmpeg einklinken? Ich bin ziemlich neu zu ffmpeg, so dass irgendwelche Vorschläge, die Sie ffmpeg Experten haben könnte, wie dies zu tun wäre willkommen. Ich begrüße auch Vorschläge für andere Kommandozeilen-Linux-Tools, die für diese Anwendung möglicherweise besser sind.Verwenden Sie ffmpeg, um Streaming-Video zu segmentieren
UPDATE: So stellt sich heraus, dass ffmpeg einen Segmentierer eingebaut hat, und ich kann die Dateien so segmentieren, dass die Dateinamen das Datum datetime als Teil des Dateinamens haben. Ich habe einen Befehl wie folgt verwendet:
ffmpeg -i rtsp://camera_feed_url_here -c copy -f segment -segment_list out.list -segment_time 900 \ -segment_atclocktime 1 -strftime 1 "%Y-%m-%d_%H-%M-%S.mkv"
Das sind die guten Nachrichten. Die schlechte Nachricht ist, dass, wenn ich diesen Befehl ausführen, nach ca. 1 Minute, um es nur diesen Fehler wirft und stoppt:
rtsp: // camera_feed_url_here: Ungültige Daten gefunden, wenn die Eingabe der Verarbeitung
Kein anderer Fehler oder Diagnose mesages sind ausgedruckt. Selbst wenn ich mit -loglevel debugge, scheint es nur mit dieser Fehlermeldung zu sterben.
Als ich ffmpeg gebaut, verwendet diese:
./configure --enable-demux='rtsp,rtp,sdp,flac,gif,image2,image2pipe,matrosk' --enable-network --enable-protocols --enable-decoder=h264
Irgendwelche Ideen, was ich falsch mache und wie kann ich diesen Fehler machen weggehen?