python-3.x - 连接 mp4 文件

标签 python-3.x audio video ffmpeg moviepy

我想将大约 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/

相关文章:

linux - 如何在 Linux 中播放 MIDI 输入

android - 尝试在Android上播放视频时出现Resources $ NotFoundException?

c# - 使用原始套接字流式传输视频

Android设置视频分辨率

python - 当多个子进程使用 `queue.Queue`进行访问时, `concurrent.futures.ProcessPoolExecutor`是线程安全的吗?

python - 如何在 pandas to_csv() 中设置自定义分隔符?

python - 如果从函数内部执行,带有 "apply_async"的多处理池不会执行任何操作

javascript - 在另一个JavaScript函数中调用JavaScript函数

python - 在 Python (3.x) 中使用不同的参数连续多次调用函数?

audio - 在 Fortran 90/95 中生成声音/蜂鸣声