2017-10-16 99 views
0

我编写了代码将几个音频文件与1个图像合并到WebM视频中。 (audio1与默认jpg结合使用,audio2与默认jpg结合使用等)。ffmpeg - 将图像和音频合成为视频后的视频比音频更长

问题是,在此之后,视频长度比音频长度高25秒(所以音频在视频结束前25秒)。

有没有办法在音频完全相同的时间停止视频?下面是我使用的代码(我推出一个BAT命令文件)

@echo off 
for %%F in (*.ogg) do ( 
    ffmpeg -loop 1 -framerate 1 -i "default.jpg" -i "%%F" -acodec libopus -b:a 384k -vcodec libvpx-vp9 -lossless 1 -speed 4 -vf scale=1280x720 -shortest "%%F.webm" 
) 
+0

任何帮助?很重要。 –

+0

这是一个错误,请参阅https://trac.ffmpeg.org/ticket/5456 – Mulvya

+0

我已经看到了,它没有帮助。我不会使用2012版的ffmpeg ..那么是否可以使用ffmpeg删除每个创建媒体的最后25秒的视频?就像将每个音频与特定图像一起制作成多个视频,然后移除最后25秒? –

回答

0

好吧,这是各种各样的解决方案:

首先,运行你的原始命令

ffmpeg -loop 1 -framerate 1 -i "default.jpg" -i "%%F" 
     -acodec libopus -b:a 384k -vcodec libvpx-vp9 -lossless 1 -speed 4 -vf scale=1280x720 -shortest temp.webm 

然后

ffmpeg -i temp.webm -c copy -fflags shortest -max_interleave_delta 10000000000 -flush_packets 0 "%%F.webm" 

这会产生比音频持续时间长1秒的文件。

0

谢谢!备用解决方案(现已解决),替换-b:“复制”384k的作品。当您保持音频源质量时,创建具有组合图像/音频的媒体似乎具有同步音频/视频长度,而无需重新编码。这是问题所在。