【问题标题】:Python cv2 to capture mov video metadataPython cv2 捕获 mov 视频元数据
【发布时间】:2021-07-24 21:25:14
【问题描述】:

我阅读了以下帖子 Getting video properties with Python without calling external softwareHow can I identify a video format in Python3?Extract metadata from a Video/Image,因为我的目标是阅读我的 *.mov 视频文件元数据。 我的 cv2 版本是 3.4.3,我正在使用这些讨论中推荐的代码:

import cv2
vid = cv2.VideoCapture( 'test.mov')
height = vid.get(cv2.CAP_PROP_FRAME_HEIGHT) # always 0 in Linux python3
width  = vid.get(cv2.CAP_PROP_FRAME_WIDTH)  # always 0 in Linux python3
print ("opencv: height:{} width:{}".format( height, width))

但是,高度和宽度都等于 0。这是不可能的。 我究竟做错了什么? 谢谢

【问题讨论】:

  • 也许你必须先从流中读取frame。或者CV2 可能无法获取某些视频格式的此信息。不同的格式需要在CV2 中使用不同的代码,并且必须有人编写。
  • 顺便说一句:据我所知CV2 可能会为此使用ffmpeggstream - 所以它也使用external 程序。也许直接使用ffmpeg或模块ffmpeg-pythonMoviePy会更简单。
  • Linxu Mint 20.2 上(基于Ubuntu 20.04)我使用ffmpeg 将文件转换为.mov.avi.mp4 并为所有这些cv2 给我@ 987654342@ 和width。但是我用的是最新的cv2'4.5.3'
  • 在您的第一个链接中,我发现您的代码带有文字 MacOS and Linux packages do not support video related functionality (not compiled with FFmpeg)"... opencv needs the presence of the binary packages of FFmpeg at runtime
  • 对不起,我在这里有点困惑。 “vid = cv2.VideoCapture('test.mov')”不应该打开/阅读视频吗?它不会触发我的任何错误消息。

标签: python python-3.x cv2


【解决方案1】:

用 .MOV 替换 .mov,它应该可以工作。 vid = cv2.VideoCapture('test.MOV')

【讨论】:

    猜你喜欢
    • 2014-02-16
    • 2018-08-12
    • 1970-01-01
    • 2020-07-07
    • 1970-01-01
    • 1970-01-01
    • 2018-01-18
    • 1970-01-01
    • 2016-05-07
    相关资源
    最近更新 更多