Folien aus einem Seminarvideo
scripts/ enthält zwei Varianten eines Werkzeugs, die dieselbe Funktion erfüllen:
| Skript | Verwendung auf |
|---|---|
scripts/extract_slides.sh | Linux, macOS, Git Bash oder WSL unter Windows |
scripts/extract_slides.ps1 | Windows PowerShell (kein Bash nötig) |
scripts/slides.tex | Beamer-Vorlage, die die Skripte neben die Einzelbilder kopieren |
So funktioniert es: yt-dlp lädt nur den Videostream herunter (kein Audio, maximal 1080p). ffmpeg tastet mit 1 Bild/s ab und behält das erste Bild sowie jedes Bild, dessen Szenenwechsel-Score einen Schwellwert überschreitet – jedes behaltene Bild ist also eine neue Folie oder ein neuer Build-Schritt. Das showinfo-Log liefert zu jedem Bild die Videoposition in Sekunden. Der Ausgabeordner enthält dann:
slide_001.png,slide_002.png, ...: je eine Datei pro Folienwechseltimestamps.txt: die Videopositionen in Sekundenframe_list.texundslides.tex:pdflatex slides.texerzeugt eine Seite pro Folie mit dem zugehörigen Zeitstempel im Formath:mm:ssdarunter
Schritte
-
Werkzeuge prüfen. Führen Sie
ffmpeg -versionundyt-dlp --versionaus. Falls eines fehlt, installieren Sie es (siehe unten) oder weisen Sie den Benutzer an. Bei einer lokalen Datei wird yt-dlp nicht benötigt. -
Das passende Skript für die Plattform wählen. Unter Windows das PowerShell-Skript nehmen, es sei denn, der Benutzer arbeitet offensichtlich in Git Bash oder WSL.
-
Skript ausführen mit der vom Benutzer angegebenen URL oder Datei, in einen Ordner, der nach dem Vortrag benannt ist (z. B.
-o Vortrag_Folien), nicht innerhalb des Skill-Ordners.bash scripts/extract_slides.sh -u "https://www.youtube.com/watch?v=ID" -o Vortrag_Folien bash scripts/extract_slides.sh -i "aufnahme.mp4" -o Vortrag_Folienpowershell -ExecutionPolicy Bypass -File scripts\extract_slides.ps1 -Url "https://www.youtube.com/watch?v=ID" -OutDir Vortrag_Folien powershell -ExecutionPolicy Bypass -File scripts\extract_slides.ps1 -InputFile "C:\pfad\zu\aufnahme.mp4" -OutDir Vortrag_Folien-ExecutionPolicy Bypassumgeht die standardmäßige Blockierung von PowerShell-Skripten unter Windows – nur für diese Ausführung. -
Bilder prüfen, bevor Sie berichten. Öffnen Sie einige PNGs (erstes, mittleres, letztes) und kontrollieren Sie:
- Webcam oder Sprecheransicht neben den Folien: Die Bewegungen des Sprechers lösen falsche Folienwechsel aus. Finden Sie den Folienbereich in einem Bild und starten Sie neu mit einem Zuschnitt:
-c B:H:X:Y/-Crop B:H:X:Y(ffmpeg-Crop-Syntax: Breite, Höhe, dann obere linke Ecke). - Zu wenige Bilder (Builds oder kleine Änderungen fehlen): Führen Sie erneut mit niedrigerem Schwellwert aus:
-t 0.05/-Threshold 0.05. - Zu viele Bilder (Video, Animationen, Kamera-Rauschen): Erhöhen Sie auf
0.2–0.3oder schneiden Sie zu. - Duplikate: Löschen Sie die überzähligen PNGs und die dazugehörigen Zeilen in
frame_list.tex.
- Webcam oder Sprecheransicht neben den Folien: Die Bewegungen des Sprechers lösen falsche Folienwechsel aus. Finden Sie den Folienbereich in einem Bild und starten Sie neu mit einem Zuschnitt:
-
PDF erstellen falls gewünscht: Wechseln Sie in den Ausgabeordner und führen Sie
pdflatex slides.tex(oderlatexmk -pdf slides.tex) aus. -
Berichten Sie über die Anzahl der Bilder, den Ausgabeordner, das PDF und alles, was für den Benutzer noch zu erledigen ist, z. B. Duplikate, die Sie bewusst behalten haben.
Optionen
| Bash | PowerShell | Bedeutung | Standard |
|---|---|---|---|
-u URL | -Url URL | Video zum Herunterladen (jede von yt-dlp unterstützte Seite) | |
-i DATEI | -InputFile DATEI | Lokale Videodatei anstelle eines Downloads | |
-o VERZ | -OutDir VERZ | Ausgabeordner | video_frames |
-t X | -Threshold X | Szenenwechsel-Schwellwert, 0–1 | 0.10 |
-c B:H:X:Y | -Crop B:H:X:Y | Zuerst auf den Folienbereich zuschneiden | keiner |
-b NAME | -Browser NAME | Login-Cookies dieses Browsers verwenden (chrome, firefox, edge, ...) | keiner |
Werkzeuge installieren
- Windows:
winget install --id yt-dlp.yt-dlpundwinget install --id Gyan.FFmpeg, dann PowerShell schließen und neu öffnen, damit sie gefunden werden. - macOS:
brew install yt-dlp ffmpeg - Linux:
sudo apt install ffmpeg(oder das Äquivalent der Distribution) undpip install -U yt-dlp - LaTeX (nur für das PDF): TeX Live oder MiKTeX. MiKTeX'
latexmkbenötigt Perl; reinespdflatexnicht.
Fehlerbehebung
- Aufnahme hinter einer Anmeldung (Panopto, Zoom Cloud, Universitätsportal): Übergeben Sie
-b chrome/-Browser chrome(oder den Browser, mit dem der Benutzer angemeldet ist). Falls yt-dlp es dennoch nicht abrufen kann, bitten Sie den Benutzer, das Video herunterzuladen und mit-izu verwenden. $'\r': command not foundoderpipefail: invalid option namein Git Bash: Die.sh-Datei hat Windows-Zeilenumbrüche. Führen Sie einmalsed -i 's/\r$//' scripts/extract_slides.shaus.- yt-dlp-Fehler auf YouTube („Sign in to confirm