VideoWriter writer("movie.mp4", CV_FOURCC_MACRO('M','P','4','V'), 30, Size(720, 480), true);
CV_FOURCC_MACRO('M','P','4','V')と"movie.mp4"の箇所を変更しましたが動画が保存されません。
エラーメッセージはOpenCV: FFMPEG: tag 0x5634504d/'MP4V' is not supported with codec id 12 and format 'mp4 / MP4 (MPEG-4 Part 14)'
OpenCV: FFMPEG: fallback to use tag 0x7634706d/'mp4v'
と表示されます。
またプログラムを実行した際に動画のファイルだけは作られています。
c++
1#include "opencv2/opencv.hpp" 2#include <opencv2/videoio.hpp> // videoioのヘッダーをインクルード 3#include <iostream> 4 5using namespace cv; 6 7int main(int argh, char* argv[]){ 8 9 VideoCapture cap(0);//デバイスのオープン 10 VideoWriter writer("movie.mp4", CV_FOURCC_MACRO('M','P','4','V'), 30, Size(720, 480), true); 11 //cap.open(0);//こっちでも良い. 12 13 //cap.set(CV_CAP_PROP_FOCUS ,330); 14 15 if(!cap.isOpened()){//カメラデバイスが正常にオープンしたか確認. 16 //読み込みに失敗したときの処理 17 return -1; 18 } 19 20 Mat frame; //取得したフレーム 21 22 while(1)//無限ループ 23 { 24 cap >> frame; 25 26 writer << frame; 27 28 imshow("win", frame);//画像を表示. 29 30 const int key = waitKey(1); 31 if(key == 'q')//qボタンが押されたとき 32 { 33 break;//whileループから抜ける. 34 } 35 else if(key == 's')//sが押されたとき 36 { 37 //フレーム画像を保存する. 38 imwrite("image.png", frame); 39 } 40 } 41 destroyAllWindows(); 42 43 return 0; 44} 45
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。