我的视频长度大约每个25分钟,我希望从开始使用python几秒钟.
搜索一下,我偶然发现了python的moviepy包.问题是,即使是单个视频也需要花费很多时间.以下是我用于从单个视频开始剪切7秒的代码片段.写入过程会耗费大量时间.有没有更好的方法来使用python剪切视频?
from moviepy.editor import *
clip = VideoFileClip("video1.mp4").cutout(0, 7)
clip.write_videofile("test.mp4")
Run Code Online (Sandbox Code Playgroud)
如果我错过了任何细节,请告诉我.
任何帮助表示赞赏.谢谢!
示例代码:
from moviepy.editor import *
clip = VideoFileClip('video.mp4')
clip.write_videofile('video2.mp4', fps=30)
Run Code Online (Sandbox Code Playgroud)
显示以下消息后,表明视频正在构建和写入,
Moviepy - Building video video2.mp4.
Moviepy - Writing video video2.mp4
Run Code Online (Sandbox Code Playgroud)
出现以下错误消息:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Users\User\Anaconda3\lib\site-packages\decorator.py", line 232, in fun
return caller(func, *(extras + args), **kw)
File "C:\Users\User\Anaconda3\lib\site-packages\moviepy\decorators.py", line 54, in requires_duration
return f(clip, *a, **k)
File "C:\Users\User\Anaconda3\lib\site-packages\decorator.py", line 232, in fun
return caller(func, *(extras + args), **kw)
File "C:\Users\User\Anaconda3\lib\site-packages\moviepy\decorators.py", line 135, in use_clip_fps_by_default
return f(clip, *new_a, **new_kw)
File "C:\Users\User\Anaconda3\lib\site-packages\decorator.py", line …
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用moviepy生成带有文本的视频.首先,我想显示一条消息,然后显示另一条消息.在我的情况下,我希望显示"狗"一秒钟而不是"猫猫".为此,我使用以下代码:
来自moviepy.editor import*
def my_func(messeges):
clips = {}
count = 0
for messege in messeges:
count += 1
clips[count] = TextClip(messege, fontsize=270, color='green')
clips[count] = clips[count].set_pos('center').set_duration(1)
clips[count].write_videofile(str(count) + '.avi', fps=24, codec='mpeg4')
videos = [clips[i+1] for i in range(count)]
video = concatenate(videos)
video.write_videofile('test.avi', fps=24, codec='mpeg4')
video = VideoFileClip('test.avi')
video.write_gif('test.gif', fps=24)
if __name__ == '__main__':
ms = []
ms += ['Dog']
ms += ['Cat Cat']
my_func(ms)
Run Code Online (Sandbox Code Playgroud)
这是我得到的结果:
有谁知道为什么我有猫的问题?
我正在尝试执行一个非官方的Instagram API python库的调用,在我修复了几个依赖关系的错误之后,我就陷入了这个问题.
File "C:\Users\Pablo\Desktop\txts_pys_phps_programacion\Instagram-API-python-master\InstagramAPI.py", line 15, in <module>
from moviepy.editor import VideoFileClip
File "C:\Python27\lib\site-packages\moviepy\editor.py", line 22, in <module>
from .video.io.VideoFileClip import VideoFileClip
File "C:\Python27\lib\site-packages\moviepy\video\io\VideoFileClip.py", line 3, in <module>
from moviepy.video.VideoClip import VideoClip
File "C:\Python27\lib\site-packages\moviepy\video\VideoClip.py", line 20, in <module>
from .io.ffmpeg_writer import ffmpeg_write_image, ffmpeg_write_video
File "C:\Python27\lib\site-packages\moviepy\video\io\ffmpeg_writer.py", line 15, in <module>
from moviepy.config import get_setting
File "C:\Python27\lib\site-packages\moviepy\config.py", line 38, in <module>
FFMPEG_BINARY = get_exe()
File "C:\Python27\lib\site-packages\imageio\plugins\ffmpeg.py", line 86, in get_exe
raise NeedDownloadError('Need ffmpeg exe. '
NeedDownloadError: Need ffmpeg exe. You can …
Run Code Online (Sandbox Code Playgroud) 我正在使用 MoviePy 在服务器上自动从视频剪辑创建 GIF。该库帮助对视频进行各种转换和修剪以创建 GIF。
在我当前的项目中,我有一个包含大量移动对象的视频剪辑,因此很难自动跟踪感兴趣的区域。 (下面的快速 gif 显示了该场景,尽管那里的背景可以很容易消除并跟踪对象。但是假设跟踪对象超出了项目的范围)。
如下面的 gif 所示,红色矩形是随着时间从左向右移动的感兴趣区域。我想裁剪该区域并创建一个 GIF。
我正在使用 MoviePy,从视频中裁剪出一个矩形来创建 gif。但矩形固定在其原始坐标位置。我正在寻找一种随时间移动该矩形并裁剪它以创建 GIF 的方法。
clip = (VideoFileClip("my_video.mp4")
.subclip((1,10.1),(1,14.9))
.resize(0.5)
.crop(x1=145,y1=110,x2=400,y2=810))
clip.write_gif("my_gif.gif")
Run Code Online (Sandbox Code Playgroud)
如何添加时间因子,使得该坐标随时间变化。
欢迎任何建议。
我想在python 2.7中调整视频片段的大小.
例如,我们给出1080p质量的"movie.mp4"结果应该是具有360p质量的"movie.mp4"
我认为应该有Moviepy的解决方案.如果你知道它的解决方案.
如果你回答我,我将不胜感激.
我使用https://github.com/Zulko/moviepy 库将两个视频与 python 合并。它合并成功,但合并的.mp4 中不存在视频声音。
蟒蛇代码:
clip1 = VideoFileClip("2.mp4",audio=True)
clip2 = VideoFileClip("1.mp4",audio=True)
final_clip = concatenate_videoclips([clip1,clip2],method="compose")
final_clip.write_videofile("merged.mp4")
Run Code Online (Sandbox Code Playgroud)
我也试过 ffmpeg
ffmpeg -i 'concat:1.mp4|2.mp4' -codec copy merged.mp4
Run Code Online (Sandbox Code Playgroud)
ffmpeg 无法合并视频。它创建了只有 1.mp4 的 merge.mp4
如何使用 python 或其他方式合并两个视频?
我试图使用moviepy库创建一个使用python的应用程序.我用它安装了:
pip install moviepy
Run Code Online (Sandbox Code Playgroud)
我从MoviePy崩溃课程中找到了这个:
# Import everything needed to edit video clips
from moviepy.editor import *
Run Code Online (Sandbox Code Playgroud)
尝试运行此行后,我收到此错误:
Python 2.7.13 (v2.7.13:a06454b1afa1, Dec 17 2016, 20:42:59) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> # Import everything needed to edit video clips
... from moviepy.editor import *
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
File "C:\Python27\lib\site-packages\moviepy\editor.py", line 22, in <module>
from .video.io.VideoFileClip import VideoFileClip
File "C:\Python27\lib\site-packages\moviepy\video\io\VideoFileClip.py", line 3, …
Run Code Online (Sandbox Code Playgroud) 我一直在使用 MoviePy 编写脚本。到目前为止,我已经能够导入视频、剪辑它们、添加文本、替换音频并编写新文件。这是一次很棒的学习经历。我的问题是这样的:
我正在编辑的电影附有音频。我希望能够在不替换原始音频的情况下导入音轨并将其添加到电影中。换句话说,我想将新的音频文件与附加到视频的音频混合在一起,这样两者都可以被听到。
有谁知道如何做到这一点?提前致谢!
我正在尝试编写一个在Mac OS 10.11.16上使用MoviePy将Python文件转换为GIF的Python程序.我用:
import moviepy.editor as mp
Run Code Online (Sandbox Code Playgroud)
我得到一个错误,说我需要打电话,imageio.plugins.ffmpeg.download()
所以我可以下载ffmpeg.我用:
import imageio
imageio.plugins.ffmpeg.download()
Run Code Online (Sandbox Code Playgroud)
这给了我以下错误:
Imageio: 'ffmpeg.osx' was not found on your computer; downloading it now.
Error while fetching file: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:749)>.
Error while fetching file: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:749)>.
Error while fetching file: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:749)>.
Error while fetching file: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:749)>.
Traceback (most recent call last):
File "<pyshell#2>", …
Run Code Online (Sandbox Code Playgroud)