我编写的代码将多个音频文件与1个图像组合成WebM视频。 (audio1结合默认jpg,audio2结合默认jpg等)。
问题在于,此后视频长度比音频长度高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)
好的,这是一种解决方案:
首先,运行原始命令
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秒的文件。
答案 1 :(得分:0)
谢谢!替代解决方案(现在已经解决了),用“复制”替代-b:384k工作。当您保持音频源质量不变时,创建具有组合图像/音频的媒体似乎具有同步音频/视频长度,而无需重新编码。这就是问题所在。