Communitygithub.com

EmbeddedMhawar/darija-video-editing

Komplette Videobearbeitungs-Pipeline für marokkanisches Darija-Material in FilmCraft: mobiler MTP-Import mit chunk-basierter Wiederaufnahme, leichte ruckelfreie Bearbeitungsproxys (960x720, -bf 0), schnellere Whisper-Transkription für Arabisch/Darija auf Wortebene mit Stdin-Streaming-Zeitstempel-Injektion, chronologischer Master-Timeline-Aufbau und YouTube-Kurzvideo-Funnel aus Langformaten.

Was ist darija-video-editing?

Diese Skill bietet eine umfassende Videobearbeitungs-Pipeline, die speziell für hochauflösende mobile Kamerafootage in marokkanischem Darija (الدارجة المغربية) und die Nutzung mit Storyteller FilmCraft entwickelt wurde. Sie löst vier kritische Probleme der Darija-Mobilvideo-Produktion: widerstandsfähigen MTP-Import mit chunk-basierter Byte-Wiederaufnahme bei Unterbrechungen, extrem leichte 960×720 Proxys mit Zero-B-Frames für verzögerungsfreies Scrubbing bei über 138 fps, zuverlässige Transkription in Arabisch/Darija mit faster-whisper und Stdin-Streaming zur Vermeidung von ARG_MAX-Fehlern, sowie einen strukturierten YouTube-Workflow, der zuerst lange Hauptvideos produziert und dann daraus 9:16 Shorts zur Steigerung der Zuschauerbindung erstellt. Der gesamte Prozess ist in fünf Phasen gegliedert: Mobile/MTP-Ingestion, Generierung von Bearbeitungsproxies, Darija-Transkription, FilmCraft-Timeline-Assemblierung und YouTube-Kurzvideo-Funnel. Die Proxys sparen über 96% Speicherplatz bei nahezu verlustfreiem Audio-Passthrough. Die Darija-Transkription extrahiert Wort-für-Wort-Zeitstempel und injiziert sie sicher über Stdin in FilmCraft. Die Pipeline eignet sich für Plattformen wie Claude Code und alle FilmCraft-basierten Workflows.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/EmbeddedMhawar/darija-video-editing/tree/HEAD/skills/darija-video-editing

In Ihrer bevorzugten KI fragen

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

Dokumentation

Darija Video Editing Suite (darija-video-editing)

Umfassende Pipeline für hochbitratiges Mobilkameramaterial (MotionCam Pro / Android / Open Gate), das Marokkanisches Darija (الدارجة المغربية) spricht und in Storyteller FilmCraft bearbeitet wird.

Löst die vier kritischen Hürden der Darija-Mobilvideoproduktion:

  1. MTP-Bus-Staus & Verbindungsabbrüche: Robuster sequenzieller Dateiabruf mit byteweiser Wiederaufnahme auf Blockebene.
  2. Wiedergabeverzögerung & Festplattenaufblähung: Ultra-kompakte 960×720 intrafreundliche Bearbeitungsproxys (-bf 0, -tune fastdecode) dekodieren mit 138+ fps und sparen >96 % Speicherplatz.
  3. FilmCraft-Sprachkonflikt: Ersetzt die englische Standard-Transkription durch faster-whisper (--language ar) und überträgt Wort-Zeitstempel sicher über stdin, um Linux-ARG_MAX-Grenzen zu umgehen.
  4. YouTube-Wachstumssynergie: Erstellt zuerst die lange Haupterzählung, dann werden daraus hochverweilende 9:16 vertikale Shorts abgeleitet, die direkt über YouTube-Funktionen wie „Ähnliche Videos“ verlinkt werden.

5-Phasen-Betriebsprotokoll

