moviepy太慢了,ffmpeg似乎快一点
1.从github下载安装
https://github.com//BtbN/FFmpeg-Builds/releases
下载了ffmpeg-master-latest-win64-gpl-shared.zip
直接解压到某个目录中,如:D:\ffmpeg ,并添加环境变量,将 D:\ffmpeg 添加到path变量中(win10) 在命令行运行 ffmpeg ,可以了 2. 在Python中安装ffmpeg 看到了两个库:ffmpeg-python 和 ffmpy ,在pypi上看了一下,两个库最近都有更新 选择用 pip install ffmpy 文档在:https://ffmpy3.readthedocs.io/en/latest/ 简单需求直接执行ffmpeg命令就好。 如: ffmpeg -i input1.mp4 -i input2.mp4 -filter_complex "[0:v:0][0:a:0][1:v:0][1:a:0]concat=n=2:v=1:a=1[outv][outa]" -map "[outv]" -map "[outa]" output.mp4 实现了对两个mp4的快速合并。参数解释如下:
-
-i input1.mp4 -i input2.mp4
: 输入两个视频文件。 -
-filter_complex
: 指定复杂的过滤操作。 -
[0:v:0][0:a:0][1:v:0][1:a:0]concat=n=2:v=1:a=1[outv][outa]
: 将两个视频流和音频流按顺序合并,n=2
表示有两个输入流,v=1
表示只有视频流被合并,a=1
表示只有音频流被合并,[outv]
和[outa]
是最终合并后的视频流和音频流的别名。 -
-map "[outv]" -map "[outa]"
: 指定输出文件应当包含哪些流。 -
output.mp4
: 输出文件的名称。
确保两个视频片段的分辨率、帧率等参数是兼容的,否则合并时可能会出错。如果视频间想要有过渡效果或者同步问题,可能需要更复杂的命令或使用其他工具来处理。
如果是合并更多的mp4,可以:
ffmpeg -f concat -i input.txt -c copy output.mp4
其中input.txt
是一个文本文件,包含了要合并的视频文件的列表,格式如下:
这个命令会将video1.mp4
, video2.mp4
, video3.mp4
等视频文件按顺序合并成一个output.mp4
文件,同时复制编码信息,以保持视频质量。
如果输入视频的编码不同,或者你想对输出视频进行重新编码,可以去掉-c copy
选项,并可以指定新的编码器和参数。例如,使用H.264编码器和1000k的比特率:
参考:
https://blog.csdn.net/liuyuinsdu/article/details/114646684
https://blog.csdn.net/m0_60565784/article/details/130776330
https://blog.csdn.net/weixin_64670512/article/details/127938350
https://blog.csdn.net/qq_35164554/article/details/124866110
https://blog.csdn.net/yinshipin007/article/details/130996475
https://blog.csdn.net/cheungxiongwei/article/details/130591483
标签:ffmpeg,python,音视频,mp4,csdn,https,article,net From: https://www.cnblogs.com/pu369/p/18089787