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);
}