3.17.3 Video Properties


Example

Minimum Origin Version Required: Origin 2016 SR0

The following example shows how to use OpenCV's cvGetCaptureProperty to get information about an existing video file.

#if _OC_VER >= 0x0920
#include <..\originlab\opencv.h>
#else
#include <opencv.h>
#endif

void Video_Properties_ex1(LPCSTR fileName)
{
	CvCapture* cap = cvCreateFileCapture(fileName);
	if (cap)
	{
		int width, height, fourcc;
		double fps, frcount;

		// Call OpenCV's cvGetCaptureProperty function to get a property
		// of the video.  All the CV_CAP_PROP_* IDs are enumerated in the
		// opencv_highgui.h header file.
		fourcc = (int)cvGetCaptureProperty(cap, CV_CAP_PROP_FOURCC);
		width = (int)cvGetCaptureProperty(cap, CV_CAP_PROP_FRAME_WIDTH);
		height = (int)cvGetCaptureProperty(cap, CV_CAP_PROP_FRAME_HEIGHT);
		fps = cvGetCaptureProperty(cap, CV_CAP_PROP_FPS);
		frcount = cvGetCaptureProperty(cap, CV_CAP_PROP_FRAME_COUNT);

		printf("Four CC     = %d,%d,%d,%d\n",
			LOBYTE(LOWORD(fourcc)), HIBYTE(LOWORD(fourcc)),
			LOBYTE(HIWORD(fourcc)), HIBYTE(HIWORD(fourcc)));
		printf("Size        = %d x %d\n", width, height);
		printf("FPS         = %f\n", fps);
		printf("Frame Count = %f\n", frcount);
		printf("Length      = %f second(s)\n", frcount / fps);

		cvReleaseCapture(&cap);
	}
}

void test_Video_Properties_ex1()
{
	// Assuming you have a video named 'myvideo.avi' in your User Files folder.
	string fileName = GetAppPath() + "myvideo.avi";
	Video_Properties_ex1(fileName);
}

Minimum Origin Version Required: Origin 9.1 SR0

The following example shows how to use Origin C's new SystemShellItem class to get information about an existing video file.

Note: The SystemShellItem class uses features available only in Windows Vista and later or Windows Server 2008 and later.

#if _OC_VER >= 0x0920
#include <..\originlab\opencv.h>
#else
#include <opencv.h>
#endif
#include <..\OriginLab\SystemShellItem.h>

void Video_Properties_ex2(LPCSTR fileName)
{
	SystemShellItem shellItem;

	if( shellItem.Open(fileName) )
	{
		string str;
		ULONG ui;

		if( shellItem.GetString(OSHELLITEM_KEY_TITLE, str) )
			printf("Title = %s\n", str);
		else
			printf("Error %d\n", shellItem.LastError());

		if( shellItem.GetString(OSHELLITEM_KEY_SUBTITLE, str) )
			printf("Subtitle = %s\n", str);
		else
			printf("Error %d\n", shellItem.LastError());

		if( shellItem.GetUInt32(OSHELLITEM_KEY_RATING, &ui) )
			printf("Rating = %u\n", ui);
		else
			printf("Error %d\n", shellItem.LastError());

		if( shellItem.GetString(OSHELLITEM_KEY_COMMENT, str) )
			printf("Comments = %s\n", str);
		else
			printf("Error %d\n", shellItem.LastError());

		shellItem.Close();
	}
}

void test_Video_Properties_ex2()
{
	// Assuming you have a video named 'myvideo.mp4' in your User Files folder.
	string fileName = GetAppPath() + "myvideo.mp4";
	Video_Properties_ex2(fileName);
}