FFMPEG-Concat-Video-Audio wird bei der Wiedergabe nicht synchron
Versucht schon seit einiger Zeit, dies richtig zu machen, und fragt sich, ob jemand schon einmal auf so etwas gestoßen ist.
Ich versuche, einen Ordner zu erstellen, der mehrere Videoclips enthält, einige mit Ton, einige ohne und Fotos, die in ein 10-Sekunden-Video umgewandelt wurden.
Bei Clips, die kein Audio und keine konvertierten Fotos enthalten, wird eine stille MP3-Spur hinzugefügt. (Dies wird auch Clips mit Sound hinzugefügt)
Das Problem tritt auf, wenn eines der konvertierten Fotos oder Videoclips ohne Audiodaten vorhanden ist und das Audiosignal leicht nicht mehr synchron ist, da Sie nur bemerken, wenn Sie jemanden sprechen sehen.
Das Problem tritt auch bei einem Ordner mit nur Videoclips auf, die Ton enthalten, wenn den Videoclips mit Ton nicht auch die stille Spur hinzugefügt wurde.
Merkwürdig ist, dass bei der Wiedergabe des Ausgangsvideos und der Audioübertragung die Synchronisation verloren geht, wenn Sie vorwärts zu der Stelle springen, an der sie nicht synchronisiert wurde. Sie wird jedoch von selbst repariert.
FFMPEG-VERSION-INFO:
ffmpeg version 3.3.4-1~16.04.york0 Copyright (c) 2000-2017 the FFmpeg developers built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.4) 20160609 configuration: --prefix=/usr --extra-version='1~16.04.york0' --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared libavutil 55. 58.100 / 55. 58.100 libavcodec 57. 89.100 / 57. 89.100 libavformat 57. 71.100 / 57. 71.100 libavdevice 57. 6.100 / 57. 6.100 libavfilter 6. 82.100 / 6. 82.100 libavresample 3. 5. 0 / 3. 5. 0 libswscale 4. 6.100 / 4. 6.100 libswresample 2. 7.100 / 2. 7.100 libpostproc 54. 5.100 / 54. 5.100
Hier ist das vollständige Skript, das ich unten verwende:
cd videoClips for i in $(ls);do if [[ $i =~ .*\.zip ]];then echo "ZIP" y=$ echo $y mkdir tmp_$y unzip $i -d tmp_$y cd tmp_$y for i in $(ls);do if [[ $i =~ .*\.jpg$ ]];then ffmpeg -loop 1 -i $i -c:v libx264 -c:a aac -vf scale=1280:-2 -r 30 -t 10 -pix_fmt yuv420p $i.mp4 #Add Silent Audio Track ffmpeg -i $i.mp4 -i ../SilentAudio.mp3 -vcodec copy -shortest $i.AUDIO.mp4 #Remove files rm -rf $i.mp4 rm -rf $i fi done #Add check for F in *.mp4 ; do echo "CHECK -> $F" result=`ffprobe -i $F -show_streams 2>&1 | grep 'Stream #0:1'` echo "$result" #if [[ $result =~ .*aac$ ]];then if [[ $result == *"aac"* ]];then echo "AUDIO FOUND" ffmpeg -i $F -i ../SilentAudio.mp3 -vcodec copy -shortest $F.FIN.mp4 rm -rf $F else #echo "AUDIO NOT FOUND" ffmpeg -i $F -i ../SilentAudio.mp3 -vcodec copy -shortest $F.FIN.mp4 rm -rf $F fi done for F in *.mp4 ; do ffmpeg -i $F -c copy -bsf:v h264_mp4toannexb -f mpegts $(echo $F | perl -pe 's/mp4$/ts/g'); done ffmpeg -i "concat:$(ls -1v *.ts | perl -0pe 's/\n/|/g;s/\|$//g')" -qscale 0 -c copy -bsf:a aac_adtstoasc $y.mp4 cd ../ fi done
Ich habe das Gefühl, es könnte etwas mit der Audio-Bitrate zu tun haben? Oder möglich die Zeitstempel. Es wurde auch versucht, Apad hinzuzufügen. Dies schien jedoch das Synchronisierungsproblem zu verschlimmern.
0 Antworten auf die Frage
Verwandte Probleme
-
6
Wie kann ich Rauschen aus einer Audioaufnahme entfernen?
-
16
Wie bleiben iTunes-Bibliotheken synchron?
-
12
Wie kann ich Ordner zwischen mehreren Computern über mein Heimnetzwerk synchronisieren?
-
8
Gibt es Passwort-Manager für iPhone und Windows XP?
-
3
Ist es möglich, eine One-Way-Synchronisation der iPhone-Sprachnachrichten mit einem PC durchzuführen...
-
3
Google-Kontakte und Mac OS X-Adressbuch
-
8
Wie synchronisieren Sie Google Kalender und iCal?
-
3
Windows Media Center (Vista): Add-On oder Software zum Schneiden von TV-Aufnahmen?
-
1
Wie kann man in Winamp eine Ansicht erstellen, in der jeder Künstler, der nur einen Song hat, ausges...
-
3
Videobearbeitung mit ATI-Karten