[Telefon (MTP)] ──> Schritt 1: mtp_ingest.py ──> [Rohmaterial]
                       │
                       ├──> Schritt 2: generate_proxies.py ──> [960x720 Proxys (~1,5 GB)]
                       │
                       ├──> Schritt 3: darija_transcribe.py ──> [Wort-Zeitstempel]
                       │
                       └──> Schritt 4: filmcraft_pipeline.py ──> [LongForm_Fisik101.fcproj]
                                                                     │
                                                       (Freigegebener Master-Schnitt)
                                                                     │
                                                       Schritt 5: 9:16 Shorts-Trichter

Phase 1: Mobiles & MTP-resilientes Importieren

Mobilkamera-Material (z. B. MotionCam Pro 4K/UHD Open Gate) erzeugt 40–100 GB große Dateien über USB. Standard GVFS/MTP-GUI-Kopien stürzen ab oder frieren bei langen Übertragungen ein.

Führen Sie das robuste sequenzielle Import-Tool aus:

python3 scripts/mtp_ingest.py \
  --dst "/pfad/zum/projekt/raw_footage" \
  --pattern "*.mov" \
  --date "YYMMDD"
  • Intelligente Block-Wiederaufnahme: Wenn eine 10-GB-Datei auf halbem Weg unterbrochen wird, liest die Engine die vorhandene Byte-Anzahl auf der Festplatte, springt zu diesem genauen Offset und hängt die restlichen Blöcke an, ohne die zuvor heruntergeladenen Gigabyte erneut herunterzuladen.
  • Sequenzielle Ausführung: Erzwingt strikte Single-Datei-Übertragungen, um Kollisionen im MTP-Protokoll zu vermeiden.

Phase 2: Leichtgewichtige Bearbeitungsproxys (Festplatten- & CPU-schonend)

Rohmaterial mit 4000×3008 Pixeln fällt auf Standard-CPUs unter Echtzeit-Wiedergabe (~18 fps). Diese Proxys ermöglichen sofortiges, ruckelfreies Timeline-Scrubbing und verbrauchen weniger als 4 % des ursprünglichen Speicherplatzes:

python3 scripts/generate_proxies.py \
  --input "/pfad/zum/projekt/raw_footage" \
  --output-dir "/pfad/zum/projekt/proxies" \
  --width 960 \
  --crf 24
  • Spezifikationen:
    • Skalierung: 960×720 (genau 4:3) oder 960×540 (16:9).
    • Keine B-Frames (-bf 0) & GOP 60: Sofortiger Frame-Zugriff ohne prädiktive Inter-Frame-Dekodierungsverzögerung.
    • Fastdecode-Tuning (-tune fastdecode): Deaktiviert hochkomplexes CABAC und In-Loop-Deblocking; dekodiert mit 138+ fps in FilmCraft.
    • Audio-Durchleitung (-c:a copy): Bitgenaue verlustfreie Kopie des Original-48-kHz-Stereotons; bewahrt saubere Wellenformen und Dialog-Synchronisation auf Spur A1.
    • Speicherbedarf: ~1,5 GB insgesamt für über eine Stunde 4K-Material (>96 % Platzersparnis).

Phase 3: Marokkanisches Darija-Spracherkennung & native FilmCraft-Einspeisung

FilmCrafts native Auto-Transkription ist standardmäßig auf Englisch eingestellt ("defaultLanguage": "en"). Verwenden Sie die Darija-Transkriptions-Engine, um Wort-Zeitstempel zu extrahieren:

uv run --python 3.12 --with "faster-whisper" --with "av<14" python3 \
  scripts/darija_transcribe.py \
  --input "/pfad/zum/clip.mov" \
  --output "/pfad/zu/transcripts/clip.json" \
  --model small \
  --language ar

Sichere Stdin-Transkript-Einspeisung (Umgehung von ARG_MAX)

Lange Clips (>5 Minuten) erzeugen tausende von Zeitstempeln für Wörter. Die Übergabe als Befehlszeilen-Strings führt zu OSError: [Errno 7] Argument list too long.

