我想将大约 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
当我运行它时它可以工作,但是我有一个音频错误,其中一些剪辑(通常成对出现)其中一个剪辑是无声的,然后下一个剪辑播放上一个剪辑的音频,但第一个剪辑的音频较短,音频将返回第二个剪辑音频在正确的时间,所以在我看来,音频是重叠的并导致它静音,然后当重叠停止时它会恢复正常。任何解决这些问题的建议、额外信息或其他事情的建议都非常感谢。
最佳答案
剪辑=连接视频剪辑(新路径,方法=“撰写”)
clips.write_videofile("C:/Users/unknown/Desktop/movie/temp.mp4",preset='ultrafast',thread=8,codec='libx264')
关于python-3.x - 连接 mp4 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62478998/