ffmpeg – Videofiles verlustfrei mergen und trimmen

Oft verwende ich meinen Blog als ein How-To-Notizbuch für mich selbst, damit ich Prozesse, die ich eher selten brauche, nicht jedes Mal neu nachschauen muss. Das mache ich besonders gerne wenn die Informationen auch für andere nützlich sein können.

Öfters nehme ich mit meiner Kamera oder mit meinem Q2HD Audio/Videoaufnahmegerät eigene Konzerte (z.b. von meinem Chor) auf, um sie dann später auf Youtube hochzuladen.
Da die Clips meistens nicht nachbearbeitet werden (oder nur die Tonspur nachbearbeitet wird) ist es mir wichtig ohne Re-Kodierung zu arbeiten, da dies zu Qualitätsverlusten führt.

Ich brauche daher einige Prozesse um Videos zu (be)schneiden, Audio- und Videospuren zu trennen (demux) und wieder zusammenzufügen (mux) und Clips, die bei der Aufnahme in Einzeldateien aufgespalten wurden (etwa weil das Limit für die Dateigröße überschritten wurde) verlustfrei und nahtlos wieder zusammenzufügen.

Dazu verwende ich die freie Software ffmpeg http://ffmpeg.zeranoe.com/builds/
Diese läuft auf der Kommandozeile und verfügt unter Windows über keinen Installer.

Ich kopiere daher alle Dateien von ffmpeg nach dem entpacken in den Ordner “C:\Program Files\ffmpeg\”

Dann füge ich den Installationspfad zur PATH-Umgebungsvariable hinzu, damit sich ffmpeg in der Eingabeaufforderung jederzeit ohne zusätzliche Pfadangabe aufrufen lässt.

Das geht am Schnellsten so:

set PATH=%PATH%;C:\Program Files\ffmpeg\bin\

Für das Demuxen habe ich mir ein kleines Skript gebaut, das sieht so aus:

demux.cmd

ffmpeg -i %1 -acodec copy -vn %~n1.wav -vcodec copy -an -f h264 %~n1.h264

Ein zweites Skript spart mir noch mehr Zeit, indem es alle Files eines bestimmten Typs auf einmal demuxt:

demuxmov.cmd

for %%x in (*.mov) do call demux.cmd "%%x"

Es liegen nun einzelne Files, getrennt für Audio und Video vor. Diese sollen wieder zusammengeführt werden.

Audio:

ffmpeg -i "concat:ZOOM0017.wav|ZO010017.wav" -c copy output.wav

(Audio kann nun noch bearbeitet werden, etwa normalisiert mit Audacity, Sound Forge oder Adobe Audition usw.)

Video:

Ein MP4 Video verlustfrei zu mergen (concatenate) ist etwas aufwändiger, dazu muss man zuerst die Transportstreams herausziehen:

ffmpeg -i input1.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts intermediate1.ts
ffmpeg -i input2.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts intermediate2.ts
ffmpeg -i "concat:intermediate1.ts|intermediate2.ts" -c copy -bsf:a aac_adtstoasc output.mp4

Hier kommt er aber mit dem Audiostream bei mir irgendwie nicht klar, es handelt sich bei mir um einen unkomprimierten PCM Stream.
Macht aber nichts, den haben wir ohnehin schon separat herausgezogen und concatenated…

Jetzt muss das ganze wieder zusammengefügt werden (mux):

Um sicherzugehen dass die Probleme mit der Audiospur im letzten Schritt nicht zu weiteren Problemen führen ziehe ich nochmal die Videospur aus dem conatenierten Video File:

ffmpeg -i output.mp4 -vcodec copy -an -f h264 output.h264

Jetzt muss ich nur mehr output.h264 (Video) und output.wav (Audio) neu muxen.

ffmpeg -i "output.h264" -i "output.wav" -vcodec copy -acodec copy "final.mp4"

Leider macht der Prozess bei mir einige Probleme, ich habe dann am Ende den YouTube Editor (http://www.youtube.com/editor) verwendet, da es ohnehin nur darum ging, das Material verlustfrei zu trimmen und zu mergen um es auf YouTube zu bekommen. Ich will den Beitrag trotzdem veröffentlichen, vielleicht gibt es ja Verbesserungsvorschläge…

Facebook

Letzte Tweets

Twitter Mai 26, 23:39
Gelbe Engel! Danke!

Twitter Mai 18, 21:34
Finland was terrible. #Eurovision

Twitter Mai 17, 12:49
just blogged Ist das Surface Pro teuer? – Ein Fact-Check: Gestern wurde angekündigt, dass das Surface Pro in D... http://t.co/PhW7qzhkUq

Folge mir auf Twitter!

Über den Autor

MCTS

Christian Haberl Christian Haberl ist seit mehr als 10 Jahren als EDV Berater, Vortragender und Trainer tätig. Er kann sich nicht für ein Spezialgebiet entscheiden, drum heißt dieser Blog auch "Kraut & Rüben Blog" - Unter seine Interessen fallen Web-Entwicklung auf ASP.NET Basis, Information Worker & Productivity Technologien (Windows, Office), Server (Windows Server, Small Business, Virtualisierung, Exchange), Scripting, Spam Filtering/Security und Digital Home. Christian Haberl ist auch einer der führenden Produktspezialisten für Windows Media Center und Windows Home Server und ist Direktor des ClubDigitalHome.
Im Jahr 2008 hat Christian Haberl über 200 Vorträge und Schulungen durchgeführt.
Im Frühjahr 2009 wurde Christian Haberl von Microsoft Österreich zum "Influencer" ernannt, weiters wurde er Microsoft Certified Technology Specialist / Microsoft Certified Connected Home Integrator sowie Microsoft Certified Consumer Sales Specialist.

Month List

Netzwerk Management

Bandwidth

RecentComments

Comment RSS