ubuntuusers.de

FFmpeg/Mencoder Ton asynchron

Status: Gelöst | Ubuntu-Version: Ubuntu 12.04 (Precise Pangolin)
Antworten |

anonumouus

Anmeldungsdatum:
3. Juni 2010

Beiträge: 184

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?

anonumouus

(Themenstarter)

Anmeldungsdatum:
3. Juni 2010

Beiträge: 184

Diese Variante

avconv -ss 00:05:29.000 -i input.avi -acodec copy -vcodec copy -t 01:28:00.000 out.mp4

funktioniert doch einwandfrei. Man sollte bedenken, dass er immer nur an I-Frames schneidet, weshalb man nicht mehr so genau schneiden kann.

Was was für Frames sind kann man in Avidemux nachschauen und sich passende Schnittpunkte raussuchen.

Für mich ist das Problem jetzt gelöst. Wenn jemand noch beantworten kann warum mencoder es nicht schafft oder die erste Möglichkeit nicht wirklich gut funktioniert, kann er das ja noch posten.

frostschutz

Avatar von frostschutz

Anmeldungsdatum:
18. November 2010

Beiträge: 7782

Kann da auch nicht wirklich was zu beitragen, außer daß ich bei der Umwandlung von ts (SAT-USB-Rekorder) zu mkv ffmpeg noch die Option -async 1024 mitgebe damit der Ton synchron wird. Da sind dann die ersten 2-3 Sekunden asynchron und danach stimmts perfekt. Ohne den -async Parameter bleibt es durchgehend asynchron.

anonumouus

(Themenstarter)

Anmeldungsdatum:
3. Juni 2010

Beiträge: 184

Habe festgestellt, dass mencoder synchrone wenn auch größere Ergebnisse liefter, wenn man die Optionen "-mc 0 -noskip" mitgibt.

Antworten |