| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| requirements.txt | < 11 hours ago | 81 Bytes | |
| sourcecode.tar.gz | < 12 hours ago | 7.9 kB | |
| SlimVideoCutter.tar.gz | < 12 hours ago | 77.5 MB | |
| readme.txt | < 12 hours ago | 6.1 kB | |
| Totals: 4 Items | 77.5 MB | 0 |
===============================================================================
SIMPLE QT FFMPEG VIDEO EDITOR (PROTOTYP / IDEENENTWURF)
===============================================================================
WICHTIGER HINWEIS FÜR DIE COMMUNITY:
Bei dieser Software handelt es sich um einen experimentellen Prototypen (Proof
of Concept) und einen konzeptionellen Ideenentwurf. Das Programm demonstriert,
wie plattformunabhängiger Videoschnitt, Multithreading und die mächtige
FFmpeg-Filter-Engine unter PyQt6 miteinander verzahnt werden können. Für den
alltäglichen, professionellen Produktionseinsatz ist das Skript zu fragil,
bietet aber eine hervorragende, leicht verständliche Code-Basis für Bastler!
-------------------------------------------------------------------------------
1. FUNKTIONSERLÄUTERUNG (HOW IT WORKS UNDER THE HOOD)
-------------------------------------------------------------------------------
Das Programm eliminiert fehleranfällige Drittanbieter-Videodecoder (wie OpenCV
oder PyAV) und setzt für maximale Codec-Kompatibilität zu 100% auf FFmpeg:
* Reine Sekunden-Basis (Tupel- & Frame-Schutz):
Um Abstürze durch variable Frameraten (VFR) von Smartphones oder korrupte
Frame-Header zu verhindern, arbeitet die gesamte interne Logik strikt auf
Sekunden-Basis. Das macht den Import und das Spulen absolut unzerstörbar.
* Isoliertes Hintergrund-Rendering (Multithreading):
Die Videoverarbeitung läuft in einem eigenen QThread (Klasse RenderThread).
Das verhindert das Blockieren des Haupt-Threads. Die grafische Oberfläche
(GUI) bleibt während des gesamten Exportvorgangs voll bedienbar.
* Native Multimedia-Engine (Vorschau mit Ton):
Die Vorschau-Monitore nutzen die hardwarebeschleunigte QMediaPlayer-Engine
von PyQt6. Dadurch werden Videos lippensynchron mit echtem Ton abgespielt,
während die CPU-Last im Leerlauf minimal bleibt.
* Universeller FFmpeg-Filterkomplex (Keine Black-Screen-Bugs):
Beim Zusammenfügen zwingt der Hintergrund-Thread alle Videofiles (egal wie
verschieden Auflösung, FPS oder Audiokanäle sind) in ein standardisiertes
Korsett (Full-HD 1920x1080 bei 30 FPS, Audio resampelt auf 44.1 kHz Stereo).
FFmpeg gleicht Formatkonflikte im RAM automatisch aus. Unpassende Formate
werden mit sauberen Letterbox-Balken versehen, statt das Bild zu verwirfen.
* Intelligenter Export-Schutz:
Vergissst ein Nutzer beim Speichern die Endung anzugeben, korrigiert die
Software den Pfad automatisch im Hintergrund auf ".mp4".
-------------------------------------------------------------------------------
2. SYSTEM-VORAUSSETZUNGEN (PREREQUISITES)
-------------------------------------------------------------------------------
Da das Programm als Steuerzentrale für FFmpeg und die Multimedia-Hardware dient,
müssen die folgenden Medienpakete auf dem Linux-System vorhanden sein:
Für Linux (Ubuntu / Debian / Mint / etc.):
-> Öffnen Sie Ihr Terminal und installieren Sie die Codecs und Player-Backends mit:
sudo apt update && sudo apt install ffmpeg libavcodec-extra gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav -y
-------------------------------------------------------------------------------
3. ANLEITUNG ZUM BAUEN EINER BINÄRDATEI (EXECUTABLE COMPILATION)
-------------------------------------------------------------------------------
Um aus den Python-Skripten eine eigenständige, ausführbare Binärdatei für
Endnutzer ohne Python-Installation zu generieren, wird PyInstaller genutzt.
Schritt 1: PyInstaller installieren
-> Führen Sie diesen Befehl in Ihrem Linux-Terminal aus:
python3 -m pip install pyinstaller --break-system-packages
Schritt 2: Der Kompilierungs-Befehl
-> Führen Sie folgenden Befehl im Hauptverzeichnis Ihres Projekts aus:
pyinstaller --noconfirm --onedir --windowed --name "SimpleVideoEditor" --clean main.py
Erklärung der Parameter:
--onedir: Erstellt einen Ordner mit der Binärdatei und allen benötigten
Bibliotheken. Startet deutlich schneller als eine einzelne Datei
(--onefile), da die Bibliotheken nicht temporär entpackt werden.
--windowed: Verhindert, dass sich beim Start ein hässliches, schwarzes
Konsolen-Fenster im Hintergrund öffnet.
--clean: Löscht alte Cache-Dateien vor dem Build-Vorgang.
Schritt 3: FFmpeg integrieren (WICHTIG FÜR DIE PORTABILITÄT!)
-> Nach dem erfolgreichen Build finden Sie einen neuen Ordner namens
"dist/SimpleVideoEditor".
-> Damit der Export auf Systemen ohne globales FFmpeg funktioniert, kopieren
Sie die ausführbaren Dateien "ffmpeg" und "ffprobe" Ihres Linux-Systems
(Pfade findbar via 'which ffmpeg') direkt in diesen Ordner hinein.
-> Packen Sie den gesamten Ordner "SimpleVideoEditor" in ein Archiv
(.zip oder .tar.gz), um es im Files-Bereich auf SourceForge hochzuladen.
-------------------------------------------------------------------------------
4. DATEISTRUKTUR DES PROJEKTS (ARCHITECTURE)
-------------------------------------------------------------------------------
* main.py - Startdatei der Anwendung. Initialisiert das Qt-System.
* main_window.py - Steuert das Hauptfenster, das Dark-Theme & die Export-Logik.
* video_monitor.py - Beinhaltet die Abspiel-Logik und die Timeline-Steuerung.
* video_monitor_ui.py - Enthält das reine grafische Qt-Layout (Widgets & Buttons).
* render_thread.py - Der Hintergrund-Prozess (QThread) für das FFmpeg-Rendering.
* requirements.txt - Liste der minimal benötigten Python-Pakete (nur PyQt6).
-------------------------------------------------------------------------------
5. LIZENZ & BASTLER-HINWEIS
-------------------------------------------------------------------------------
Der Quellcode steht der Open-Source-Community frei zur Verfügung. Wenn du Ideen
hast, den Entwurf weiterzuentwickeln oder Fehler zu fixen, freuen wir uns über
Tickets, Code-Anpassungen (Patches) oder Forks direkt hier auf SourceForge!
===============================================================================