标签: moviepy

安装后找不到pip命令

我被一个问题困住了。我有一个 Python 脚本,我想在我的 OSX 上运行它,但似乎我遇到了很多问题。

要运行脚本,我应该同时安装 Python 和 Moviepy。

要安装 Moviepy,我使用了以下命令:

sudo pip install moviepy
Run Code Online (Sandbox Code Playgroud)

回应是:

sudo: pip: command not found
Run Code Online (Sandbox Code Playgroud)

所以我尝试使用以下命令安装 pip:

sudo easy_install pip
Run Code Online (Sandbox Code Playgroud)

并得到了这个答案:

Searching for pip
Best match: pip 9.0.1
Processing pip-9.0.1-py2.7.egg
pip 9.0.1 is already the active version in easy-install.pth

Using /Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg
Processing dependencies for pip
Finished processing dependencies for pip
Run Code Online (Sandbox Code Playgroud)

我试图再次运行

sudo pip install moviepy
Run Code Online (Sandbox Code Playgroud)

但我还是遇到了那个问题。我该做什么?

更新:

在 OSX 上不确定,但你能试试 pip3 – Rehan Azher 23 分钟前

sudo pip3 install moviepy
Password:
sudo: pip3: command …
Run Code Online (Sandbox Code Playgroud)

python macos pip moviepy

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

为什么 VideoClip 写入视频文件时帧会发生变化?

我写了以下代码:

from moviepy.editor import *
from PIL import Image
clip= VideoFileClip("video.mp4")
video= CompositeVideoClip([clip])
video.write_videofile("video_new.mp4",fps=clip.fps)
Run Code Online (Sandbox Code Playgroud)

然后为了检查帧是否已更改以及如果更改,哪个函数更改了它们,我检索了“clip”、“video”和“video_new.mp4”的第一帧并比较了它们:

clip1= VideoFileClip("video_new.mp4")
img1= clip.get_frame(0)
img2= video.get_frame(0)
img3= clip1.get_frame(0)
a=img1[0,0,0]
b=img2[0,0,0]
c=img3[0,0,0]
Run Code Online (Sandbox Code Playgroud)

我发现 a=24,b=24,但 c=26....事实上,在运行数组比较循环时,我发现“img1”和“img2”相同,但“img3”不同。我怀疑函数 video.write_videofile 负责数组的更改。但我不知道为什么......任何人都可以向我解释这一点,并建议一种在不改变帧的情况下编写剪辑的方法吗?

'VideoFileClip'PS:我阅读了,的文档'FFMPEG_VideoWriter''FFMPEG_VideoReader'但找不到任何有用的东西...我需要在编写我正在处理的代码之前阅读确切的框架。请给我建议一个方法。

python video clip moviepy

5
推荐指数
1
解决办法
2406
查看次数

moviepy 创建的视频无法在网络上播放

我正在玩 moviepy,目的是创建视频以嵌入网页中。但是,我无法让我创建的视频在 chrome 和 firefox 中实际播放(它可以在 safari :/ 中播放)。\nFirefox 声称“文件已损坏”。

\n\n

