LoginSignup
27
27

More than 5 years have passed since last update.

FFmpegファイル読込+OpenCV画像処理の雛形

Last updated at Posted at 2016-02-14

FFmpeg(libavformat,libavcodec,libswscale)ライブラリで動画ファイルを読み込み、各映像フレームをOpenCVライブラリのcv::Mat型へ変換するまでの雛形コード。

  • よくみかけるFFmpeg映像復号サンプルコードはコーデック遅延(CODEC_CAP_DELAY)に対応しないものが多く、一部の映像コーデックでは入力映像ストリームの末尾数フレームが欠損する。av_read_frameがファイル終端到達後のavcodec_decode_video2空パケット通知により正しく対応。
  • FFmpegサポート有りOpenCVビルドでも同じことを実現できるが、cv::VideoCaptureだと常にRGB色空間に変換されてしまう。動画系コーデックはYUV色空間ネイィブが主流のため、無駄な色空間変換コストを抑えたい場合に便利(かもしれない)。
  • cv::Mat imageのデータ領域はvector<uint8_t> framebufを参照しているだけなので、次フレーム処理時には破壊されていることに注意。複数フレームを保持する必要がある場合は、コピーしたcv::Matを退避しておくこと。
27
27
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
27
27