【问题标题】:How do you identify the codec of a .mp4 video file using OpenCV 3.4.14 in Xcode?如何在 Xcode 中使用 OpenCV 3.4.14 识别 .mp4 视频文件的编解码器?
【发布时间】:2021-10-01 12:41:16
【问题描述】:

我试过了

cv::VideoCapture cap( argv[1] );
unsigned f = (unsigned)cap.get( cv::CAP_PROP_FOURCC );
cout << "f: " << f << endl;

但 f 的输出为 0。 视频文件的编解码器是H.264。

【问题讨论】:

标签: c++ xcode opencv ffmpeg codec


【解决方案1】:

首先,您的类型转换是基于 unsigned 的。最好使用以下类型:

int f = static_cast<int>(cap.get(cv::CAP_PROP_FOURCC));

之后根据documentation,您应该通过位运算符进行从 int 到 char 的转换。

    cv::VideoCapture cap("/ur/video/dir/video.mp4");

    int ex = static_cast<int>(cap.get(cv::CAP_PROP_FOURCC));     // Get Codec Type- Int form
    char EXT[] = {(char)(ex & 0XFF) , (char)((ex & 0XFF00) >> 8),(char)((ex & 0XFF0000) >> 16),(char)((ex & 0XFF000000) >> 24), 0};

    std::cout<<ex<<std::endl;

【讨论】:

  • 我试过你的代码,我得到 ex = 0 并且 EXT 没有输出。我从第 8 页的示例 8-1 中得到了我的代码。 Adrian Kaehler 和 Gary Bradski 的“Learning OpenCV 3”一书的 195 篇。
猜你喜欢
  • 2020-03-15
  • 2017-10-11
  • 1970-01-01
  • 2016-06-16
  • 2015-08-11
  • 1970-01-01
  • 2019-01-02
  • 2011-11-07
相关资源
最近更新 更多