我发现我很可能没有正确安装某些东西。我关注了(除其他外,因为我还没有被授权发布足够的链接来充分描述我的情况,#thanksStackOverflow ;P)http://wiki.webmproject.org/ffmpeg/building-with-libvpx,但根据[如果允许的话我会分享的链接:P]这些东西都是“在MoviePy \ xe2 \ x80 \ x99s安装期间自动安装的”,所以我不确定我是如何把它搞砸的。

\n\n

查看示例代码(我已经用“python”、“python3”和“python3.5”尝试过):

\n\n
from moviepy.editor import *\n\nfilepath = "../read_videos/MOVI0011.avi"\nfile = VideoFileClip(filepath)\n\nclips = []\nclips.append(file.subclip(10, 12))\nclips.append(file.subclip(20, 22))\nclips.append(file.subclip(30, 32))\nclips.append(file.subclip(40, 42))\n\nconcatenated_clip = concatenate_videoclips(clips)\n\nconcatenated_clip.write_videofile("../write_videos/clip.mp4", fps=24, codec=\'mpeg4\')\n
Run Code Online (Sandbox Code Playgroud)\n\n

火狐错误

\n\n

OSX El Capitan (10.11.3)

\n

python macos ffmpeg moviepy

5
推荐指数
1
解决办法
978
查看次数

如何使用Moviepy和Pygame播放mp4电影

你如何在Pygame中播放mp4视频?

我试过pygame.movi​​e但这不起作用......

Theres也是moviepy,但我无法更改弹出窗口的标题.它说"MoviePy",不知道如何改变它.

import moviepy
from moviepy.editor import *
import os


os.environ["SDL_VIDEO_CENTERED"] = "1"

clip = VideoFileClip('qq.mp4')


clip.preview()

execfile("qq.py") # Execute my game right after the clip shows
Run Code Online (Sandbox Code Playgroud)

如何将标题从"MoviePy"更改为"我的游戏名称"

任何帮助,将不胜感激!

python video mp4 pygame moviepy

5
推荐指数
1
解决办法
9300
查看次数

jupyter notebook 中的进度条变得疯狂

我曾经尝试运行代码如下图所示。第一次一切正常时,它只有一个进度条。但是当我再次运行它(制作视频)时,进度条会变得疯狂如下,它每秒为单个任务生成许多进度条!我怎样才能让它只生成单个进度条。谢谢!

这是我面临的: 在此处输入图片说明

python python-2.7 python-3.x moviepy jupyter-notebook

5
推荐指数
1
解决办法
1945
查看次数

写入视频后视频比特率降低

我正在尝试编写一个 python 函数,使用 moviepy 将一个视频中的视频添加到另一个视频(没有声音)。首先,我尝试了

clip = mpe.VideoFileClip(video-to-add-sound.mp4)
clip = clip.set_audio(mpe.AudioFileClip(video-that-has-sound.mp4))
Run Code Online (Sandbox Code Playgroud)

这没有任何作用。所以,我意识到我没有 write_videofile 来剪辑所以,我创建了一个函数

def addAudioBack(original_vid, processed_vid):

    clip = mpe.VideoFileClip(processed_vid)
    clip = clip.set_audio(mpe.AudioFileClip(original_vid))
    clip.write_videofile(processed_vid,codec='libx264')
Run Code Online (Sandbox Code Playgroud)

它将把original_vid 中的音频添加到processed_vid 中,并将旧的processed_vid 覆盖到具有orignal_vid 中音频的新音频。声音效果很好,但问题是我的视频比特率和数据率正在下降,这使得视频质量看起来更差。我尝试添加bitrate='3000k'到最后一行,但它不起作用。原版的速度约为3000kbps,但编辑后的速度降至约300kbps或以下。

附言。我编辑了最后一行,以免覆盖旧文件并写入新文件。比特率提高到大约 900kbps,但我想要的是与我的旧视频具有相似比特率的视频(将添加声音)

那么,我如何根据上述目的编写视频,使其与原始视频具有相同或几乎相同的比特率?

谢谢

python video-processing moviepy

5
推荐指数
0
解决办法
831
查看次数

使用 PyAV 的视频中的帧数

我使用 PyAV 库,因为它是 Python 可用的最快库之一。

这是我想使用的一个简单的代码示例:

import av

video = av.open("My_Super_Video.mp4")

total_frames = # ????

for i, frame in enumerate(video.decode(video=0)):
    img = frame.to_image()  # PIL image

    print("Frame: %d/%d ..." % (i, total_frames))
Run Code Online (Sandbox Code Playgroud)

显然我可以使用其他库来加载该库,但是如果可能的话,我更喜欢使用 PyAV,因为它的处理速度很快。

问题1:用PyAV可以获取帧数吗?如果是,怎么办?

问题2:在这种情况下,我会考虑使用另一个库来逐帧加载和处理视频。哪个库可以让我以尽可能最高的速度完成上述操作。我知道以下内容,但不知道它们如何比较:

  1. PIMS在 PyAV 之上,可以添加一些有趣的功能吗?
  2. MoviePy(仅限于适合 RAM 的视频),但是 perf 呢?
  3. Imageio(可能与上面相同的限制),但是 perf 呢?
  4. OpenCV(可能与上面相同的限制),但是 perf 呢?
  5. 其他的 ?

python video opencv moviepy pyav

5
推荐指数
2
解决办法
5982
查看次数

如何将 mp4 文件直接从 S3 读取到 moviepy 中?

知道如何将 S3 mp4 文件直接读取到 moviepy 中吗?

我努力了,

import boto3
from io import BytesIO
from moviepy.editor import *

client = boto3.client('s3')
obj =  client.get_object(Bucket='some-bucket', Key='some-file')
VideoFileClip(BytesIO(obj['Body'].read())) 
Run Code Online (Sandbox Code Playgroud)

但我越来越,

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/<path>/lib/python3.6/site-packages/moviepy/video/io/VideoFileClip.py", line 91, in __init__
fps_source=fps_source)
File "/<path>/lib/python3.6/site-packages/moviepy/video/io/ffmpeg_reader.py", line 33, in __init__
fps_source)
File "/<path>/lib/python3.6/site-packages/moviepy/video/io/ffmpeg_reader.py", line 243, in ffmpeg_parse_infos
is_GIF = filename.endswith('.gif')
AttributeError: '_io.BytesIO' object has no attribute 'endswith'
Run Code Online (Sandbox Code Playgroud)