Streamen Sie das JSON-Befehls-Payload immer über stdin mit filmcraft-cli run -:

import json, subprocess
TICKS_PER_SEC = 254016000000

cmd_obj = {
    "id": "transcript.set",
    "params": {
        "item": item_id,
        "transcript": {
            "language": "ar",
            "speakers": [{"name": "Sprecher 1"}],
            "words": [
                {
                    "text": w["word"],
                    "start": int(round(w["start"] * TICKS_PER_SEC)),
                    "end": int(round(w["end"] * TICKS_PER_SEC)),
                    "speaker": 0
                }
                for w in words_data
            ]
        }
    }
}

subprocess.run(
    ["filmcraft-cli", "--project", "project.fcproj", "--save", "run", "-"],
    input=json.dumps(cmd_obj) + "\n",
    text=True
)

Phase 4: Langform-Timeline-Master-Assembly

Orchestrieren Sie das gesamte FilmCraft-Projekt und die Timeline mit einem einzigen Befehlssatz:

# 1. Master-4K-Sequenz initialisieren (V1-V3, A1-A3)
python3 scripts/filmcraft_pipeline.py init \
  --project "/pfad/zum/LongForm_Fisik101.fcproj" \
  --sequence-name "Master Assembly" \
  --width 3840 --height 2160 --fps 24.0

# 2. Alle Rohmaterialien stapelweise importieren
python3 scripts/filmcraft_pipeline.py import \
  --project "/pfad/zum/LongForm_Fisik101.fcproj" \
  --media "/pfad/zum/raw_footage"

# 3. Clips chronologisch auf Spur V1 / A1 anordnen
python3 scripts/filmcraft_pipeline.py assemble \
  --project "/pfad/zum/LongForm_Fisik101.fcproj"

# 4. Generierte Proxys an alle Elemente anhängen
python3 scripts/filmcraft_pipeline.py attach-proxies \
  --project "/pfad/zum/LongForm_Fisik101.fcproj" \
  --proxies-dir "/pfad/zu/proxies"

# 5. Darija-Transkripte an alle Elemente anhängen
python3 scripts/filmcraft_pipeline.py attach-transcripts \
  --project "/pfad/zum/LongForm_Fisik101.fcproj" \
  --transcripts-dir "/pfad/zu/transcripts"

Globale Einstellung

Stellen Sie sicher, dass FilmCraft beim Start standardmäßig die Proxy-Wiedergabe verwendet, indem Sie ~/.local/share/filmcraft/preferences.json überprüfen:

"enableProxies": true

Phase 5: YouTube-Wachstum & Shorts-Abspaltungs-Trichter (@fisik101)

Sobald der Langform-Master-Schnitt poliert und freigegeben ist:

  1. Strategischer Veröffentlichungsrhythmus:
    • Langform: 1 bis 2 Videos pro Woche (48–72 Stunden zwischen Uploads, damit die Browse- und Suggested-Algorithmen indexieren können).
    • Shorts: 2 bis 3 Shorts pro Tag, im Abstand von 3 bis 4 Stunden (z. B. 13:00, 17:00, 21:00 GMT+1).
  2. Der „Ähnliche Videos“-Trichter:
    • Setzen Sie für jeden Short, der aus dem Langform-Master extrahiert wurde, den Link „Ähnliches Video“ in YouTube Studio auf das übergeordnete Langform-Video.
    • Wandelt die hohe Shorts-Aufrufzahl direkt in Langform-Sehzeit und Kanal-Abonnenten um.
  3. Kurzform-Leinwand & Styling:
    • 9:16 vertikale Leinwand (1080×1920).
    • Hochkontrast-Kinetic-Captions im Mikrofon-/Brust-Safe-Bereich (margin_v: ~420px).
    • Hook $\rightarrow$ Story $\rightarrow$ Payoff-Struktur (Stille $>0{,}4$s entfernt mit 80 ms Konsonantenschutzpuffer).

Verwandte Skills