python速度moviepy_使⽤moviepy库计算视频总时长
最近录了很多爬⾍的视频,公司让计算下时长,近⼀百个视频我挨个算,累死了但是⼤家别忘记了我可是程序猿哦,这种事情在看来分分钟搞定,现在就跟⼤家分享下我的实现过程吧!如果⼤家喜欢记得点赞 哦
进⼊正题前介绍下moviepy,下⾯看⼀段官⽹的解释:
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 custom effects. See the gallery for some examples of use.
MoviePy can read and write all the most common audio and video formats, including GIF, and runs on Windows/Mac/Linux, with Python 2.7+ and 3 (or only Python 3.4+ from v.1.0).
意思就是:MoviePy是⼀个⽤于视频编辑的python模块,你可以⽤它实现⼀些基本的操作(⽐如视频剪辑,视频拼接,插⼊标题),还可以实现视频合成,还有视频处理,抑或⽤它加⼊⼀些⾃定义的⾼级的特效。总之,它的功能还是蛮丰富的。此外,MoviePy可以读写绝⼤多数常见的视频格式,甚⾄包括GIF格
式。 可以跨平台运⾏在Windows/Mac/Linux操作系统,使⽤python2或者python3.⾸先我把所有的视频
都放在⼀个⽬录下,这样计算起来⽐较⽅便。
2. 如果计算时长我们就要使⽤moviepy这个库,所以:
pip install moviepy
3. 键盘输⼊视频⽬录和要计算时长的视频格式:
video_dir = input('请输⼊视频⽬录:')
type = input('请输⼊视频扩展格式:')
4.使⽤os.walk()获取⽬录内容,补充下os.walk()的使⽤,打开查看源码
def walk(top, topdown=True, οnerrοr=None, followlinks=False):
"""Directory tree generator.For each directory in the directory tree rooted at top (including topitself, but excluding '.' and '..'), yields a 3-tupledirpath, dirnames,
告诉我们这个⽅法返回的是⼀个⽣成器对象,每次获取返回⼀个含有三个元素的元组(dirpath, dirnames, filenames),要想得到此⽬录下的⽂件只需要得到元组的第三项filenames就可以了。
5. 获取此⽬录下所有⽂件的绝对路径,并保存到列表中。
filelist=[] # 保存⽂件绝对路径的列表
for dirpath, dirnames, filenames in os.walk(video_dir):
for name in filenames:
fname = os.path.join(dirpath, name)
dswith(type):
filelist.append(fname)
学python看谁的视频比较好6.下⾯我们就可以使⽤moviepy计算了。
total_seconds = 0.0 # 保存每个视频的秒数
for item in filelist: # 遍历每个绝对路径对应的⽂件
clip = VideoFileClip(item) # 创建 from moviepy.editor import VideoFileClip 对象
total_seconds += clip.duration # 获取时长返回的单位是秒
VideoFileClip就是从视频⽂件(⼤部分的视频格式都⽀持)或者GIF格式⽂件读取⽣成的clip。
可以通过duration获取视频的时长。
7.最后格式化输出打印,使⽤datetime模块的timedelta将秒转换成⼩时和分钟
print("%d秒: " % total_seconds,str(datetime.timedelta(seconds=ftime)))
不仅可以实现这些还可以实现视频剪辑,视频拼接,⽔印等等。功能很强⼤吧!知识的⼒量是⽆穷的,通过学习你会发现变得很充实。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论