其中路径是我的虚拟环境

python ffmpeg amazon-s3 moviepy

5
推荐指数
1
解决办法
1104
查看次数

Moviepy:AWS 上的书面视频中没有音频

我正在尝试使用moviepy调整视频大小。它在本地运行时完全正常,但在 AWS BeanStalk 上,渲染的视频中没有音频。

clip_resized = clip.resize(height=video_max_height)
clip_resized.write_videofile(RESIZED_VIDEO_NAME, temp_audiofile="temp-audio.m4a",
                                     remove_temp=True,
                                     codec="libx264",
                                     audio_codec="aac", fps=30,
                                     logger=None, threads=4)
Run Code Online (Sandbox Code Playgroud)

我正在使用此链接在 AWS 上安装 ffmpeg

heroku的类似问题

python amazon-web-services moviepy

5
推荐指数
0
解决办法
75
查看次数

如何使用Python-Moviepy向视频添加多个文本(字幕)?

在某些情况下,我们需要向视频添加字幕。就我而言,我正在处理与视频描述(字幕)相关的问题。此 python 代码有助于向视频添加字幕。我想知道是否有人需要解决方案,请随意来试验代码。

import moviepy.editor as mp


my_video = mp.VideoFileClip("video.mp4") #video path
w,h = moviesize = my_video.size
my_text = mp.TextClip("A man and a women are sitting on a bench", font="Amiri-regular", color="white", fontsize=34)
txt_col = my_text.on_color(size=(my_video.w + my_text.w, my_text.h+5), color=(0,0,0), pos=(6,"center"), col_opacity=0.6)
txt_mov = txt_col.set_pos( lambda t: (max(w/30,int(w-0.5*w*t)),max(5*h/6,int(100*t))) )
final = mp.CompositeVideoClip([my_video,txt_mov])
final.subclip(0,17).write_videofile("final.mp4",fps=24,codec="libx264")
Run Code Online (Sandbox Code Playgroud)

这对于单个标题很有效。您可以使用参数进行更改

"""Multiple Text in single video"""

 
import moviepy.editor as mp


my_video = mp.VideoFileClip("/home/user/cap/video.mp4").subclip(0,10)
print(my_video.duration)
w,h = moviesize = my_video.size

texts = []
with open("/home/user/cap/caption.txt") as file:
    for line …
Run Code Online (Sandbox Code Playgroud)

python animation caption closed-captions moviepy

5
推荐指数
0
解决办法
1986
查看次数