Handbremse ist ein großartiges Tool zur Videokomprimierung, aber es scheint nicht die ursprüngliche Aufnahmezeit nach dem Komprimieren eines Videos beizubehalten. Irgendeine Idee, wie man das behebt?
metadata
video-encoding
handbrake
Pixelfreak
quelle
quelle
Antworten:
Sie können die vorhandenen Metadaten von einer Datei in eine andere kopieren, ohne das Video mit FFmpeg neu codieren zu müssen . Es dauert im Grunde eine Sekunde. Nehmen wir dazu drei Dateien an:
in.mp4
- die Originaldatei vor der Konvertierungout.mp4
- die Datei nach der Handbremsenkonvertierungfixed.mp4
- die Datei mit "korrigierten" MetadatenDer FFmpeg-Befehl zum Kopieren des vollständigen Metadatensatzes in die neue Datei lautet dann:
Erklärung der Syntax:
Um es aufzuschlüsseln, geht dies wie folgt vor:
in.mp4
undout.mp4
), denen die IDs 0 bzw. 1 zugewiesen sind.-map 1
) zu, sodass wir die bereits konvertierten Bitstreams verwenden-map_metadata 0
)-c copy
), um alle Bitströme zu kopieren, anstatt das Video neu zu codieren.Danach könnten Sie natürlich umbenennen
fixed.mp4
inout.mp4
.Beweis:
Als Beispiel ist hier ein Teil des Metadatensatzes meiner Originaldatei:
Hier ist die Datei nach der Konvertierung der Handbremse:
Hier ist die endgültige Datei nach dem Zuordnen der Metadaten:
Wenn Sie alles mit FFmpeg machen wollen:
Eigentlich müssen Sie Handbrake nicht wirklich verwenden, wenn Sie FFmpeg verwenden können, auf das Handbrake sowieso angewiesen ist. Im einfachsten Fall können Sie Ihre Konvertierung folgendermaßen durchführen:
Dadurch wird die Eingabe mit dem x264-Encoder und AAC-Audio in eine Ausgabedatei konvertiert, wobei die ursprünglichen Metadaten kopiert werden. Um die Qualität der Ausgabe zu ändern, können Sie:
Weitere Informationen finden Sie in der x264-Codierungsanleitung im FFmpeg-Wiki.
quelle
Unknown encoder 'libfaac'
Fehler-c:a aac -strict experimental
stattdessen.Leider scheint es, dass die Handbremse dies nicht alleine kann, aber ähnlich wie im Beispiel ffmpeg können die Zeitstempel nach der Komprimierung mit dem
touch
Unix-Befehl aus dem Original kopiert werden :Dadurch wird der Zeitstempel für die komprimierte Datei auf den gleichen Wert wie für die angegebene Referenzdatei gesetzt.
quelle
Ich fand einen einfacheren Weg , dies zu tun, eine andere Software genannt
Adapter
: http://www.macroplant.com/adapter/Es hat nicht alle erweiterten Einstellungen wie HandBrake, aber es erledigt den Job (auch mit ffmpeg) und behält die Metadaten bei, die ich brauche.
quelle
Ich verwende macOS Yosemite und HandBrakeBatch - verwenden Sie es zum Konvertieren von Dateien, klicken Sie jedoch im Menü "Einstellungen" auf das Feld "Dateierstellungs- und Änderungsdaten beibehalten".
Dann importiere ich die Videos in Lightroom 5, aber die Erstellungsdaten werden immer noch nicht beibehalten. Am wichtigsten ist jedoch, dass die Dateien im Finder mit dem richtigen Erstellungsdatum angezeigt werden. Daher habe ich alle in der Lightroom-Bibliothek ausgewählt → Metadaten (rechte Dialogspalte) → Erfassungszeit → Zum Erstellungsdatum der Datei ändern → Alle ändern.
Ich hatte 850 alte Familienvideos - ich musste diesen Vorgang in Stapeln von 100 durchführen. Die Handbremse stürzt mit vielen Dateien ab.
quelle
Ich habe ein Bash-Skript erstellt, mit dem die Metadaten
touch
wie oben vorgeschlagen stapelweise übertragen werden können. Damit dies funktioniert, müssen Sie Ihre ursprünglichen und konvertierten Dateien in separaten Verzeichnissen mit jeweils der gleichen Anzahl von Dateien (die Verzeichnisse dürfen nur die Videodateien enthalten, da andere Dateien / Verzeichnisse stören) und in derselben Reihenfolge haben. Dann werden nur die Metadaten kopiert und Sie sind fertig. Das Skript listet alle Dateipaare auf, sodass Sie am Ende nach Fehlern suchen können, wenn Sie möchten.Der Code ist vielleicht nicht der sauberste, da er mein erstes richtiges Bash-Skript war, aber er war ziemlich schnell und stabil für mich.
Zum Ausführen tun:
sudo bash script.sh /sourcedir /converteddir
quelle
Wenn Sie die Änderungszeit auf Dateiebene meinen, hatte ich das gleiche Problem und konnte es mit exiftool wiederherstellen .
Dies nimmt die Metadaten und
FileModifyDate
voninput.mp4
und kopiert sie nachoutput.mp4
.Um dies zu automatisieren, da ich eine große Anzahl von Dateien transkodieren musste, habe ich ein Tool namens Shrinkwrap erstellt , das zuerst mit FFmpeg transkodiert (ich habe mich von HandBrake entfernt, weil mehr Metadaten beibehalten werden müssen) und dann den Änderungszeitstempel mit exiftool wiederherstellt.
quelle
Nach langem Suchen habe ich es größtenteils aufgegeben, alte Videodateien mit dem richtigen Erstellungs- / Änderungsdatum zu verwenden, um das Erstellungs- / Änderungsdatum meiner neuen handbremskomprimierten Videodateien zu überschreiben. Da die meisten meiner Videos das Datum und die Uhrzeit im Dateinamen haben, habe ich experimentiert und zwei Methoden zum Arbeiten bekommen. Das erste und beste ist die Verwendung der Zeitstempelmethode von Advanced Renamer, mit der das Datum der Änderung, Erstellung und des Zugriffs auf die Datei geändert werden kann, nicht nur der Dateiname selbst. https://www.advancedrenamer.com/download .
Ich habe auch ein Powershell-Skript https://www.michaelmiklis.de/set-creation-and-modification-date-from-filename/ gefunden, das von einem Programmierer für andere Dateinamen- / Datumsformate angepasst werden kann. Im aktuellen Zustand funktioniert es nur, wenn der Dateiname genau so strukturiert ist wie in diesem Beispiel.
Glücklicherweise ist meine Anzahl an Videos ohne das im Dateinamen geänderte Datum so gering, dass ich diese manuell ändern kann, was nicht zu lange dauert.
Ich habe versucht, ffmpeg zu verwenden, aber der Befehl map_metadata ändert nur die Daten in der Datei, nicht das Änderungsdatum, das von der Datei selbst erstellt wurde. Diese Art von internen Metadaten Handbrake funktioniert sowieso schon gut.
quelle
Das Programm MyFFmpeg macht das sehr gut. In den Optionen können Sie die ursprüngliche Erstellung / das Änderungsdatum aus der Quelldatei beibehalten .
Ich habe danach gesucht, weil ich meine Heimvideos auf einem Plex-Server habe und die Dateien nach dem Erstellungsdatum sortiert sind. Dies ist sehr nützlich, wenn Sie Inhalte aus einem bestimmten Jahr anzeigen möchten.
Leider ist dies keine kostenlose Option, kostet derzeit 20 Euro oder etwa 21 US. Sie haben eine Testversion für 10 Anwendungen, bevor Sie eine Lizenz kaufen müssen. Überrascht, dass einige der kostenlosen ffmpeg-GUIs diese Option nicht haben oder hinzufügen.
quelle
Ich versuche, das Erstellungsdatum beizubehalten, während ich meine unglaublich großen GoPro MP4-Videos in H.264 komprimiere.
Ich habe das Programm HandBrakeBatch gefunden . Es ist genau das, was ich brauche, um über 1000 Dateien auf einmal zu komprimieren und dabei das Erstellungsdatum (Metadaten) beizubehalten.
Habe keine anderen Programme gefunden, die dies können. Versucht mit FFmpeg, HandBrake und Wonderful Video Converter, aber nein.
quelle