Jump to content
Compvision.ru
al072

Уменьшить размер видео файла cv::VideoWriter

Recommended Posts

Добрый день! Коллеги, подскажите пожалуйста при помощи каких codec  можно уменьшить размер выходного видео файла? Задача получить минимальный размер при сохранении среднего качества картинки получаемой с Web камеры. Перепробовал различные комбинации кодеков/выходного формата: 'M', 'J', 'P', 'G' / .avi , 'M', 'P, '4', 'V' / .mp4 , 'D', 'I', 'V', 'X' / .avi , 'A', 'V', 'C', '1' / .avi . На данный момент 30 минут видео с 10 FPS  весит > 1GB, в идеале хотелось бы добиться 200-300 мбайт.

Вот код функции с помощью которого пишу видео файл с web камеры:

    int fcc = CV_FOURCC('M', 'J', 'P', 'G');
    int fps = 25;
    string filelocation = "С:\\video.avi";
    cv::Size frameSize(videoCapture.get(CV_CAP_PROP_FRAME_WIDTH), videoCapture.get(CV_CAP_PROP_FRAME_HEIGHT));
    VideoWriter testwriter(filelocation, fcc, fps, cv::Size(640,480), true);
    while (true)
    {
            cv::Mat writefrm;
            //Get frame from webcam
            videoCapture >> writefrm;
    }

 

Share this post


Link to post
Share on other sites

Думается H.264 или H.265 должны жать по максимуму, но вряд ли сильно плотнее чем mpeg4 или divX.. 

Share this post


Link to post
Share on other sites
43 минуты назад, Smorodov сказал:

Думается H.264 или H.265 должны жать по максимуму, но вряд ли сильно плотнее чем mpeg4 или divX.. 

Пробовал выставлять в настройках H.264 +avi; H.264 + mkv, H.264 + mp4 , но почему-то не одна из этих связок кодек+формат не захотела записывать файл . Для H.264 нужно специальные кодеки на ПК ставить или этот кодек как MJPG по умолчанию в винде есть?

Может есть какие либо более достойные альтернативы VideoWriter? Больно уж этот класс скудный , может конечно в более свежих сборках OpenCV его допилили и доработали, но я использую версию 2.4.1 и как то совсем не весело., особенно огорчил метод VideoWriter::release(); С многопоточностью он походу дружит слабо, либо вообще не дружит.. при запуске в boost::thread метод показал крайне не стабильную работу через раз записывал файл, вызывал завершение программы, пришлось синхронизировать потоки и танцевать с mutex 

Share this post


Link to post
Share on other sites

A x264  работает?

Share this post


Link to post
Share on other sites
10 часов назад, Nuzhny сказал:

A x264  работает?

Не заработал.. пробовал выбрать выходные форматы: .mkv и .avi

Первый даже файл не создался., второй 0 байт

Share this post


Link to post
Share on other sites

Тогда и правда лучше проверь версии поновей, они с ffmpeg хорошо дружат. Ну и сам ffmpeg из командной строки можешь проверить - умеет ли он h.264

Share this post


Link to post
Share on other sites

У меня под виндой обычно установлен k lite codec pack и его, как правило, хватает на все случаи жизни. 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Recently Browsing   0 members

    No registered users viewing this page.

×