Ein Clip für den Rohschnitt soll fünf Sekunden lang sein, ins Querformat passen und ohne Tonspur auskommen. Beim Durchsehen von mehreren Dateien fallen diese Unterschiede in der Vorschau leicht unter den Tisch. Mit ffprobe, dem Analyseprogramm aus FFmpeg, kannst du die drei Angaben vor dem Import prüfen und auffällige Dateien gezielt öffnen.
Die Prüfung unten arbeitet mit lokalen Dateien. Die Zeichnungen zeigen den Ablauf. Die Ausgaben im Beispiel stammen aus selbst erstellten Testdateien.
Sammle zuerst die Anforderungen an deine Probe. Dieselbe Länge allein reicht für die Auswahl kaum aus.
Lege fest, was für deinen Schnitt passt
Für dieses Beispiel gilt ein einfaches Profil. Die Dateidauer liegt innerhalb von 0,08 Sekunden um fünf Sekunden. Das sichtbare Seitenverhältnis weicht höchstens zwei Prozent von 16:9 ab. Die Datei enthält keine Tonspur. Die Toleranzen gehören zu diesem Schnittbeispiel und lassen sich an dein Projekt anpassen.
Wenn du einen zusätzlichen Testclip brauchst, eignet sich das Formular kostenloser KI-Videogenerator von Flyne AI als optionale Quelle. Es erstellt aus einer Texteingabe einen fünf Sekunden langen Clip in 480p ohne Anmeldung. Für den Start ist eine Verifizierung erforderlich, und die Anfrage kann in der Warteschlange landen. Für die Prüfung kannst du ebenso eine vorhandene Datei verwenden.
Lies die Datei und ihre Spuren aus
Mit installiertem FFmpeg und Python 3 kannst du die Angaben zunächst von Hand ansehen.
format.duration gibt die Dauer des Containers an. Die Bildspur enthält Breite, Höhe und das Pixel-Seitenverhältnis. Drehdaten können bei einem ursprünglich quer gespeicherten Video die Darstellung ins Hochformat drehen. Die Einträge vom Typ audio zählen die Tonspuren. Ob eine vorhandene Spur hörbaren Ton enthält, kannst du beim Abspielen prüfen. Offizielle ffprobe-Dokumentation
Das Skript liest drei getrennte Angaben aus der Datei aus. Die Zeichnung stellt den Prüfablauf dar.
Prüfe mehrere Kurzclips mit demselben Profil
Speichere das folgende Skript als clip_check.py. Es erwartet genau eine Bildspur und lässt eingebettete Titelbilder bei der Auswahl außen vor. Bei unvollständigen Dateiangaben meldet es PRÜFEN, damit du die Datei separat ansehen kannst.
from fractions import Fraction
import json
import math
import subprocess
import sys
def inspect(path):
result = subprocess.run(
["ffprobe", "-v", "error", "-show_format", "-show_streams",
"-of", "json", "-i", path],
check=True, capture_output=True, text=True,
)
info = json.loads(result.stdout)
streams = info["streams"]
pictures = [
stream for stream in streams
if stream.get("codec_type") == "video"
and not stream.get("disposition", {}).get("attached_pic")
]
if len(pictures) != 1:
raise ValueError("genau eine Bildspur erwartet")
picture = pictures[0]
seconds = float(info["format"]["duration"])
pixel_ratio = Fraction(picture["sample_aspect_ratio"].replace(":", "/"))
shape = Fraction(picture["width"], picture["height"]) * pixel_ratio
angle = float(next(
(side["rotation"] for side in picture.get("side_data_list", [])
if "rotation" in side),
picture.get("tags", {}).get("rotate", 0),
))
if not math.isfinite(seconds) or seconds <= 0 or shape <= 0 or angle % 90:
raise ValueError("Dauer, Pixelformat oder Drehung prüfen")
if angle % 180:
shape = 1 / shape
audio = sum(stream.get("codec_type") == "audio" for stream in streams)
on_time = abs(seconds - 5) <= 0.08
in_shape = abs(float(shape / Fraction(16, 9)) - 1) <= 0.02
status = "PASSEND" if on_time and in_shape and audio == 0 else "PRÜFEN"
print(f"{path} | {seconds:.2f} s | Verhältnis {float(shape):.3f} | "
f"{audio} Tonspuren | {status}")
if len(sys.argv) < 2:
raise SystemExit("Aufruf: python3 clip_check.py DATEI [DATEI ...]")
for filename in sys.argv[1:]:
try:
inspect(filename)
except (OSError, subprocess.CalledProcessError, ValueError, TypeError,
KeyError, ZeroDivisionError):
print(f"{filename} | PRÜFEN | fehlende oder unlesbare Dateiangaben")
Alles anzeigen
Rufe das Skript mit einer oder mehreren Dateien auf.
Der lokale Test mit synthetischen Farbflächen lieferte diese beiden Zeilen.
quer-ohne-ton.mp4 | 5.00 s | Verhältnis 1.778 | 0 Tonspuren | PASSEND
hoch-mit-ton.mp4 | 4.60 s | Verhältnis 0.562 | 1 Tonspuren | PRÜFEN
Eine weitere Probe hatte gespeicherte Querformatmaße und eine Drehung um 90 Grad. Das Skript las sie als Hochformat. Eine leere Datei landete ebenfalls bei PRÜFEN. So siehst du sowohl Abweichungen vom Profil als auch fehlende Angaben, bevor du den Clip importierst.
Zur manuellen Prüfung kommen auch gültige Dateien, deren Format vom Beispielprofil abweicht.
Öffne die markierten Clips einzeln. Bei einem Clip mit Ton kannst du im Schnitt entscheiden, ob du die Spur verwenden möchtest. Bei abweichender Dauer legst du den gewünschten Ausschnitt im Projekt fest. Änderst du das Ziel etwa auf Hochformat oder soll Ton vorhanden sein, passe die Profilwerte im Skript an und führe denselben Aufruf erneut aus.
Offenlegung. Dieser Beitrag stammt vom Flyne-AI-Team. Bei Text und Illustrationen kam KI zum Einsatz.