【发布时间】:2020-07-17 23:05:14
【问题描述】:
我想将大约 15 个 45 秒的剪辑首尾相连。这些剪辑可以具有不同的分辨率(大多数是 1080 或 720),但都是 mp4 文件。
我都试过了
concatenate_videoclips(clips,method='compose')
concatenate_videoclips(clips,method='chain')
来自moviepy,但这些都对我没有好处,因为“撰写”依赖于所有文件的分辨率相同,而它们不是,并且链需要太长时间并且有时会导致错误。
我也尝试过使用 ffmpeg:
ffmpeg -i clip1.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts intermediate1.ts
对于每个剪辑,然后连接:
ffmpeg -i "concat:intermediate1.ts|intermediate2.ts|...|intermediate15.ts" -c copy -bsf:a aac_adtstoasc output.mp4
但我认为这种方法似乎会导致音频问题,因为更改文件类型时会进行无损压缩。整个视频中会周期性地出现这些奇怪的音频停顿。
我也试过ffmpeg
ffmpeg -f concat -safe 0 -i clipsfile.txt -c copy output.mp4
clipsfile.txt 的样子
file clip1.mp4
file clip2.mp4
...
file clip15.mp4
当我运行它时,它可以工作,但我有一个音频错误,其中一些剪辑(通常成对出现)其中一个剪辑是无声的,然后下一个剪辑播放前一个剪辑的音频,但第一个剪辑的音频会更短在正确的时间返回第二个剪辑音频,所以在我看来,音频是重叠的并导致它静音,然后当重叠停止时它会恢复正常。
任何解决这些问题的建议、额外信息或其他要做的事情的建议都非常感谢。
【问题讨论】:
标签: python-3.x audio video ffmpeg moviepy