标签: moviepy

使用opencv和python或moviepy提取图像

我有一个约8000帧的视频(.mp4).我有一个csv告诉我在视频中需要抓住每一帧的时间,以及要抓取的帧数. number_of_frames in video = 8000 times是一个数组[0.004, 0.005, ... 732s] ,最后一次给出的数据是732s.因此FPS = 8000 / 732 = ~10

我希望能够在特定时间从视频中提取图像帧.然后将这些图像路径写入.csv文件.

我尝试了多种方法:第一种方法(openCV):

with open('./data/driving.csv', 'w') as csvfile:
fieldnames = ['image_path', 'time', 'speed']
writer = csv.DictWriter(csvfile, fieldnames = fieldnames)
writer.writeheader()
vidcap = cv2.VideoCapture('./data/drive.mp4')
for idx, item in enumerate(ground_truth):
    # set video capture to specific time frame
    # multiply time by 1000 to convert to milliseconds
    vidcap.set(cv2.CAP_PROP_POS_MSEC, item[0] * 1000)
    # read in the image
    success, image = vidcap.read()
    if success:
        image_path = …
Run Code Online (Sandbox Code Playgroud)

python video opencv extraction moviepy

4
推荐指数
1
解决办法
4610
查看次数

在VideoFileClip函数中获取"OSError:[WinError 6]句柄无效"

我正在使用python导入moviepy库创建一个程序,但收到以下错误:

from moviepy.editor import VideoFileClip

white_output = 'videos/testVideo.mp4'
clip1 = VideoFileClip("videos/testVideo.mp4")

OSError                                   Traceback (most recent call last)
<ipython-input-40-f49638833528> in <module>()
      1 white_output = 'videos/testVideo.mp4'
----> 2 clip1 = VideoFileClip("videos/testVideo.mp4")
      3 white_clip = clip1.fl_image(process_image) #NOTE: this function expects color images!!
      4 get_ipython().magic('time white_clip.write_videofile(white_output, audio=False)')

C:\Users\hp pc\Anaconda3\envs\lib\site-packages\moviepy\video\io\VideoFileClip.py in __init__(self, filename, has_mask, audio, audio_buffersize, audio_fps, audio_nbytes, verbose)
     53         # Make a reader
     54         pix_fmt= "rgba" if has_mask else "rgb24"
---> 55         reader = FFMPEG_VideoReader(filename, pix_fmt=pix_fmt)
     56         self.reader = reader …
Run Code Online (Sandbox Code Playgroud)

python moviepy jupyter-notebook

4
推荐指数
2
解决办法
2万
查看次数

MoviePy:连接视频剪辑会导致最终视频出现奇怪的故障

有没有一种方法可以成功地将任何剪辑拼接在一起,以防止出现奇怪的故障?我把.mp4较小的.mp4文件放在一起,最后得到了一个带有奇怪故障的视频。我通过 Sublime Text 3 在 Windows 10 上运行 Python 3.6.1。我使用 MoviePy 进行连接。

编码:

from moviepy.editor import VideoFileClip, concatenate_videoclips
import os.path

path = "C:/Users/blah/videos/out/"

cliparray = []

for filename in os.listdir(path):
    cliparray.append(VideoFileClip(path + filename))

final_clip = concatenate_videoclips(cliparray)

final_clip.write_videofile(path + "concatenatedvideo.mp4", codec = "libx264")
Run Code Online (Sandbox Code Playgroud)

奇怪的故障:

  1. 其中一个剪辑变成了一个由较小剪辑组成的 3x3 网格。
  2. 另一个音频与视频不对齐
  3. 另一个比正常情况更快。

python ffmpeg codec moviepy

4
推荐指数
1
解决办法
2309
查看次数

使用python进行视频编辑:向有声视频添加背景音乐

我想在python的视频文件(.mp4)中添加背景音乐。

我浏览了网络,并使用moviepy for python做了一些技巧,但是我没有找到一种将背景音乐添加到已经包含音乐的视频文件中的单一方法。任何想法如何做到这一点?

编辑以下Anil_M的评论: 谢谢,不,我没有看过这个特定的线程,尽管我了解ffmpeg,但看起来又像是一种将没有音频的视频与音轨合并的方法。

因此,现在我将尝试从视频中提取音频,与另一个音频文件合并,然后与视频合并。也许这不是最好的方法,但至少可以解决有关合并2条音轨的问题。

python audio movie moviepy

4
推荐指数
1
解决办法
3395
查看次数

使用 python / moviepy 将没有帧的 mp4 文件转换为 mp3

所以我想做的是将使用 pytube 下载 YouTube 视频获得的 mp4 文件转换为使用 moviepy 的 mp3 文件。但是,这些 mp4 文件不包含KeyError: 'video_fps'在 ffmpeg_reader 中引发的任何帧。

是否可以使用 moviepy 来做到这一点,还是我需要使用不同的工具?我想我也可以只下载带有视频的 mp4 文件,但这会浪费资源,尤其是对于大型播放列表。


这是我使用的代码:

from moviepy.video.io.VideoFileClip import VideoFileClip
import pytube
    
def downloadPlaylist(url):
        playlist = pytube.Playlist(url)
    
        for video in playlist.videos:
            filename = video.streams.get_audio_only().download()
            clip = VideoFileClip(filename)
            clip.audio.write_audiofile(filename[:-4] + ".mp3")
            clip.close()
