我有一个将 .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
最佳答案
利用
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
关于video - FFmpeg 创建 mp4 变成异步的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47352605/