Communitygithub.com

dung-video

Richte einen Computer für die Videobearbeitung mit Claude Code und ffmpeg ein und führe grundlegende Bearbeitungen durch: trimmen, zusammenfügen, vertikales Format für Shorts, vietnamesische Untertitel per Whisper, Lautstärkeangleichung und Export mit YouTube-Einstellungen.

Was ist dung-video?

Diese Fähigkeit (Skill) richtet sich an absolute Anfänger, die mit Claude Code und dem kostenlosen Tool ffmpeg YouTube-Videos auf ihrem eigenen Rechner bearbeiten möchten. Sie überprüft und installiert bei Bedarf ffmpeg und Python, erstellt einen sauberen Projektordner (raw/ und exports/) und führt grundlegende Schnitte wie Trimmen, Zusammenfügen mehrerer Clips und die Erstellung eines vertikalen 9:16-Formats für YouTube Shorts durch. Ein besonderer Fokus liegt auf vietnamesischen Sprachinhalten: Mit dem lokal installierten Whisper-Modell (faster-whisper) werden automatisch vietnamesische Untertitel generiert (.srt), die der Nutzer danach korrigieren kann. Die Fähigkeit gleicht die Lautstärke auf etwa -14 LUFS an (einem gängigen Wert für Online-Videos), exportiert das Video mit den von YouTube empfohlenen Upload-Einstellungen und erstellt ein standbild für das Thumbnail. Wichtig: Sie arbeitet nie auf den Originaldateien, schreibt alle Ergebnisse in den exports/-Ordner und fragt vor jeder Installation um Erlaubnis.

Funktioniert mit✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/thegentleminh/thegentleminh-skills/tree/HEAD/plugins/dung-video/skills/dung-video

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

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)

  1. Ändere oder lösche niemals die Originaldateien des Nutzers. Lese aus raw/ (oder wo immer die Datei des Nutzers liegt); schreibe jedes Ergebnis nach exports/ mit einem neuen Namen (z. B. exports/clip-cat.mp4). Überschreibe niemals eine vorhandene Datei: füge -n zu ffmpeg hinzu oder wähle einen neuen Namen.
  2. 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.
  3. 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.
  4. Überprüfe die Datei vor der Bearbeitung mit ffprobe (Größe, Bildrate, Länge, Audio), damit der Befehl zur Datei passt.
  5. Setze Dateipfade in Anführungszeichen (sie enthalten oft Leerzeichen und vietnamesische Buchstaben). Verwende unter Windows vorzugsweise Schrägstriche in ffmpeg-Filterpfaden.
  6. Teile dem Nutzer nach jeder Bearbeitung mit, wo die neue Datei ist und was er überprüfen soll (abspielen, Anfang und Ende anhören).
  7. 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 -version und ffprobe -version
  • python --version (unter macOS auch python3 --version versuchen) – 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 (wenn brew selbst 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)

  1. Überprüfe jeden Clip mit ffprobe. Wenn alle die gleiche Breite, Höhe und Bildrate haben, schreibe exports/list.txt:
    file '../raw/clip1.mp4'
    file '../raw/clip2.mp4'
    
    dann: 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"
  2. 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):
    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"
    
    Wenn ein Clip keine Audiospur hat, informiere den Nutzer und füge stattdessen Stille dafür hinzu (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):

  1. Messen: ffmpeg -hide_banner -i "exports/video.mp4" -af loudnorm=I=-14:TP=-1.5:LRA=11:print_format=json -f null - Lies input_i, input_tp, input_lra, input_thresh aus dem JSON am Ende.
  2. 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:

  1. 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.
  2. Lies diese Fähigkeit und den Befehl, der ausgeführt wurde. Finde die Ursache (die Liste unten deckt die häufigsten ab).
  3. 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.
  4. 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).

Individual skills in this repo

This repo contains 3 individual skills — each has its own dedicated page.

anh-thanh-video

Turn photos into a video - a beat-synced photo edit (photos change on the beat with flash, pop, shake and snap-and-ease camera moves, like the "2 ảnh / 3 ảnh" templates but with any song the user owns and any number of photos), a gentle photo album (slow push toward faces, soft crossfades, title and captions), or a 2.5D "3D zoom" where near things move more than far things. Faces stay in frame, Vietnamese text done right, 9:16 / 16:9 / 1:1 / 4:5. Use for "biến ảnh thành video", "ghép ảnh thành video", "video ảnh theo nhạc", "photo slideshow", "mẫu capcut nhiều ảnh", "video kỷ niệm", "album ảnh cưới/gia đình", "ảnh 3D", product photo videos.

tach-nguoi

Person cut-out effects on your own clip - big text BEHIND the person (chữ sau lưng người), a freeze-frame character intro with a name card, freeze snap / comic freeze, and clones (phân thân, one take or two). Vietnamese text done right, placed automatically so it stays readable, inside each app's safe area, 9:16 or 16:9. Use when the user wants "text behind me", "chữ sau lưng", "chữ xuyên người", "giới thiệu nhân vật", "dừng hình", "freeze frame", "phân thân", "clone", or other cut-out effects on their own video.

video-giai-thich

Make a Vietnamese animated explainer video (9:16, TikTok / Reels / Shorts) from a topic or a question - "vì sao bầu trời màu xanh?", "lãi kép là gì?" - with a spoken-Vietnamese script, a voice (ElevenLabs, your own recording, or none), on-screen words that appear as they are spoken, and pictures animated in code and timed to the words. Five looks (riso print, chalkboard, newsprint, blueprint, poster). Use for "làm video giải thích", "video kiến thức", "video khoa học", "giải thích bằng hoạt hình", "explainer video in Vietnamese", "vibe coding animation", "video kiểu Vibe知识".

Verwandte Skills