Wenn man ein Video in avi Form hat und dieses am Ende zwei Tonspuren haben soll, dabei die Reihenfolge der Tonspuren aber vertauscht werden muss, d.h. die Tonspur die ursprünglich im Video war soll im Ergebnis die zweite Tonspur sein, helfen folgende zwei Befehle:
// video + externe tonspur = neues wieder mit einer tonspur
mencoder input.avi -audiofile externes.mp3 -oac copy -ovc copy -o temp.avi// neues video + 2. tonspur = fertiges video mit 2 tonspuren
avimerge -o getauschte_tonspur.avi -i temp.avi -p input.avi
Ursprünglich wollte ich das über mplayer und dumpstream, und dann direkt per 2x avimerge (einmal mit der ersten Tonspur und einmal mit der zweiten Tonspur) machen. avimerge hat aber offensichtlich Probleme mit bestimmten avis, bei denen es dann “avilib: not an avi file” auspuckt und die Bearbeitung einstellt.
mencoder spuckt zwar beim ersten merge auch einige Fehler (1 duplicate frame(s) und skipping frame! – letzteres soll wohl an falscher Erkennung der Framereate liegen) aus, aber das avi funktioniert danach sowohl per vlc, als auch per mplayer im VDR.
Ggf. schau ich mal ob ich noch ein avi Header Fix finde der nen fehlenden Index repariert, was zu Asynchronität beim Abspielen führen kann und evtl. auch für die Fehlermeldungen von mencoder, sowie das Abbrechen von avimerge verantwortlich ist.
Die beiden CLI-Befehle hab ich aus forum.doom9.org und dem Studium der jeweiligen Man-Pages.
Tags: audio, Linux, mencoder, mplayer, video


