python将视频一帧一帧的处理然后实时显示,python逐帧读取视频处理

  python将视频一帧一帧的处理然后实时显示,python逐帧读取视频处理

  当视频的关键内容被提取出来后,手动观看会比较耗时。即使视频快进,一个小时的视频也要十几分钟甚至更久。通常,一秒钟的视频包含24帧图像。如果能“捕捉”到视频中的关键帧,尤其是长时间拍摄类似镜头的场景,将有助于过滤掉大部分“嘈杂”的帧,最大程度地提取视频的核心内容。

  1.两个核心库PyAV和Pillow。pip安装-I https://pypi.douban.com/simple/av

  pip install-I https://pypi.douban.com/simple/枕头

  2.主要测试代码如下:#-*-编码:UTF-8-*-@作者:TJM @软件:pycharm @ file: pyav _ test.py @时间:2021/11/1 11: 10 #虚拟环境:py36 _ py36提取视频导入关键帧avimport osimport shutil # #原始视频存放的目录dir _ video _ src=OS . path . join(OS . getcwd(),。\ \ /videos)#存储目录dir _ video _ des=OS . path . join(OS . getcwd(),。\ \ images) #扫描视频文件并检查是否有视频文件print(dir _ video _ src \ r \ n )list _ video=[]for item _ filename in OS . list dir(dir _ video _ src):list _ video . append(item _ filename)print(item _ filename)if len(list _ video)==0:print(。\\videos\\:视频文件不存在)#定义函数def extract _ video(文件名):container=av.open(文件名)#表示我们只想看关键帧。stream=container . streams . video[0]stream . codec _ context . skip _ frame= non key for frame in container . decode(stream):frame . to _ image()。保存(帧。{:04d}。巴布亚新几内亚。format(frame.pts),Quality=80,)#提取关键帧并保存def do _ video 2 image():for filename in list _ video:File _ dir _ desc=OS . path . join(dir _ video _ des,Filename)如果不是OS . path . exists(File _ dir _ desc):OS . makedirs(File _ dir _ desc)print(自动创建:,File_dir_desc) else: print(合并的目录已经存在)#提取关键帧Extract _ video(OS . path . join(dir _ video _ src,Filename))filename _ png中的 png: # shut.move (filename _ png,File _ dir _ desc)shutil . copy 2(filename _ png,File _ dir _ desc)OS . remove(filename _ png)print(filename _ png)if _ _ name _= _ _ main _ :do _ video 2 image()3 .运行后,效果如何

  在一个48秒视频的情况下,最终提取了5个关键帧,大大提高了视频观看的效率,也支持批量视频操作。

  请注意,关键帧的数量与视频的拍摄质量和时间延迟有关。如果镜头移动缓慢,拍摄清晰度高,关键帧提取的效果会越好。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • python将字符串转换成日期,python 字符串转换为日期
  • python将字符串转换成日期,python 字符串转换为日期,Python如何将字符串转换为日期
  • python将字符串转换为数字型,python中数字字符和数字值有何不同,如何转换
  • python将两个一维数组转化为二维数组,matlab把二维数组转为三维数组
  • python将文本转为数组,python读取txt文件为数组
  • python将一个正整数分解成质因数,用python分解质因数
  • python单位转换编程英寸厘米,python将8厘米转换为以英寸为单位的长度并输出
  • python将列表中指定元素修改,python 替换列表中的元素
  • Python将字符串分割,python中把字符串分割成单个字符
  • python将数字转换为日期,python excel写入日期变数字
  • Python读取文件名写入Excel,python将结果写入excel文件
  • 用python将字符串进行反转,python中字符串反转函数
  • python 数字类型和字符串类型的相互转换,python将字符串类型转换为数字
  • Python读取文件名写入Excel,python将数据写入excel指定单元格
  • python中将字符串转化为数字,Python将字符串转为数字
  • 留言与评论(共有 条评论)
       
    验证码: