Bearbeitung der Zoom-Aufzeichnungen von Online-Unterricht mit FFmpeg
Zuletzt verändert am 24. Juli 2026 • 3 Min. Lesezeit • 636 Wörter
Basierend auf dem Feedback der Studierenden haben wir einen neuen Kurs für das TRANSMED MSc-Programm über Arzneimittelentwicklung organisiert. Es ist das, was man im Deutschen einen “Schnupperkurs” nennt. Ich habe nie eine zufriedenstellende Übersetzung dieses Wortes ins Englische gefunden. Es bedeutet, dass wir lediglich das Interesse der Studenten an diesem Thema wecken wollen. Wenn er ihnen gefällt, können sie einen der vielen vertiefenden Kurse belegen, die z.B. an der Pharmazeutischen Fakultät angeboten werden, wo es in den kommenden Jahren aufgrund des geplanten internationalen MSc-Programms in Pharmazie mehr Unterricht auf Englisch geben wird.
Wir nutzen die Zoom-Meeting-Software für alle Online-Unterrichtseinheiten und ermutigen die Dozenten, ihre Zoom-Sitzungen aufzuzeichnen, da niemand eine funktionierende Internetverbindung für den Livestream garantieren kann. Leider können einige Dozenten nicht aufzeichnen, z.B. wenn sie unveröffentlichte Daten über ein Wettbewerbsprojekt oder Daten präsentieren, die sie in einer zukünftigen Patentanmeldung verwenden wollen. Die aufgezeichneten Sitzungen werden intern zur Verfügung gestellt. Bevor ich sie auf OneDrive hochlade, versuche ich eine minimale Nachbearbeitung, nämlich das Herausschneiden von “Leerlauf” (z.B. Pausen). Ich weiß, dass alle 12-Jährigen auf TikTok das auf ihren Smartphones können, aber als Dinosaurier habe ich es auf der Kommandozeile mit FFmpeg gemacht.
Aus dem gestrigen Zoom-Recording wollte ich Leerstellen am Anfang und am Ende sowie eine 15-minütige Pause in der Mitte herausschneiden. Außerdem hatten wir ein Lied abgespielt, was qualitativ über Zoom nicht gut funktionierte. Daher habe ich den Song ( Viva La Evidence ) separat mit youtube-dl heruntergeladen (ein Tool, das vor kurzem durch die IRA-Löschungsaufforderung an GitHub bekannt geworden war). Ich habe dann den ursprünglichen Song schlechter Qualität durch das Youtube-Download ersetzt, um die Audioqualität zu verbessern.
Originalvideo: zoom_0.mp4 (Videostream: 2560x1440, H.264, 25 fps; Audiostream: MPEG-4 AAC Mono 32000Hz 126kbps) Youtube-Video: Evidence.webm (Videostream: 1920x1080, VP9, 24 fps; Audiostream: MP3 Stereo 48000Hz 128kps)
Hier sind die Schritte (man kann dies in einem Rutsch machen, aber so sind die einzelnen Schritte verständlicher):
- Nützliche Teile herausschneiden (unter Auslassung des Liedes und der Pause):
ffmpeg -i zoom_0.mp4 -vcodec copy -acodec copy -ss 00:01:44 -t 01:01:58 part1.aviffmpeg -i zoom_0.mp4 -vcodec copy -acodec copy -ss 1:07:55 -t 00:12:40 part2.aviffmpeg -i zoom_0.mp4 -vcodec copy -acodec copy -ss 1:36:18 part3.avi
- Die Auflösung des heruntergeladenen Youtube-Videos an die Zoom-Aufnahme anpassen:
ffmpeg -i Evidence.webm -vf scale=2560:1440 Evidence_rescaled.avi - Die Framerate des skalierten Videos ändern:
ffmpeg -i Evidence_rescaled.avi -filter:v fps=fps=50 Evidence_rescaled_reframed.avi - Alle vier Teile zusammenfügen:
ffmpeg -i part1.avi -i Evidence_rescaled_reframed.avi -i part2.avi -i part3.avi -filter_complex "[0✌️0][0🅰️0][1✌️0][1🅰️0][2✌️0][2🅰️0][3✌️0][3🅰️0]concat=n=4:v=1:a=1[outv][outa]" -map "[outv]" -map "[outa]" output_final.avi - In einem letzten Schritt habe ich die Qualität angepasst (2-pass), da die resultierende Datei mit dem vorherigen Befehl zu groß ist (>2GB):
ffmpeg -y -i output_final.avi -c:v libx264 -b:v 500k -pass 1 -an -f null /dev/nullffmpeg -i output_final.avi -c:v libx264 -b:v 500k -pass 2 -c:a mp3 -b:a 128k final_output_reduced_filesize.mp4
Andere nützliche FFmpeg-Befehle:
-
Um die Lautstärke um den Faktor 4 zu erhöhen:
ffmpeg -i infile.mp4 -af volume=4 -vcodec copy outfile.mp4 -
Um Anfang und Ende zu schneiden, während alles andere beibehalten wird (keine Neukodierung), wobei das Flag -to verwendet wird, um die Schnittposition am Ende zu bestimmen (nicht die Dauer des endgültigen Videos):
ffmpeg -i infile.mp4 -c copy -ss 00:05:04 -to 01:12:33 outfile.mp4
Die obigen Befehle kopieren jedoch die Daten, kümmern sich aber nicht darum, ein Keyframe am Anfang des Videos zu erzeugen. Daher kann es sein, dass das bearbeitete Video mit einem schwarzen Bildschirm beginnt und das Bild erst erscheint, wenn der nächste Keyframe erreicht wird. Wenn du das vermeiden willst, musst du die Optionen “-vcodec copy -acodec copy” entfernen. In diesem Fall wird FFmpeg das gesamte Video neu kodieren (was massiv langsamer ist als das Kopieren). Hier findest du eine gute Beschreibung der Optionen zur Vermeidung des schwarzen Startbildschirms: https://newbedev.com/cutting-the-videos-based-on-start-and-end-time-using-ffmpeg
UPDATE: Es gibt natürlich viele andere Werkzeuge, die versprechen, den Job zu erledigen. Ich habe zwei Softwareprogramme ausprobiert, die ich sehr einfach fand, speziell für das Trimmen von Videos:
- Avidemux: https://avidemux.sourceforge.net/
- LosslessCut: https://github.com/mifi/lossless-cut