opencv:垂直和水平报告视频高度和宽度相同

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了opencv:垂直和水平报告视频高度和宽度相同相关的知识,希望对你有一定的参考价值。

我有一堆来自iPhone的视频,我正在尝试使用opencv以编程方式获取它们的宽度和高度。这是我的代码:

import os, glob
import cv2
ff = glob.glob("*.m??") + glob.glob("*.M??")
for f in ff:
    cap = cv2.VideoCapture(f)
    w, h = (int(cap.get(i)) for i in (3, 4))
    cap.release()
    print("%s: %dx%d" % (f, w, h))

问题是,结果始终是相同的:1920x1080, - 无论电影是水平(1920 * 1080)还是垂直(我希望1080 * 1920)。

任何想法如何解决这一问题?也许在某个地方有一个标志,告诉它是Horiz还是Vert?我在这里找不到任何东西at opencv docs ...谢谢!

答案

显然,我需要做的就是安装最新的ffmpeg(花了一些力气:)。

ffmpeg -i <flnm>

输出,其中包括一个“旋转”的行,如下所示:

Metadata:
  rotate          : 90
  creation_time   : 2015-12-09T00:28:42.000000Z
  handler_name    : Core Media Data Handler
  encoder         : H.264

我发现了四种情况:旋转值为90,180,270,或者没有“旋转”的行(==无旋转)。根据我的需要,90和270对应于“垂直”(.a.k.a。“肖像”),所以我的问题就解决了。

解析是微不足道的,我认为没有人想要我的代码。只是一个小小的注释:你需要从ffmeg捕获stderr而不是stdout。

谢谢大家!

以上是关于opencv:垂直和水平报告视频高度和宽度相同的主要内容,如果未能解决你的问题,请参考以下文章

使锚标记填充父 flex 元素的 100% 高度和宽度,同时垂直和水平居中

OpenCV图像处理--常用图像拼接方法

CSS水平居中+垂直居中+水平/垂直居中的方法总结

AutoLayout Circular UIButton - 等效垂直和水平尺寸

如何让DIV里面的DIV水平垂直居中

在 Bootstrap Grid 中垂直和水平居中图像