Frage Warum, wenn zwei Videos mit ffmpeg (5s und 33s) zusammengefügt werden, wird 4m34s Video in Zeitlupe erzeugt


Ich entwickle einen Dienst, um ein Video (meins) mit einem anderen von einem Benutzer zu verbinden (er / sie lädt es hoch) und kehrt zum Benutzer zurück.

Zuerst habe ich versucht zu verwenden Concat demuxer weil ich Videos nicht neu codieren möchte, wenn es nicht benötigt wird. Es wird angenommen, dass Videos mit dem gleichen Codec fast sofort aufgenommen werden sollten.

Benutzer können verschiedene Videos mit verschiedenen Codecs hochladen, so dass ich dieses Video in einen bestimmten Codec konvertieren muss. Das Problem, das ich jetzt habe, ist, dass selbst Videos mit dem gleichen Codec Concat nicht gut funktionieren, also würde ich gerne wissen, was sonst noch benötigt wird.

Meine Liste.txt

file './myVideo1.mp4'
file './userVideo1.mp4'

Befehl:

ffmpeg -f concat -i mylist.txt -c copy mergedVideo.mp4

Es hat nicht funktioniert, weil Es gab verschiedene Audio-Codecs (pcm_u8 vs aac) also habe ich konvertiert myVideo1 Audio zu AAC mit;

ffmpeg -i myVideo1.mp4 -map 0:0 -map 0:1 -acodec libfaac -vcodec copy myVideo1_aac.mp4

Dies war eine Zwischenaufgabe, ich erwähne es, weil Ich hatte eine Warnung:

Codec für Stream 0 verwendet keine globalen Header sondern Containerformat   erfordert globale Header

An dieser Stelle habe ich zwei Videos mit dem gleichen Audio und Codec, lassen Sie uns Details sehen: myVideo1_aac.mp4 userVideo1.mp4 info

Ich habe versucht Videos wie zuvor zu concat ...

ffmpeg -f concat -i mylist.txt -c copy mergedVideo.mp4

... und Es wurden keine Fehler angezeigt, aber wenn ich das Video spielte, sah ich das erste Video normal, aber 2. war super langsam, nur wenige Frames pro Sekunde, in der Tat mergedVideo.mp4 hat 4 Minuten und 34 Sekunden, wenn es 39s (5.38 + 33.79) haben sollte.

Hier ist die movedVideo.mp4 -Info: enter image description here

Kannst du mir sagen, was falsch ist?


1
2017-07-30 09:34


Ursprung


Ihre Videos werden mit unterschiedlichen Bildwiederholraten (25 und 27.54) und mit unterschiedlichen tbr / tbn / tbc-Dateien wiedergegeben. Ich würde vorschlagen, dass du dein zweites Video neu codierst, damit es mit dem ersten Video übereinstimmt. - Ely
Kennst du den Befehl, es zu tun? Ich änderte die Bildrate, aber ich muss noch tbr / tbn / tbc ändern. Vielen Dank - Mikel


Antworten: