FFMPEG Concat видео аудио не синхронизируется при воспроизведении через
Некоторое время пытался сделать это правильно, задаваясь вопросом, сталкивался ли кто-нибудь с чем-то подобным раньше.
Я пытаюсь объединить папку с несколькими видеоклипами, некоторые со звуком, некоторые без и с фотографиями, которые были преобразованы в 10-секундное видео.
К клипам, в которых нет звука и преобразованных фотографий, добавлена тихая дорожка mp3. (Это также добавляется в клипы со звуком)
Эта проблема возникает, когда присутствует одна из конвертированных фотографий или видеоклипов без звука, и звук начинает очень медленно синхронизироваться, поскольку вы замечаете только то, что кто-то говорит.
Проблема также возникает с папкой, в которой есть только видеоклипы со звуком, если для видеоклипов со звуком также не добавлена беззвучная дорожка.
Что странно, так это то, что при воспроизведении выходного видео и звука происходит несинхронизация, если вы переходите к тому месту, где оно впервые вышло из синхронизации, оно само исправляется, но затем снова не синхронизируется, если воспроизводится с самого начала.
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
Вот полный скрипт, который я использую ниже:
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
У меня есть ощущение, что это может быть связано с аудио битрейтом? Или возможные метки времени. Также попытался добавить apad, но это, похоже, усугубило проблему синхронизации.
0 ответов на вопрос
Похожие вопросы
-
6
Как я могу удалить шум из аудиозаписи?
-
16
Как синхронизировать библиотеки iTunes?
-
12
Как я могу синхронизировать папки между несколькими компьютерами в моей домашней сети?
-
-
8
Есть ли менеджеры паролей для iPhone и Windows XP?
-
3
Можно ли выполнить одностороннюю синхронизацию голосовых заметок iPhone с ПК?
-
3
Контакты Google и адресная книга Mac OS X
-
8
Как синхронизировать Календарь Google и iCal?
-
3
Windows Media Center (Vista): дополнение или программное обеспечение для обрезки телевизионных запис...
-
1
Как построить представление в winamp, где исключен каждый исполнитель, у которого есть только 1 песн...
-
3
Обработка видео с картами ATI