如何在 Xcode 中使用 OpenCV 3.4.14 识别 .mp4 视频文件的编解码器?
Posted
技术标签:
【中文标题】如何在 Xcode 中使用 OpenCV 3.4.14 识别 .mp4 视频文件的编解码器?【英文标题】:How do you identify the codec of a .mp4 video file using OpenCV 3.4.14 in Xcode? 【发布时间】: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。
【问题讨论】:
相关:forum.opencv.org/t/… 【参考方案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 篇。以上是关于如何在 Xcode 中使用 OpenCV 3.4.14 识别 .mp4 视频文件的编解码器?的主要内容,如果未能解决你的问题,请参考以下文章