创建mp4的FFmpeg变为异步

时间:2017-11-17 14:12:15

标签: video ffmpeg

我有一个将.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

1 个答案:

答案 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