c++でのopencvを用いた動画作成で,途中でFPSを変更させた動画を作成したいです.
以下のコードは1本の動画が一定のFPSで作成させたものです.ここから,途中で違うFPSに変更し,1本の動画として作成するように変えたいです.
どのような方法がよろしいでしょうか?
そもそも可能でしょうか.
std::string filename = "保存先のパス名";
int codec = VideoWriter::fourcc('M', 'J', 'P', 'G');
double fps = 7.0;
VideoWriter writer(filename, codec, fps_slow, Size(1250, 1050)); if (!writer.isOpened()) { return -1; } Mat image; for (int i = 0; i < 1800; i++) { std::string filenamein = "ファイルを読み込むパス名"; image = imread(filenamein); if (image.empty()) { cout << "no image:" << endl; continue; } writer << image; }
アイデアだけ。
全体としてフレームレートの早いほうに合わせて設定。
フレームレートの遅い部分は、同じ画を何回か描くことで等価的に「遅く」する。
フレームレートを厳密に合わせたいとなるとレートを最小公倍数にとってそれぞれ同じ画を挿入する、なんてことになっちゃいますけれど。