OpenCV
サポートを有効にする Docker イメージを構築していますffmpeg
。
私のDockerfileは次のようになります
RUN apt-get update && apt-get install -y \
git \
curl \
wget \
unzip \
ffmpeg \
build-essential \
cmake git pkg-config libswscale-dev \
libtbb2 libtbb-dev libjpeg-dev \
libpng-dev libtiff-dev libjasper-dev \
python3-numpy
RUN cd \
&& wget https://github.com/opencv/opencv/archive/3.1.0.zip \
&& unzip 3.1.0.zip \
&& cd opencv-3.1.0 \
&& mkdir build \
&& cd build \
&& cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D WITH_CUDA=OFF \
-D INSTALL_C_EXAMPLES=OFF \
-D INSTALL_PYTHON_EXAMPLES=OFF \
-D WITH_FFMPEG=ON \
-D BUILD_NEW_PYTHON_SUPPORT=ON \
-D WITH_TBB=ON .. \
&& make -j"$(nproc)" \
&& make install \
&& cd \
&& rm 3.1.0.zip
ビルド時にコンテナffmpeg
がインストールされますが、OpenCV
一般的な構成から明らかなように検出されません。
-- Video I/O:
-- DC1394 1.x: NO
-- DC1394 2.x: NO
-- FFMPEG: NO
-- codec: NO
-- format: NO
-- util: YES (ver 54.31.100)
-- swscale: YES (ver 3.1.101)
-- resample: NO
-- gentoo-style: YES
-- GStreamer: NO
-- OpenNI: NO
-- OpenNI PrimeSensor Modules: NO
-- OpenNI2: NO
-- PvAPI: NO
-- GigEVisionSDK: NO
-- UniCap: NO
-- UniCap ucil: NO
-- V4L/V4L2: NO/YES
-- XIMEA: NO
-- Xine: NO
ffpmegがインストールされていても
ffmpeg version 2.8.11-0ubuntu0.16.04.1 Copyright (c) 2000-2017 the FFmpeg developers
built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.4) 20160609
configuration: --prefix=/usr --extra-version=0ubuntu0.16.04.1 --build-suffix=-ffmpeg --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --cc=cc --cxx=g++ --enable-gpl --enable-shared --disable-stripping --disable-decoder=libopenjpeg --disable-decoder=libschroedinger --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librtmp --enable-libschroedinger --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid --enable-libzvbi --enable-openal --enable-opengl --enable-x11grab --enable-libdc1394 --enable-libiec61883 --enable-libzmq --enable-frei0r --enable-libx264 --enable-libopencv
答え1
のffmpeg
バイナリパッケージはコマンドラインツール用ですffmpeg
。コンパイルに必要な開発ヘッダーは、さまざまなパッケージに含まれています。ありがたいことに、それらはすべてffmpeg
ソースパッケージを使用すると、比較的簡単にリストを取得できます。
実際の ffmpeg を使用する Stretch の場合:
(stretch)$ grep-aptavail -s Package -F Source ffmpeg | grep -- '-dev$'
Package: libavcodec-dev
Package: libavdevice-dev
Package: libavfilter-dev
Package: libavformat-dev
Package: libavresample-dev
Package: libavutil-dev
Package: libpostproc-dev
Package: libswresample-dev
Package: libswscale-dev
Package: libffmpegthumbnailer-dev
または、Debian が libav フォークを使用した Jessie の場合:
(jessie)$ grep-aptavail -s Package -F Source libav | grep -- '-dev$'
Package: libavcodec-dev
Package: libavdevice-dev
Package: libavfilter-dev
Package: libavformat-dev
Package: libavresample-dev
Package: libavutil-dev
Package: libswscale-dev
Package: libavc1394-dev
Package: libavl-dev
そこにチェックするための Ubuntu ボックスが手元にありません。
OpenCV がライブラリ名と一致するように「はい」/「いいえ」と言っている特定の事柄に注目してください。