Merging von mp4-files/Audio asynchron

  • also für asynchronität gibt es in der regel 2 gründe:
    1) falsche framerate
    2) delay

    um herauszufinden was das problem ist beantworte mal bitte die frage ob die asynchronität immer gleich gross ist oder mit der laufzeit immer größer wird?

    Ich weiß, daß ich nichts weiß (Sokrates)

  • Welche würdest du denn vorschlagen? Das Ausgabefile soll nachher auf einem iPod abspielbar sein. Der schluckt bis 30fps, was die Untergrenze ist steht leider nicht auf der Apple Homepage.

  • an den Frameraten kanns ja auch nicht liegen, denn Du wandelst alle die Unterschiedlichsten Video mit der gleichen Commandline und dann müssen ja auch die gleichen MP4s rauskommen. Jedoch ist das Audio/Video am Ende eines MP4s fast nie Syncron zu Ende. Daher kommen sicherlich die Probleme.

    Ergo: machs Endlich so wie wir es Dir gesagt haben. Alle Videos per AVISynth verbinden und als EIN Stück encoden. Das ist die einzige Beste Variante.

    Wenn Du kein AVISynth unter Linux hast, das werfe des Bastelsystem wech und Encode es unter reinem Windows.

    Und Überhaupt, warum willst Du denn unterschiedliche Videos joinen? Darin versteh ich nun mal garkeinen Sinn.

  • Wenn Du kein AVISynth unter Linux hast, das werfe des Bastelsystem wech und Encode es unter reinem Windows.


    Ich könnte mir vorstellen das er einen Linux Webserver hat. Nur so eine Vermutung.
    Ich glaube nicht das die Persönliche Einschätzung von Linux als Bastelsystem ihm bei seinem Problem hilft. Man sollte sich bemühen immer möglichst sachlich zu bleiben, es kommt sonnst nur zur Flamewars.

  • Ich glaube nicht das die Persönliche Einschätzung von Linux als Bastelsystem ihm bei seinem Problem hilft. Man sollte sich bemühen immer möglichst sachlich zu bleiben, es kommt sonnst nur zur Flamewars.


    Ich bin immer noch ein Mensch und keine SupportMaschine. Wenn ich zu bestimmter Hard/Soft-ware eine Meinung habe, tut ich des auch und lass es mir von niemanden verbieten. Und wenn es unter bestimmten Bedingen, einfach keinen Weg zum Ziel führt, muß man halt über den Tellerrand schauen. Selbst ich mußte von meinem W2K auf XP umsteigen, was mir noch heute oft Schmerzen bereitet. Genauso wird es sicherlich beim neusten Win-System sein, wo ich heute noch sage Niemals. Und glaube mir, ich bin werde die erste sein, die auf Linux umsteigen würde, wenns denn Einfach wäre und es Software gäbe. Aber bis dahin, ist es nicht weiter als ein Bastelsystem.

  • Ich bin immer noch ein Mensch und keine SupportMaschine. Wenn ich zu bestimmter Hard/Soft-ware eine Meinung habe, tut ich des auch und lass es mir von niemanden verbieten.

    Ich wollte dir auch nicht deine Meinung vorschreiben, schließlich habe ich auch ich nur meine Meinung dazu geäußert, daß ich es nicht für geschickt halte Wörter zu verwenden die jemand im Zusammenhang mit seinem vergötterten Betriebsystem ;) als Beleidigung auffassen könnte.

    Wenn du ihm nahe legen wolltest das er zu Lösung seine Problems ein anderes Betriebsystem verwenden müsse, wäre das auch anders gegangen.

    Aber jeder ist letzt endlich nur ein Mensch und läßt sich gerne mitreißen. Auch ich konnte mir nicht verkneifen meine Meinung zu "Bastelsystem" loszuwerden. Sollte ich dich mit Kritik angegriffen habe möchte ich mich dafür entschuldigen und wünsche einen guten Rutsch ins neue Jahr

  • Fangen wir nochmal von vorne an :)

    so hab ich das verstanden...

    zwiebel_sondermann encode input1.avi nach output1.mp4 mit folgender Commandline:

    Code
    ffmpeg -y -i input.avi -aspect 4:3 -s 320x240 [B]-r 25[/B] -vcodec h264 -level 13 -b 300k -flags +loop -flags2 +mixed_refs -me_method 2 -subq 6 -trellis 2 -refs 3 -coder 0 -me_range 16 -g 250 -qmin 10 -qmax 51 -qdiff 4 -acodec aac -ac 2 -ar 44100 -ab 80 output.mp4

    dann macht er das gleiche mit
    input2.avi nach output2.mp4
    input3.avi nach output3.mp4
    input4.avi nach output4.mp4

    da -r 25 ist habe alle output*.mp4 = 25 Frames/Sec.

    diese sollen für sich alleine alle Syncron sein.

    und dann joint er:
    output1.mp4 + output2.mp4 + output3.mp4 + output4.mp4 nach output.mp4

    und dieses ist dann unsycron.

    RICHTIG?
    * wenn ja: wie soll dann es an der Framerate liegen?
    * wenn nein: was denn dann?

  • nur weil alle videos die gleiche framerate haben bedeutet das noch nicht, dass die auch mit dem audio synchron sind ;)

    edit: wenn der delay sprundhaft ansteigt, also zb teil1 ist synchron, nachdem teil2 anfängt ist es desync, nach teil 3 noch mehr desync usw... dann liegt das wahrscheinlich daran, dass ein audio/video delay in jedem file vorhanden ist.

    da avi nicht fähig ist einen audio/video delay korrekt abzubilden, hat man einen hack entwickelt (so wie man es immer macht mit avi) und einfach lauter nullen am anfang des audiostreams angehängt. natürlich sind solche nullen nicht korrekte teile von aac streams und könnten daher vermutlich den desync verursachen

    Ich weiß, daß ich nichts weiß (Sokrates)

  • also egal was ich schon mit ffmpeg & -r gewandelt habe, es war immer syncron. Und wo bitte nimmst Du das Delay her? Es ist doch garkeins angegeben.

    wenn der delay sprunghaft ansteigt (!) dann ist der delay vermutlich schon in den quell avi dateien

    Ich weiß, daß ich nichts weiß (Sokrates)

  • wenn man mit ffmpeg quellen wandelt. Und selbst das Audio 10sec später beginnt würde. Beginnt im Output Film das Audio bei 0 und es ist syncron.


    ABER: endet der VideoStream vor dem AudioStream Encodet ffmpeg genauso weiter. Und der VideoStream Endet vor dem AudioStream wie in der Quelle.

    Daher wirds evt. das Problem herkommen.

  • wenn man mit ffmpeg wieder quellen wandelt. Und wenn, selbst das Audio 10sec später beginnt würde. Beginnt im Output Film das Audio bei 0 und es ist syncron.

    hm, klingt komisch, ist aber wohl so ;)

    dennoch wäre es nicht uninteressant von zwiebel_sondermann zu erfahren ob der delay sprunghaft ansteigt (jeweils bei start eines neuen teils) oder nicht sprunghaft immer stärker zunimmt

    Also die Asynchronität nimmt auf jeden Fall mit zunehmender Anzahl an Videos die ich aneinander merge ab.

    bei zweiterem ist es eine falsche framerate

    bei ersterem ist es entweder das delay problem, dass ich beschrieben habe, oder irgendwas anderes, wobei ich keine ahnung habe was das sein sollte

    Ich weiß, daß ich nichts weiß (Sokrates)

  • Ich denke das liegt am joinen ( Video/Audio Ende) oder der Player Hardware, die das einfach nicht sauber abspielen kann, weil sie den Container nicht richtig versteht.

    für mp4 sollte das keinen unterschied machen. wichtig ist, dass die audio/video streams die gejoint werden mit den exakt gleichen optionen enkodiert wurden

    Ich weiß, daß ich nichts weiß (Sokrates)

  • Fangen wir nochmal von vorne an :)
    so hab ich das verstanden...


    Ja richtig, so wäre die idealste Lösung. Ich lade gerade per Rapidshare zwei Files hoch, die habe ich allerdings über den "workaround" wie in meinen aller ersten Post beschrieben erzeugt. Also mit ffmpeg ein AVI erzeugt, das gemerged, Ton und Video extrahiert und mit mp4box zu einer mp4 gemuxt.

    An der Playerhardware liegt es wohl nicht da das Problem auch schon mit jeglichen Software-Playern auftritt.

    bond: Die Files werden wirklich alle mit den exakt gleichen optionen enkodiert.

    Ich poste gleich mal die beiden links, für die Beispielvideos.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!