码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Python Opencv实践 - 视频文件操作


    参考资料:

    视频处理VideoCapture类---OpenCV-Python开发指南(38)_python opencv videocapture_李元静的博客-CSDN博客

    OpenCV VideoCapture.get()参数详解 - 简书
    FOURCC四字符码对照表_4fvcc_Kellybook的博客-CSDN博客

    1. import cv2 as cv
    2. import numpy as np
    3. #1.创建VideoCapture对象
    4. # video = cv.VideoCapture(filePath)
    5. # filePath: 视频文件路径
    6. # 参考资料:https://blog.csdn.net/liyuanjinglyj/article/details/114374223
    7. video = cv.VideoCapture("../SampleVideos/Unity2D.mp4")
    8. print("Video Opened?", video.isOpened())
    9. #2.获得视频属性
    10. # video.get(propId)
    11. # propId: 属性ID
    12. # cv.CAP_PROP_POS_MSEC - 视频文件的当前位置(ms)
    13. # cv.CAP_PROP_POS_FRAMES - 当前帧序号(从0开始)
    14. # cv.CAP_PROP_POS_AVI_RATIO - 视频文件相对位置(0表示开始,1表示结束)
    15. # cv.CAP_PROP_FRAME_WIDTH - 视频的帧宽度
    16. # cv.CAP_PROP_FRAME_HEIGHT - 视频的帧高度
    17. # cv.CAP_PROP_FPS - 帧率
    18. # cv.CAP_PROP_FOURCC - 视频编码的四字节编码
    19. # cv.CAP_PROP_FRAME_COUNT - 视频文件的帧的数量
    20. # cv.CAP_PROP_FORMAT - 对象的格式
    21. # 参考资料:https://www.jianshu.com/p/676bef32e655
    22. # https://blog.csdn.net/qq_30622831/article/details/82082122
    23. width = video.get(cv.CAP_PROP_FRAME_WIDTH)
    24. height = video.get(cv.CAP_PROP_FRAME_HEIGHT)
    25. fps = video.get(cv.CAP_PROP_FPS)
    26. fourcc = int(video.get(cv.CAP_PROP_FOURCC))
    27. totalFrames = video.get(cv.CAP_PROP_FRAME_COUNT)
    28. print("Video Properties: resolution - (", width, height, ") FPS - "
    29. , fps, " FOURCC - "
    30. , chr(fourcc&0xFF), chr((fourcc>>8)&0xFF), chr((fourcc>>16)&0xFF),chr((fourcc>>24)&0xFF)
    31. , " Frame Count - ", totalFrames)
    32. #3. 读取视频的一帧图像
    33. # ret,frame = video.read()
    34. # read()按帧读取视频,ret,frame是获cap.read()方法的两个返回值
    35. # 其中ret读取帧是正确的话则返回True,如果文件读取到结尾,它的返回值就为False
    36. frame_delay = int(1000 / fps)
    37. while True:
    38. ret,frame = video.read()
    39. cv.imshow('Opencv Video Play', frame)
    40. key = cv.waitKey(frame_delay)
    41. if key == 27: #检测ESC键
    42. break
    43. #4. 释放视频对象
    44. video.release()
    45. cv.destroyAllWindows()

  • 相关阅读:
    1.4_1 Axure RP 9 for mac 入门
    【Postman&JMeter】使用Postman和JMeter进行signature签名
    DDD/ABP/EF Core :新特性Owned Entity Types ,尝试另外一种值对象的配置方式
    《统计学习方法》 第十五章 奇异值分解
    搭建完菜单后运行不显示菜单的原因及其解决方法(拼图小游戏)
    两地三中心部署
    自动驾驶——仿真的几大挑战
    面试:Fragment懒加载
    eslint系统笔记
    音频编辑软件Steinberg SpectraLayers Pro mac中文软件介绍
  • 原文地址:https://blog.csdn.net/vivo01/article/details/132911513
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号