KeepMoving428 发表于 2021-10-27 22:19

如何使用python+ffmpeg将几十个视频两两组合成新的视频文件?

先给出代码,大佬们看看,能否优化一下,或者改写成批处理的bat脚本文件也行
# encoding=utf-8

import os

import itertools


def randomMerge(ffmpeg_path, videos_path, concat_list_path):

    # 定义一个数组

    L = []



    # 访问 videos 文件夹 (假设视频都放在这里面)

    for root, dirs, files in os.walk(videos_path):

      # 按文件名排序

      files.sort()

      # 遍历所有文件

      for file in files:

            # 如果后缀名为 .mp4

            if os.path.splitext(file) == '.mp4':

                # 拼接成完整路径

                filePath = os.path.join(root, file)

                # 添加到数组

                L.append(filePath)



    # 计算排列组合(两两组合)

    pp = list(itertools.permutations(list(L), 2))

    total = len(pp)

    for i in range(0, total):

      # print(pp)

      concat_file_path = concat_list_path + str(i) + ".txt"

      # print(concat_file_path)

      with open(concat_file_path, 'a', encoding='utf-8') as f:

            video_one = "file " + "'" + pp + "'" + "\n"

            video_two = "file " + "'" + pp + "'" + "\n"

            f.write(video_one)

            f.write(video_two)

      result_file_path = videos_path + "\\random\\" + str(i) + ".mp4"

      # print(result_file_path)

      # 拼接好运行ffmpeg的命令行语句

      cmd = ffmpeg_path + " -f concat -safe 0 -i " + concat_file_path + " -c copy " + result_file_path

      # print(cmd)

      # 调用cmd命令行执行ffmpeg拼接视频

      os.popen(cmd)


def main():

    #使用前,要先配置好ffmpeg的环境变量,并删除videos_path中txt文件夹下的所有文件

    ffmpeg_path = "D:\\FFmpeg\\bin\\ffmpeg"

    videos_path = "C:\\Users\\Yan\\Desktop\\videos"

    concat_list_path = videos_path + "\\txt\\"

    mp4_flie_path = videos_path + "\\mp4"



    # 从多个视频中,每次选2个视频合并,两两组合

    # randomMerge(ffmpeg_path, videos_path, concat_list_path)



if __name__ == '__main__':

    main()



细水流长 发表于 2021-10-27 23:05

shengforever 发表于 2021-10-28 08:50

你这是要搞视频伪原创么{:301_975:}

xuexixiaobai 发表于 2021-10-28 09:32

是不是要批量加片头啊

ynboyinkm 发表于 2021-10-28 10:20

收藏了,学习学习python

KeepMoving428 发表于 2021-10-29 17:01

shengforever 发表于 2021-10-28 08:50
你这是要搞视频伪原创么

是的啊,就是要批量搞伪原创视频。

KeepMoving428 发表于 2021-10-29 17:02

xuexixiaobai 发表于 2021-10-28 09:32
是不是要批量加片头啊

不是的。

KeepMoving428 发表于 2021-10-29 17:06

细水流长 发表于 2021-10-27 23:05
一次全部合并不好吗,为啥要两两组合?

两两组合,相当于在剪映、Pr这种工具里面做混剪。我做的就是类似于批量混剪。
页: [1]
查看完整版本: 如何使用python+ffmpeg将几十个视频两两组合成新的视频文件?