0
OpenCV(C++)を使用してビデオファイルを読み込み、各フレームにフィルタを適用し、出力ファイルに新しい変更フレームを書き込もうとしています。コードの 重要な部分は、これらは以下のとおりです。OpenCV(C++):入力と比較して大きなファイルを作成する
int out_format = CV_FOURCC('M','P','4','2'); // can be another one
double fps = media.get(CV_CAP_PROP_FPS),
width = media.get(CV_CAP_PROP_FRAME_WIDTH),
height = media.get(CV_CAP_PROP_FRAME_HEIGHT);
// On Linux FFMPEG is used to write videos
VideoWriter writer("./" + outputname + ".mkv", out_format, fps, Size(width, height));
.......
.......
writer.write(newFrame); // Mat newFrame
事実は、このように私の周りに280メガバイトのファイルは、の出力を生成理由を知りたいと思い、私はコーデックとビデオ出力フォーマットに堪能ではないよ、です2 GB。
コーデックに問題がありますか?私はDIVX、MPEGなどを試みました。さらに、一部の出力形式は特定のコーデックと一緒に行わなければなりません。
入力ビデオのエンコード形式とビットレートは何ですか? – Steeve
ビットレートは23.67で、入力の4ccはAVC1です – diningphil
書き込みの前に 'writer.set(VIDEOWRITER_PROP_QUALITY、0.1);'を呼び出せますか? [this](http://docs.opencv.org/trunk/d4/d15/group__videoio__flags__base.html#gga41c5cfa7859ae542b71b1d33bbd4d2b4a1cc2ab47f60a115ff9624ff71715b93b)によると、デフォルト設定は100%の品質です。 – Steeve