Как я могу проверить (контролировать) видеофайл формата.avi в определенном файле, он более 0 КБ и доступен для чтения?

Как я могу проверить (контролировать) видеофайл формата.avi в определенном файле, он более 0 КБ и доступен для чтения?

например; У меня есть кнопка видеомагнитофона, и я нажимаю на нее, затем моя функция записывает 1 минуту и ​​сохраняет в файл как test.avi (эта функция в выражении while (true) {})

в то время как (правда)

сохранить как test.avi

сохранить как test2.avi.

,

,

сохранить как test8.avi

Итак, как я могу проверить этот test.avi и все другие видеофайлы, если (test.avi не 0KB и не читается), что мне делать?

int main(void) {

    while (true)
    {
        //Check if test.avi ready
        if (test.avi is not 0KB and readable)
        {
            doSomeStuff01();

        }
        /* Check one more Time
        else
        {

        }*/
        //Check if test2.avi ready
        if (test2.avi is not 0KB and readable)
        {
            doSomeStuff02();
        }
        /* Check one more Time
        else
        {

        }*/
        //Check if test3.avi ready
        if (test3.avi is not 0KB and readable)
        {
            doSomeStuff03();
        }
        /* Check one more Time
        else
        {

        }*/
        //Check if test4.avi ready
        if (test4.avi is not 0KB and readable)
        {
            doSomeStuff04();
        }
        /* Check one more Time
        else
        {

        }*/
        //Check if test5.avi ready
        if (test5.avi is not 0KB and readable)
        {
            doSomeStuff05();
        }
        /* Check one more Time
        else
        {

        }*/
        //Check if test6.avi ready
        if (test6.avi is not 0KB and readable)
        {
            doSomeStuff06();
        }
        /* Check one more Time
        else
        {

        }*/
        //Check if test7.avi ready
        if (test7.avi is not 0KB and readable)
        {
            doSomeStuff07();
        }
        /* Check one more Time
        else
        {

        }*/
        //Check if test8.avi ready
        if (test8.avi is not 0KB and readable)
        {
            doSomeStuff08();
        }
        /* Check one more Time
        else
        {

        }*/

    }


    return(0);
}

1 ответ

Вероятно, есть лучшие решения для этого, но вот идея:

  1. Создайте VideoCapture и проверьте, можете ли вы открыть файл.avi, в противном случае перехватите исключение; http://docs.opencv.org/3.0-beta/modules/videoio/doc/reading_and_writing_video.html

  2. Если видео 0 кБ = нет кадров:

if(frame.empty()){ cout << "frame is empty" << endl; }

Другие вопросы по тегам