我编写了将几个音频文件与 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"
)
最佳答案
好的,这是一种解决方案:
首先,运行您的原始命令
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 秒的文件。
关于audio - ffmpeg - 将图像和音频组合成视频后,视频比音频长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46779073/