Run Code Online (Sandbox Code Playgroud)

python mp3 mp4 moviepy pytube

4
推荐指数
1
解决办法
3836
查看次数

从 YouTube 视频中提取音频

我正在尝试从视频中提取音频pytube,然后将其转换为wav格式。为了从视频中提取音频,我尝试使用moviepy,但我找不到使用以下命令从字节打开视频文件的方法VideoFileClip。我不想继续保存文件然后阅读它们。

我的尝试:

from pytube import YouTube
import moviepy.editor as mp

yt_video = BytesIO()
yt_audio = BytesIO()

yt = YouTube(text)
videoStream = yt.streams.get_highest_resolution()
videoStream.stream_to_buffer(yt_video) # save video to buffer

my_clip = mp.VideoFileClip(yt_video) # processing video 

my_clip.audio.write_audiofile(yt_audio) # extracting audio from video
Run Code Online (Sandbox Code Playgroud)

python wav video-processing moviepy pytube

4
推荐指数
1
解决办法
3826
查看次数

使用moviepy和ffmpeg写入视频文件时出错

我第一次使用 moviepy 库。我有一个大约 7 小时长的视频片段,我想将其剪辑成小片段。我有一个开始和结束时间的列表。

video = VideoFileClip("videoFile.mp4")
clips = []
for cut in cuts:
   clip = video.subclip(cut[0], cut[1])
   clips.append(clip)
clips
clip = video.subclip("7:32:18", "7:38:38")
clips.append(clip)
for clip, title in zip(clips, title_list):
 clip.write_videofile(title + '.mp4', threads=8, fps=24, audio=True, codec='libx264',preset=compression)
video.close()
Run Code Online (Sandbox Code Playgroud)

Clips[] 包含剪辑的开始和结束时间。我也有一个从 YouTube 上抓取的标题列表。我没有在这里列出这两个列表,但一个小例子可能是:

cuts = [('0:00', '2:26'),
 ('2:26', '5:00'),
 ('5:00', '7:15'),
 ('7:15', '10:57'),
 ('10:57', '18:00'),
 ('18:00', '18:22'),
 ('18:22', '19:57'),
 ('19:57', '20:37'),
 ('20:37', '28:27'),
 ('28:27', '40:32'),
 ('40:32', '49:57'),...
title_list = ['Introduction (What is Todoist?), tech stack talk', 'Showing the final …
Run Code Online (Sandbox Code Playgroud)

python ffmpeg moviepy

4
推荐指数
1
解决办法
4319
查看次数

如何解决 MoviePy 的大量内存使用问题?

我正在尝试使用 MoviePy 从大量图像制作视频。该方法适用于少量图像,但对于大量图像,该过程被终止。添加了大约 500 个图像后,Python 进程使用了​​大约一半的可用易失性内存。还有更多的图像。

我应该如何解决这个问题?我希望处理完成,我不介意处理时间是否长一点,但如果我能以某种方式限制内存和 CPU 使用情况会很好。使用当前方法,机器在处理时几乎无法使用。

代码如下:

import os
import time
from   moviepy.editor import *

def ls_files(
    path = "."
    ):
    return([fileName for fileName in os.listdir(path) if os.path.isfile(
        os.path.join(path, fileName)
    )])

def main():

    listOfFiles = ls_files()
    listOfTileImageFiles = [fileName for fileName in listOfFiles \
        if "_tile.png" in fileName
    ]
    numberOfTiledImages = len(listOfTileImageFiles)

    # Create a video clip for each image.
    print("create video")
    videoClips = []
    imageDurations = []
    for imageNumber in range(0, numberOfTiledImages):
        imageFileName = str(imageNumber) + …
Run Code Online (Sandbox Code Playgroud)

python memory kill moviepy

3
推荐指数
1
解决办法
1852
查看次数

MoviePy错误:FFMPEG权限错误

我在 Ubuntu 14.04 系统上通过 Django 应用程序使用 Moviepy。当它尝试写入视频文件时,它给我权限错误。以下是错误的详细信息:

MoviePy 错误:FFMPEG 在写入文件 test1TEMP_MPY_wvf_snd.mp3 时遇到以下错误:

test1TEMP_MPY_wvf_snd.mp3:权限被拒绝

它似乎对尝试写入临时文件的目录没有正确的权限。

我已在 /tmp 目录中设置了 777,但没有成功。请帮我解决这个问题。

谢谢

python apache django ffmpeg moviepy

3
推荐指数
1
解决办法
3654
查看次数

输出视频没有声音

当我在 Moviepy 中连接视频时,输出文件中没有声音,我尝试使用各种参数但没有任何线索。

这是我的代码:

import moviepy.editor as mp
import os

dir_path = os.path.dirname(os.path.realpath(__file__))
clip1 = mp.VideoFileClip("V1.mp4")
clip2 = mp.VideoFileClip(dir_path+"\\V2.mp4")
clip3 = mp.VideoFileClip(dir_path+"\\V3.mp4")

output_movie = 'new_movie1.mp4'

final_clip = mp.concatenate_videoclips([clip1,clip2,clip3])

final_clip.write_videofile(output_movie, remove_temp=False, bitrate="5000k",audio=True, audio_codec="aac",codec='mpeg4')
Run Code Online (Sandbox Code Playgroud)

我试过 codec="libx264"

python audio video python-3.x moviepy

3
推荐指数
1
解决办法
1601
查看次数