FFmpeg сценарий

1, текущий каталог TXT

BAT: реж / ON / B> 0 .txt 

текущего файла + подтексты летучая реж / с / о / б > 0.txt

2, основная папка картинка генерируется видео

для / ф " delims = [ " % я в (input.txt) делать D: \\ Software \\ ffmpeg- 20191026 - 1054752 -win64- статический \\ бен \\ ffmpeg.exe -f -i image2 F: \\ cqVideo \\ 19 - 10 - 24 \\ 19 - 10 -24_16 \\% я \\% d.jpg -vcodec libx264 -r 25 -b 700000 F: \\% i.h264

3, пакетный формат преобразование видео

для % а в ( " F: \\ . \\ cqVideo 19-10-26 \\ 19-10-26_00 \\ * h264 " ) делать D: \\ программное обеспечение \\ ffmpeg- 20191028 -68f623d-win64- статический \ \ Bin \\ ffmpeg.exe -i " % в " -threads 2 -vcodec libx264 -preset замедлит -crf 20 -y " F: \\ 00result \\% ~ na.mp4 "

4, видео сохраняется в виде фотографий, создавать папки и вложенные папки, подпапки для создания видеоизображений

ИНТ основной () 
{ 
    станд :: ifstream FIN ( " F: \\ cqVideo 19-10-26MP4 \\ \\ 0.txt " ); // открыть исходный образец списка файлов изображений   
    Строка imgName; 
    Mat colorimage; 

    ИНТ videoCnt = 0 ;
     это время (GetLine (FIN, imgName)) // список , чтобы прочитать файл построчно   
    { 
        videoCnt ++ ;
         строка videoPath с = imgName; 
        VideoCapture Capture (videoPath с); // читать видео 

        IF (capture.isOpened (!)) // определение того , чтобы открыть файл   
        { 
            COUTVideoPath с << << " Видео не Open ... " << End L , ;
             Продолжить ; 
        } 
        Строка Dirname = videoPath.substr (videoPath.find_last_of ( " \\ " ) + 1. );
         Строка saveImageName dirName.substr = ( 0 , Dirname .find_first_of ( " " )); // фото папки, необходимо создать новую строку hourDirName = videoPath.substr ( 26 , 11 ); // часов папки, необходимо создать новый
                                                       // COUT << saveDirName <<ЕпсИ;
        

                                                      // сохранить изображение 
        Строка hourDir = " F .: 19-10-25 \\ \\ \\ cqVideo " + hourDirName + " \\ " ;
         ЕСЛИ (_mkdir (hourDir.c_str ()) == - . 1 ) 
        { 
            _mkdir (hourDir .c_str ());    // возвращает 0 создан успешно, -1 указывает отказ 
        } 

        Строка imagedir = hourDir saveImageName + + " \\ " ;
         IF (_mkdir (imageDir.c_str ()) == - . 1 ) 
        { 
            _mkdir (imagedir .c_str ());    // возвращает 0 создан успешно, -1 указывает на отказ 
        } 

        Intкол = 0 ;
        в то время как ( истинно ) 
        { 
            кол ++ ; 

            захватить >> colorImage; // 读入图片
            если (colorImage.empty ()) 
            { 
                соиЬ << " нет изображения ... " << епсИ;
                перерыв ; 
            } 

            Если (colorImage.channels ()! = 3 ) 
            { 
                соиЬ << " не три ... " << End L , ;
                cvtColor (colorImage, colorImage, CV_GRAY2BGR); 
            } 
            Если (! ColorImage.rows = 640 ) 
            { 
                соиЬ << videoPath << "ошибка строки " << епсИ; 
            } 
            
            Rect рои ( 297 , 623 , 7 , 8 );
            // прямоугольник (colorImage, рои, Скалярное (0, 255, 255), 1); 
            для ( INT I = 623 ; я < 632 ; я ++ ) 
            { 
                для ( Int= J 297 , J < 305 ; j ++ ) 
                { 
                    // COUT << (целое) colorImage.at <Vec3b> (I, J) [0] << епсИ;
                     // COUT << (целое) colorImage.at <Vec3b > (I, J) << епсИ [1.];
                     // COUT << (целое) colorImage.at <Vec3b> (I, J) [2] << епсИ;
                     // работы каждого значения пикселя
                     // синим канал 
                    colorImage.at <Vec3b> (I, J) [ 0 ] = 20 ;
                     // зеленый канал 
                    colorImage.at <Vec3b> (I, J) [ 1. =] 20 ;
                    //通道红色 
                    colorImage.at <Vec3b> (I, J) [ 2 ] = 20 ; 
                } 
            } 
            PutText (colorImage, " 5 " , резюме :: Точка ( 297 , 630 ), CV_FONT_HERSHEY_COMPLEX_SMALL, 0.5 , Скалярное ( 255 , 255 , 255 ), 1 ); 

            Строка название = imageDir + to_string (счет) + " .jpg " ; 
            imwrite (имя, colorImage); 


            // imshow ( "colorImage", colorImage);
            // WaitKey (0);
        } 
    } 

    Возвращают  0 ; 
}

5, один формат преобразования видео

FFmpeg -i input.avi output.mp4

 

рекомендация

отwww.cnblogs.com/crazybird123/p/11785239.html