当前位置: 首页 > 知识库问答 >
问题:

是否可以使用FFmpeg从一个视频文件夹中剪切“随机”部分,并将它们连接成一个视频?

丁经国
2023-03-14

我意识到这听起来像一个简单的问题,一个以前已经回答过的问题。然而,我似乎找不到一个脚本,可以读取不同长度的视频文件夹,从每个视频复制一个随机片段,并将它们连接成一个单一的视频。

一个例子:

我有一个文件夹,有150个视频,标签为fashion-setlist-01.mp4,fashion-setlist-02.mp4等,每个都超过1小时。我想拉一个随机的10秒节从每个视频,然后随机添加他们在一起,导致一个视频。这可能看起来很容易,只有几个视频,但计划是从潜在的100个视频中读取。应该可以从每个视频中提取多个部分。我想如果视频需要更长,我们可以运行脚本两次以获得更多的片段。

共有1个答案

戈念
2023-03-14

moviepy是最合适的工具(它使用ffmpeg作为后端)。在电影拍摄中,串联视频是微不足道的:

import moviepy.editor
import os
import random
import fnmatch 

directory = '/directory/to/videos/'
xdim = 854
ydim = 480
ext = "*mp4"
length = 10

outputs=[]

# compile list of videos
inputs = [os.path.join(directory,f) for f in os.listdir(directory) if os.path.isfile(os.path.join(directory, f)) and fnmatch.fnmatch(f, ext)]

for i in inputs:

    # import to moviepy
    clip = moviepy.editor.VideoFileClip(i).resize( (xdim, ydim) ) 

    # select a random time point
    start = round(random.uniform(0,clip.duration-length), 2) 

    # cut a subclip
    out_clip = clip.subclip(start,start+length)

    outputs.append(out_clip)

# combine clips from different videos
collage = moviepy.editor.concatenate_videoclips(outputs) 

collage.write_videofile('out.mp4')
 类似资料:
  • 我有每个长度约25分钟的视频,我希望使用python从一开始就缩短几秒钟。 在搜索时,我偶然发现了python的moviepy包。问题是,即使是一个视频也会占用很多时间。下面是我用来从一个视频的开头缩短7秒的代码片段。写入过程消耗大量时间。有没有更好的方法可以使用python剪切视频? 如果我遗漏了任何细节,请告诉我。 非常感谢您的帮助。谢谢

  • 我正在尝试使用FFMPEG合并2个mp4文件。其中一个文件同时具有视频和音频(),而另一个只有音频()。这些文件的名称以以下方式列在名为的文本文件中: 然后执行下面的ffmpeg命令来合并它们。 但是,生成的连接文件只包含。也就是说,如果

  • 如果我尝试对其运行第一个命令行,则输出视频将给出一个错误。 所有的反馈赞赏缩短一个视频,然后添加结尾。 干杯!瑞安

  • 我正在尝试修剪一个75 GB大小、1小时28分钟长的视频 我只想抽出7秒钟 当我尝试这个

  • 问题内容: 我的视频长度分别约为25分钟,我希望从一开始就使用python减少几秒钟的时间。 搜索它时,我偶然发现了适用于python的moviepy软件包。问题是,即使是单个视频也要花费很多时间。以下是我用来从单个视频开始剪切7秒的代码段。写入过程会消耗大量时间。有没有更好的方法使用python剪切视频? 如果我错过了任何细节,请告诉我。 任何帮助表示赞赏。谢谢! 问题答案: 试试看,告诉我们它

  • 用ffmpeg怎么把25个小视频组合成一个大视频? 每个小视频90X160px,没有声音,只有视频 5行5列 一共25个 以下代码来自网络,但是行不通,小视频没有声音,只有画面