Dựng video cơ bản (Grundlegende Videobearbeitung mit ffmpeg)
Du hilfst einem Anfänger-YouTube-Ersteller, Videos auf seinem eigenen Computer mit ffmpeg (kostenlos) zu bearbeiten. Viele Nutzer sind Vietnamesen: Wenn der Nutzer auf Vietnamesisch schreibt, antworte in einfachem, gesprochenem Vietnamesisch und halte technische Begriffe einfach (sage, was ein Befehl tut, nicht wie er funktioniert).
Anforderungen und Einschränkungen
Sage dem Nutzer dies, bevor du irgendetwas installierst, und immer dann, wenn eine Anfrage etwas benötigt, das fehlt.
- Benötigt: einen bezahlten Claude-Plan mit Claude Code; ffmpeg (kostenlos, wird nur mit Zustimmung des Nutzers installiert). Untertitel nur: Python 3.10+ und das Paket
faster-whisper(einige hundert MB, einmaliger Download). - GPU: nicht benötigt. Whisper läuft auf der CPU, wenn keine NVIDIA-Karte vorhanden ist, daher sind Untertitel für ein langes Video langsam.
- Getestetes Betriebssystem: Windows 10 (Setup-Überprüfung in der Claude Desktop-App, und jeder Trim-/Join-/Vertikal-/Lautstärke-/Export-Befehl). macOS: noch nicht getestet.
- Einschränkungen: Maschinenuntertitel geben Namen, Zahlen und regionale Akzente falsch wieder, daher muss der Nutzer die .srt-Datei Korrektur lesen. Nur grundlegende Bearbeitung: keine Effekte, animierten Text oder Musik.
- Was funktioniert ohne: ohne Python/faster-whisper funktioniert alles außer den Untertiteln weiterhin.
Regeln (immer)
- Ändere oder lösche niemals die Originaldateien des Nutzers. Lese aus
raw/(oder wo immer die Datei des Nutzers liegt); schreibe jedes Ergebnis nachexports/mit einem neuen Namen (z. B.exports/clip-cat.mp4). Überschreibe niemals eine vorhandene Datei: füge-nzu ffmpeg hinzu oder wähle einen neuen Namen. - Frage vor der Installation von irgendetwas um Erlaubnis. Sage, was es ist, warum es benötigt wird, und den genauen Befehl, dann warte auf ein Ja.
- Zeige den Befehl vor der Ausführung an und sage in einem Satz, was er tun wird. Für alles, was länger als eine Minute dauert (lange Videos, Untertitel), sage dies vorher.
- Überprüfe die Datei vor der Bearbeitung mit
ffprobe(Größe, Bildrate, Länge, Audio), damit der Befehl zur Datei passt. - Setze Dateipfade in Anführungszeichen (sie enthalten oft Leerzeichen und vietnamesische Buchstaben). Verwende unter Windows vorzugsweise Schrägstriche in ffmpeg-Filterpfaden.
- Teile dem Nutzer nach jeder Bearbeitung mit, wo die neue Datei ist und was er überprüfen soll (abspielen, Anfang und Ende anhören).
- Behaupte keine YouTube-Regeln, die du nicht belegen kannst. Wo diese Fähigkeit YouTube zitiert, ist die Quelle verlinkt.
1. Computer überprüfen
Führe nacheinander aus:
ffmpeg -versionundffprobe -versionpython --version(unter macOS auchpython3 --versionversuchen) – nur für Untertitel benötigt.
Wenn ffmpeg fehlt, biete an, es zu installieren (vorher fragen):
- Windows:
winget install --id Gyan.FFmpeg -e - macOS (Homebrew):
brew install ffmpeg(wennbrewselbst fehlt, verweise den Nutzer auf https://brew.sh und brich ab).
Wenn Python fehlt und der Nutzer Untertitel möchte:
- Windows:
winget install --id Python.Python.3.12 -e - macOS:
brew install python
Nach der Installation muss der Nutzer möglicherweise ein neues Terminal öffnen (oder Claude Code neu starten), bevor der Befehl gefunden wird. Überprüfe erneut mit ffmpeg -version.
2. Projektordner einrichten
Erstelle innerhalb des Ordners, in dem Claude Code geöffnet wurde:
raw/ Originale (Videos hierher kopieren; niemals bearbeiten)
exports/ jede fertige oder Zwischendatei
CLAUDE.md Notizen zum Kanal, die von Claude Code zu Beginn jeder Sitzung gelesen werden
Wenn CLAUDE.md nicht existiert, biete an, es zu erstellen, und frage den Nutzer 4 kurze Fragen: Kanalthema, Videosprache, Shorts / lange Videos / beides, übliche Kamera (Handy oder Kamera). Schreibe eine kurze Datei wie:
# Mein Kanal
- Thema: ...
- Videosprache: Vietnamesisch
- Macht: Lange Videos und Shorts
- Aufnahme mit: Handy
- Originale in raw/, bearbeitete Dateien in exports/
3. Grundlegende Bearbeitungen
Überprüfe immer zuerst die Eingabe: ffprobe -v error -show_entries stream=codec_type,codec_name,width,height,r_frame_rate:format=duration -of default=nw=1 "raw/input.mp4"
Trimmen (cắt một đoạn)
Neu codieren, damit der Schnitt genau auf der gewünschten Zeit landet:
ffmpeg -n -ss 00:00:12 -to 00:01:30 -i "raw/input.mp4" -c:v libx264 -crf 18 -preset medium -pix_fmt yuv420p -c:a aac -b:a 192k "exports/input-cat.mp4"
Zeiten können mm:ss oder hh:mm:ss sein. Mehrere Teile = mehrere Trimmvorgänge, dann zusammenfügen.
Zusammenfügen (ghép nhiều clip)
- Überprüfe jeden Clip mit ffprobe. Wenn alle die gleiche Breite, Höhe und Bildrate haben, schreibe
exports/list.txt:
dann:file '../raw/clip1.mp4' file '../raw/clip2.mp4'ffmpeg -n -f concat -safe 0 -i "exports/list.txt" -c:v libx264 -crf 18 -preset medium -pix_fmt yuv420p -c:a aac -b:a 192k "exports/ghep.mp4" - Wenn sie sich unterscheiden, skaliere und polstere jeden in einem Schritt auf die gleiche Größe und Bildrate (Beispiel für 2 Clips auf 1920x1080, 30 fps):
Wenn ein Clip keine Audiospur hat, informiere den Nutzer und füge stattdessen Stille dafür hinzu (ffmpeg -n -i "raw/a.mp4" -i "raw/b.mp4" -filter_complex "[0:v]scale=1920:1080:force_original_aspect_ratio=decrease,pad=1920:1080:(ow-iw)/2:(oh-ih)/2,setsar=1,fps=30[v0];[1:v]scale=1920:1080:force_original_aspect_ratio=decrease,pad=1920:1080:(ow-iw)/2:(oh-ih)/2,setsar=1,fps=30[v1];[0:a]aresample=48000[a0];[1:a]aresample=48000[a1];[v0][a0][v1][a1]concat=n=2:v=1:a=1[v][a]" -map "[v]" -map "[a]" -c:v libx264 -crf 18 -preset medium -pix_fmt yuv420p -c:a aac -b:a 192k "exports/ghep.mp4"anullsrc), damit es nicht fehlschlägt.
Vertikale Version für Shorts (khung dọc)
YouTube zählt ein Video als Short, wenn es quadratisch oder vertikal ist und bis zu 3 Minuten lang, hochgeladen mit bis zu 1080p (YouTube Hilfe 15424877, 10059070). 1080x1920 (9:16) ist die übliche vertikale Größe; YouTube veröffentlicht keine genaue Pixelgröße.
- Bildmitte zuschneiden (gut, wenn die Person in der Mitte ist):
ffmpeg -n -i "raw/input.mp4" -vf "crop=ih*9/16:ih,scale=1080:1920,setsar=1" -c:v libx264 -crf 18 -preset medium -pix_fmt yuv420p -c:a aac -b:a 192k "exports/input-doc.mp4" - Gesamtes Bild mit unscharfem Hintergrund behalten (gut für Bildschirmaufnahmen oder Weitwinkelaufnahmen):
ffmpeg -n -i "raw/input.mp4" -filter_complex "[0:v]scale=1080:1920:force_original_aspect_ratio=increase,crop=1080:1920,boxblur=20:2[bg];[0:v]scale=1080:-2[fg];[bg][fg]overlay=(W-w)/2:(H-h)/2,setsar=1[v]" -map "[v]" -map 0:a? -c:v libx264 -crf 18 -preset medium -pix_fmt yuv420p -c:a aac -b:a 192k "exports/input-doc.mp4"Frage, welche der Nutzer möchte; wenn das Motiv nicht zentriert ist, biete an, den Zuschnitt zu verschieben (crop=ih*9/16:ih:X:0, X = linker Rand in Pixeln).
Vietnamesische Untertitel (phụ đề)
Verwendet Whisper auf dem eigenen Computer des Nutzers (kostenlos, nichts wird hochgeladen). Benötigt Python und das Paket faster-whisper (etwa einige hundert MB mit dem Modell; vorher fragen):
python -m pip install faster-whisper
Dann führe das Skript aus, das mit dieser Fähigkeit geliefert wird (Pfad: der scripts-Ordner neben dieser SKILL.md):
python "<skill folder>/scripts/phu_de.py" "raw/input.mp4" --lang vi --out "exports/input.srt"
Es schreibt eine .srt-Datei. Sage dem Nutzer, dass Whisper Fehler macht (Namen, Zahlen, Akzente): er sollte die .srt öffnen und korrigieren, bevor er sie verwendet. Der erste Lauf lädt das Modell herunter und ist langsam.
Um die Untertitel in das Bild einzubrennen, nachdem der Nutzer die .srt korrigiert hat:
ffmpeg -n -i "raw/input.mp4" -vf "subtitles=exports/input.srt:force_style='FontSize=18,Outline=2'" -c:v libx264 -crf 18 -preset medium -pix_fmt yuv420p -c:a copy "exports/input-phude.mp4"
(Unter Windows den .srt-Pfad relativ und mit Schrägstrichen halten; ein Laufwerksbuchstabe wie C: muss im Filter als C\: geschrieben werden.) Viele Ersteller laden die .srt in YouTube Studio hoch, anstatt sie einzubrennen, damit die Zuschauer sie ausschalten können.
Lautstärke angleichen (chuẩn âm lượng)
YouTube veröffentlicht kein Lautstärkeziel; auf der Seite der Zuschauer gibt es eine Einstellung "Stabile Lautstärke", die laute und leise Teile ausgleicht (YouTube Hilfe 14106294). Eine übliche Wahl für Online-Videos liegt bei etwa -14 LUFS; sage, dass es eine übliche Wahl ist, keine YouTube-Regel. Verwende ffmpegs loudnorm in zwei Durchgängen (ffmpeg-Dokumentation):
- Messen:
ffmpeg -hide_banner -i "exports/video.mp4" -af loudnorm=I=-14:TP=-1.5:LRA=11:print_format=json -f null -Liesinput_i,input_tp,input_lra,input_threshaus dem JSON am Ende. - Mit diesen Zahlen anwenden:
ffmpeg -n -i "exports/video.mp4" -af loudnorm=I=-14:TP=-1.5:LRA=11:measured_I=<input_i>:measured_TP=<input_tp>:measured_LRA=<input_lra>:measured_thresh=<input_thresh>:linear=true,aresample=48000 -c:v copy -c:a aac -b:a 192k "exports/video-am-luong.mp4"Verwende keinen einfachen Durchgang für ein fertiges Video: Es stellt die Lautstärke während des Videos ständig nach.
Für YouTube exportieren (xuất file)
Folgt den empfohlenen Upload-Codierungseinstellungen von YouTube (YouTube Hilfe 1722171): MP4 mit Fast Start, H.264 High Profile, progressiv, 4:2:0, Closed GOP von der Hälfte der Bildrate, 2 B-Frames; AAC-LC-Audio bei 48 kHz; BT.709-Farbe; gleiche Bildrate wie aufgenommen. Empfohlene Videobitraten für SDR: 1080p 8 Mbit/s (24-30 fps) oder 12 Mbit/s (48-60 fps); 720p 5 / 7,5 Mbit/s; 1440p 16 / 24; 4K 35-45 / 53-68. Audio: Stereo 384 kbit/s (Mono 128 kbit/s). Beispiel für ein 1080p, 30 fps Video (GOP 15):
ffmpeg -n -i "exports/video.mp4" -c:v libx264 -profile:v high -pix_fmt yuv420p -b:v 8M -bf 2 -g 15 -flags +cgop -x264-params "colorprim=bt709:transfer=bt709:colormatrix=bt709" -color_range tv -c:a aac -b:a 384k -ar 48000 -movflags +faststart "exports/video-youtube.mp4"
Passe -b:v und -g (Hälfte der Bildrate) an das Video an; für 60 fps verwende -b:v 12M -g 30. Behalte die Bildrate bei, mit der das Video aufgenommen wurde (füge kein -r hinzu).
Thumbnail-Bild (lấy khung hình)
ffmpeg -n -ss 00:00:42 -i "raw/input.mp4" -frames:v 1 -vf "scale=1280:720:force_original_aspect_ratio=decrease,pad=1280:720:(ow-iw)/2:(oh-ih)/2" -q:v 2 "exports/khung-0042.jpg"
Biete 3-4 Bilder zu verschiedenen Zeiten an, damit der Nutzer wählen kann. YouTubes Thumbnail-Regeln (Größe, 16:9, JPG/PNG, Dateigröße) findest du in YouTube Hilfe 72431.
Wenn etwas schiefgeht
Diese Fähigkeit wurde mit Claude Code geschrieben, daher kann sie Fehler enthalten, und jeder Computer ist anders. Wenn ein Schritt fehlschlägt oder der Nutzer sagt, die Fähigkeit habe etwas falsch gemacht:
- Erkläre es klar, auf Vietnamesisch: was fehlgeschlagen ist und warum, in ein oder zwei Sätzen. Keine rohen Stack-Traces, es sei denn, der Nutzer fragt danach.
- Lies diese Fähigkeit und den Befehl, der ausgeführt wurde. Finde die Ursache (die Liste unten deckt die häufigsten ab).
- Behebe es und führe es erneut aus, wobei du eine neue Datei in
exports/schreibst. Berühre oder überschreibe niemals die Originale des Nutzers, auch nicht während der Fehlerbehebung. - Wenn die Ursache in dieser Fähigkeit selbst lag (ein falscher Befehl oder ein fehlender Schritt), sage dies und schlage vor, es zu melden, damit es für alle behoben wird: https://github.com/thegentleminh/thegentleminh-skills/issues
Häufige Fehler
"ffmpeg" wird nicht erkannt/command not found: ffmpeg ist nicht installiert oder das Terminal wurde vor der Installation geöffnet; öffne ein neues Terminal und überprüfe erneut.No such file or directory: überprüfe den Pfad und die Anführungszeichen; liste den Ordner auf, um den genauen Namen zu finden.already exists. Exiting.: der Ausgabename ist bereits vergeben; wähle einen neuen Namen (niemals überschreiben).Unknown encoder 'libx264': dem ffmpeg-Build fehlt dieser Encoder; installiere mit den obigen Befehlen neu.- Audio nach dem Trimmen asynchron: Führe den Trimm erneut mit Neucodierung durch (die obigen Befehle codieren bereits neu).