我有一个将.mpg文件转换为.mp4文件的命令。 但不知何故,mp4文件变得不同步,音频延迟为0.5秒。
因为mpg文件是同步的,所以如何解决这个问题。
ffmpeg -i test.mpg -deinterlace -r 25 -s 1024x576 -pix_fmt yuv420p -vcodec libx264 -preset slow -vprofile high -b:v 1350k -minrate 1400k -maxrate 1400k -bufsize 1400k -trellis 2 -x264opts nal-hrd=cbr -acodec mp3 -ab 192k -async 1 test.mp4
更新
我的错误上面的命令工作正常,我有以下命令从给定的时间戳创建一个m2v和mp2文件,之后我将这两个文件合并到一个变为异步的mp4文件。
ffmpeg -v quiet -y -i fulltest.m2v -c:v copy -ss 00:00:00 -to 00:00:30 -sn test.m2v
ffmpeg -v quiet -y -i fulltest.mp2 -c:v copy -ss 00:00:00 -to 00:00:30 -sn test.mp2
ffmpeg -i test.m2v -i test.mp2 -target pal-dvd -vcodec copy -acodec copy fulltest.mpg
ffmpeg -i fulltest.mpg -deinterlace -r 25 -s 1024x576 -pix_fmt yuv420p -vcodec libx264 -preset slow -vprofile high -b:v 1350k -minrate 1400k -maxrate 1400k -bufsize 1400k -trellis 2 -x264opts nal-hrd=cbr -acodec mp3 -ab 192k fulltest.mp4
答案 0 :(得分:1)
使用
ffmpeg -ss 0 -t 30 -i fulltest.m2v -ss 0 -t 30 -i fulltest.mp2
-vf yadif,scale=1024:576,format=yuv420p -r 25
-vcodec libx264 -preset slow -vprofile high -b:v 1350k -minrate 1400k -maxrate 1400k -bufsize 1400k
-trellis 2 -x264opts nal-hrd=cbr
-acodec mp3 -ab 192k fulltest.mp4
您可以跳过临时文件。 -t
选项是持续时间,而不是-to
端点。所以,计算持续时间,例如从10s到17s是7秒。
保留临时文件
ffmpeg -v quiet -y -i fulltest.m2v -ss 00:00:00 -to 00:00:30 -vf yadif,scale=1024:576,format=yuv420p -r 25
-vcodec libx264 -preset slow -vprofile high -b:v 1350k -minrate 1400k -maxrate 1400k -bufsize 1400k
-trellis 2 -x264opts nal-hrd=cbr
-an -sn tempvideo.mp4
ffmpeg -v quiet -y -i fulltest.mp2 -c:a copy -ss 00:00:00 -to 00:00:30 -sn tempaudio.mp2
ffmpeg -i tempvideo.mp4 -i tempaudio.mp2 -c:v copy -c:a mp3 -b:a 192k fulltest.mp4