ffmpeg
Anleitung: Videos in Einzelbilder aufteilen mit ffmpeg
Ziel
Mit dieser Anleitung können Sie Videos in Einzelbilder aufteilen. Dies kann nützlich sein, wenn Sie beispielsweise eine Struktur-aus-Bewegung-Rekonstruktion mit Tools wie COLMAP durchführen möchten.
Voraussetzungen
-
ffmpeg
muss auf Ihrem System installiert sein. Wenn es noch nicht installiert ist, können Sie es mit dem folgenden Befehl installieren:sudo apt install ffmpeg
Schritte
-
Bash-Skript erstellen und an die richtige Stelle verschieben
Erstellen Sie eine neue Datei namenssplit_videos_to_images.shund fügenFühren Sie den folgendenCodeBefehlein:aus, um das Skript zu erstellen und es direkt nach/usr/local/bin/split-videos
zu schreiben:echo '#!/bin/bash # Überprüfen Sie, ob ffmpeg installiert ist if ! command -v ffmpeg &> /dev/null; then echo "ffmpeg ist nicht installiert. Bitte installieren Sie es zuerst." exit 1 fi # Standardwerte für Eingabe- und Ausgabepfade INPUT_PATH="." OUTPUT_PATH="." # Optionen mit getopts verarbeiten while getopts "i:o:" opt; do case "$opt" in i) INPUT_PATH="$OPTARG" ;; o) OUTPUT_PATH="$OPTARG" ;; *) echo "Ungültige Option: -$OPTARG" >&2; exit 1 ;; esac done # Gängige Videoformate VIDEO_FORMATS=("*.mp4" "*.avi" "*.mkv" "*.mov" "*.flv" "*.wmv") # Durchlaufen Sie alle
MP4-Videosgängigen Videoformate imaktuellenangegebenenVerzeichnisEingabeverzeichnis for format in "${VIDEO_FORMATS[@]}"; do for video in*.mp4;"$INPUT_PATH/$format"; do # Überspringen, wenn keine Dateien dieses Formats gefunden wurden [ -e "$video" ] || continue # Entfernen Sie die Dateierweiterung, um den Ordnernamen zu erhalten dir_name="${video%video##*/}" dir_name="${dir_name%.*}" # Erstellen Sie ein Verzeichnis im angegebenen Ausgabepfad mit dem Namen des Videos mkdir -p "$OUTPUT_PATH/$dir_name" # Teilen Sie das Video in Einzelbilder auf und speichern Sie sie im entsprechenden Verzeichnis ffmpeg -i "$video" -q:v 2 "$OUTPUT_PATH/$dir_name/frame_%04d.jpg" done done echo "Alle Videos wurden erfolgreich in Einzelbilder aufgeteilt!"' | sudo tee /usr/local/bin/split-videos > /dev/null -
Skript ausführbar machen
Öffnen Sie ein Terminal und navigieren Sie zu dem Verzeichnis, in dem sich Ihr Skript befindet.Machen Sie das Skript mit dem folgenden Befehl ausführbar:sudo chmod +x
split_videos_to_images.sh/usr/local/bin/split-videos -
Skript ausführen
FührenSieSiekönnen das SkriptimjetztgewünschtenvonVerzeichnisüberallaus:auf Ihrem System ausführen:./split_videos_to_images.shsplit-videosDas Skript wird alle.mp4-Videos im aktuellen Verzeichnis durchlaufen, für jedes Video einen OrdnerOder mitdemspezifischenNamen des Videos (ohne die.mp4-Erweiterung) erstellenEingabe- unddieAusgabepfaden:Einzelbildersplit-videos
des-iVideos/path/to/videosin-odiesen/path/to/outputOrdner speichern.
Hinweis
WennDas Skript sucht automatisch nach den gängigsten Videoformaten, sodass SieauchnichtsandereanpassenVideoformate haben, können Sie die Zeilefor video in *.mp4; doim Skript entsprechend anpassen, z.B.for video in *.mp4 *.avi *.mkv; dofür MP4, AVI und MKV-Formate.müssen.
Sie können diese Anleitung in Ihr Wiki kopieren und bei Bedarf anpassen. Ich hoffe, das hilft!