新建main.py,插入代码:
import time
import cv2
import preprocess
import calibrateCamera
import laneDetection
from moviepy.editor import VideoFileClip
def pipeline(frame):
image = frame
frame, invM = preprocess.warp(frame)
frame = preprocess.grayscale(frame)
frame = preprocess.threshold(frame)
frame, left_curverad, right_curverad = laneDetection.search_around_poly(frame)
frame = cv2.warpPerspective(frame, invM, (frame.shape[1], frame.shape[0]), flags=cv2.INTER_LINEAR)
frame = cv2.addWeighted(frame, 0.3, image, 0.7, 0)
curvature = (left_curverad + right_curverad) / 2
car_pos = image.shape[1] / 2
center = (abs(car_pos - curvature)*(3.7/650))/10
curvature = 'Radius of Curvature: ' + str(round(curvature, 2)) + 'm'
center = str(round(center, 3)) + 'm away from center'
frame = cv2.putText(frame, curvature, (50, 50), cv2.FONT_HERSHEY_COMPLEX, 1, (255, 255, 255), 2, cv2.LINE_AA)
frame = cv2.putText(frame, center, (50, 100), cv2.FONT_HERSHEY_COMPLEX, 1, (255, 255, 255), 2, cv2.LINE_AA)
return frame
def debugFrames(file):
cap = cv2.VideoCapture(file)
if(cap.isOpened()==False):
print('Error opening the file, check its format')
cap.set(1, 100)
res, frame = cap.read()
frame = pipeline(frame)
cv2.imshow('Frame', frame)
cv2.waitKey(10000)
def processFrames(infile, outfile):
output = outfile
clip = VideoFileClip(infile)
processingClip = clip.fl_image(pipeline)
processingClip.write_videofile(output,fps=30, audio=True)
def main(infile, outfile):
processFrames(infile, outfile)
if __name__ == "__main__":
infile = "..\\data\\dashcam_video_trim.mp4"
outfile = "..\\data\\dashcam_video_trim_output.mp4"
t1=time.time()
main(infile, outfile)
t2=time.time()
print(t2-t1)
结果如下:
moviepy处理图片的帧比直接遍历快了7秒。速度提升了不少。
本例用到代码和资料详见:
https://download.csdn.net/download/hhhhhhhhhhwwwwwwwwww/86757342
为什么程序在运行几秒后视频写入速度变得特别慢。下面是全部代码了from moviepy.editor import VideoFileClipfrom moviepy.editor import CompositeVideoClipfrom moviepy.editor import concatenate_videoclipsimport xlrd#文件路径path = ".\\sources\...
很多人在创作视频时都需要进行剪辑,例如删减无用镜头、调整视频长度等等。这些任务通常需要使用视频编辑软件,例如Adobe Premiere和Final Cut Pro等。然而,如果你想批量剪辑大量视频,或者想用编程方式剪辑视频,Python将为你提供方便的解决方案。在本文中,我们将介绍如何使用Python进行视频剪辑的完整攻略。我们将探讨如何使用Python库FFmpeg和MoviePy来剪切、合并和转换视频。安装FFmpegFFmpeg是一种流行的开源软件,可以用于处理视频和音频文件。
我的脚本以两个电影文件作为输入,并编写一个2x1数组的电影输出(立体并排半宽)。输入的视频片段具有等分辨率(1280x720)、帧速率(60)、帧数(23899)、格式(mp4)。。。当write-videofile函数开始处理时,它提供了一个非常合理的估计完成时间~20min。当它处理每一帧时,处理变得越来越慢(由进度条和估计完成时间表示)。在我的例子中,输入的电影片段大约有6分钟长。经过3分钟...
你知道吗,用moviepy一行代码就能够快速剪辑视频中某个区间的片段:
# 这一段代码,能够在3秒内将videoplayback.mp4的50秒-60秒的视频片段提取出来,非常方便。
clip = VideoFileClip("videoplayback.mp4").subclip(50,60)
0. 环境依赖库的安装
pip install moviepy
1. 视频剪辑
from moviepy.editor import*
# 剪辑50-60秒的音乐 00:00:50 - 00:00:60
首先要指出的是。MoviePy 基于ffmpeg ,视频的最后生成,用的就是ffmpeg。所以,讨论MoviePy的性能问题,归根到底是讨论ffmpeg的性能。
关于moviepy的程序执行过程,理论上所有耗时操作只发生在将clip写出到文件的时候。基于此因素,在实际操作中,尽量只在合成最后才进行视频的导出操作,即 write_videofile
关于,ffmpeg的性能呢,一般需要看C...
Python 可以通过 MoviePy 库轻松实现视频处理的功能,包括调整视频的播放速度。使用 speedx 方法,我们可以方便地将视频的速度减慢或加快,针对不同的需求进行调整。
moviepy,一个Python写的视频处理库。包括常见的视频切割,拼接,插入标题等,甚至可以做一些非线编辑,特效等等。可以读取和写入所有最常见的音频和视频格式,包括GIF。
MoviePy MoviePy(完整文档)是一个用于视频编辑的 Python 库:剪切、连接、标题插入、视频合成(又名非线性编辑)、视频处理和自定义效果的创建。
有关使用示例,请参阅图库。
MoviePy 可以读取和写入所有最常见的音频和视频格式,包括 GIF,并在 Windows/Mac/Linux 上运行,使用 Python 3.6+。
这是在 IPython notebook 中的操作: 示例 在此示例中,我们打开一个视频文件,选择 t=50s 和 t=60s 之间的子剪辑,在屏幕中央添加标题,并将结果写入新文件: from moviepy.editor import * video = VideoFileClip("myHolidays.mp4").subclip(50,60) # 制作文本。
还有更多选项可用。
txt_clip = ( TextClip("My Holidays 2013"
MoviePy (full documentation) is a Python library for video editing: cutting, concatenations, title insertions, video compositing (a.k.a. non-linear editing), video processing, and creation of...
pip install imageio
pip install skimage
这时候会报错Please install the `scikit-image` package (instead of `skimage`)
所以按照提示操作即可:
pip install scikit-image
环境安装成功。
1、快进(加速)在时间轴轨道的剪辑上右击,选择“速度/持续时间”。速度:100%,表示正常速度。速度超过100%,即为加速播放。如果改变速度百分比值,下面的“持续时间”也...