我遇到问题,为了连接视频,它会丢失从上一个视频开始的音频同步和音频。
我试过以下两个链接/所以Mulvya的答案,但没有一个工作:(
这是我正在尝试的代码:
1:重新编码文件a(1):
ffmpeg.exe -i "f:\1.avi" -af apad -vf scale=1280:720 -crf 15.0 -vcodec libx264 -acodec aac -ar 48000 -b:a 192k -coder 1 -rc_lookahead 60 -threads 0 -shortest -avoid_negative_ts make_zero -fflags +genpts 01.mp4
2:重新编码文件b(2):
ffmpeg.exe -i "f:\2.mp4" -af apad -vf scale=1280:720 -crf 15.0 -vcodec libx264 -acodec aac -ar 48000 -b:a 192k -coder 1 -rc_lookahead 60 -threads 0 -shortest -avoid_negative_ts make_zero -fflags +genpts 02.mp4
3:现在使用以下命令联系:
ffmpeg.exe -f concat -safe 0 -i "f:\files.txt" -c copy test.mp4
但音频未与视频同步;(
我还在dropbox上传了视频(以及输出):
Video Sync Issue Source And Result Files
所以,任何帮助,如何使音频与视频完美同步将是伟大的:)
答案 0 :(得分:1)
另一个论坛上的其他人帮我找到了这个问题。所以,我把它作为答案发布在这里,以便其他人可以得到帮助。
我担心相同的帧大小,音频和视频编解码器要正确连接,但我忘了帧速率。
第一个样本视频(在我的问题中提到)帧率为12,而第二个视频帧率为25;这就是造成同步问题的原因。
现在,我已将帧速率25设置为这两个视频(-r 25),它的工作方式与魅力相同:)
下面的是完整的转换代码:
ffmpeg.exe -i "f:\1.avi" -r 25 -af apad -vf scale=1280:720 -crf 15.0 -vcodec libx264 -acodec aac -ar 48000 -b:a 192k -coder 1 -rc_lookahead 60 -threads 0 -shortest -avoid_negative_ts make_zero -fflags +genpts 01.mp4
希望它能在不久的将来帮助像我这样的人。
最好的问候
答案 1 :(得分:0)
用于同步音频和音频的其他解决方案视频
在输入文件中使用-bsf:v h264_mp4toannexb
ffmpeg.exe -i "1.avi" -af apad -vf scale=1280:720 -crf 15.0 -vcodec libx264 -acodec aac -bsf:v h264_mp4toannexb -ar 48000 -b:a 192k -coder 1 -rc_lookahead 60 -threads 0 -shortest -avoid_negative_ts make_zero -fflags +genpts output1.flv
和第二个文件相同
ffmpeg.exe -i "2.avi" -af apad -vf scale=1280:720 -crf 15.0 -vcodec libx264 -acodec aac -bsf:v h264_mp4toannexb -ar 48000 -b:a 192k -coder 1 -rc_lookahead 60 -threads 0 -shortest -avoid_negative_ts make_zero -fflags +genpts output2.flv
然后文件可以连接在一起
ffmpeg -f concat -safe 0 -i concat.txt -c copy -bsf:a aac_adtstoasc final.flv
其中concat.txt文件包含
file 'output1.flv'
file 'output2.flv'