Hallo,
ich habe eine avi-Datei mit h.264 als Codec. Nun wollte ich einen Teil herausschneiden ohne neu zu kodieren.
Mit ffmpeg habe ich es probiert mittels -ss und -t, doch habe ich ein merkwürdiges Problem:
Manchmal ist der Ton asynchron. Wenn ich jedoch mit dem gleichen Befehl und einer leicht geänderten Zeit bei -ss (z.B. 120 Millisekunden weniger) das ganze wiederhole ist der Ton wieder passend.
Das funktioniert:
avconv -i input.avi -acodec copy -vcodec copy -ss 00:05:28.780 -t 01:28:00.000 out.mp4
Das funktioniert nicht:
avconv -i input.avi -acodec copy -vcodec copy -ss 00:05:29.000 -t 01:28:00.000 out.mp4
Da ich nicht immer ausprobieren wollte, habe ich mal den mencoder bemüht, welcher vollkommenen Blödsinn lieferte. Der Ton passte glaube ich, aber das Bild war um mehrere Minuten verschoben. Es muss also das Video zu langsam oder der Ton zu schnell sein. Da hat auch kein ändern von -ss geholfen. Ich weiß, dass der mencoder erst bei nächsten keyframe schneidet, aber dann sollte ja auch dort der Ton geschnitten sein.
Das funktioniert nicht:
mencoder -oac copy -ovc copy input.avi -of lavf -o out.mp4 -ss 00:05:28.780 -endpos 01:28:00
Es liegt übrigens nicht an der Konvertierung von avi nach mp4.
Hat jemand eine Erklärung und Lösung dafür?
Edit:
Ich habe gerade herausgefunden, dass
avconv -ss 00:05:29.000 -i input.avi -acodec copy -vcodec copy -t 01:28:00.000 out.mp4
funktioniert, also, wenn das -ss vor dem Input ist.
Laut Man-page ist das schneller, allerdings nicht so genau, was man merkt. Ein paar Stellen sind mehr drin als drinne seien sollten. Von daher wäre die andere Methode eigentlich besser. Hat jemand eine Idee?
Vielleicht auch mit Mencoder?