🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

2回答

3908閲覧

OpenCV  カメラからの動画保存について

yezyez

総合スコア13

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2019/12/25 06:06

編集2019/12/25 06:10

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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ありがとうございます
カメラのサイズを確認して実行してみます

投稿2019/12/28 02:58

yezyez

総合スコア13

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

詳細なバージョンがわからないので私の開発環境(OpenCV 3.4.8)になるのですが

cpp

1VideoWriter writer("movie.mp4", CV_FOURCC_MACRO('M','P','4','V'), 30, Size(720, 480), true);

こちらの

cpp

1Size(720, 480)

が原因かと思われます。
使用しているカメラの解像度に合わせて設定してください。

参考例として一部のみですが、、、

cpp

1 VideoCapture cap(0); 2 cap.set(CV_CAP_PROP_FRAME_WIDTH, 320); 3 cap.set(CV_CAP_PROP_FRAME_HEIGHT, 240); 4 VideoWriter writer("movie.mp4", CV_FOURCC_MACRO('M', 'P', '4', 'V'), 30, Size(320, 240), true);

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'

こちらの表示は録画が成功した環境でも表示されましたので録画失敗の原因ではないかと思います。

投稿2019/12/26 00:46

taichaso

総合スコア22

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問