2017-03-19 32 views
0

opencvのインストールで問題が発生しましたが、mp4ビデオを開くことができません。私のシステムは、ubuntu 16.04、64bit、opencv3.2がpython 3.5から使用されています。opencv3.2(ubuntu、python3)でmp4を読むことができません

VideoCapture.readは、FalseNoneを返します。

この問題には他にも疑問がありますが、異なるプラットフォームまたは異なるopencvバージョンを対象としています。

明らかに、適切なコーデックがありません。 私は自分のビルドディレクトリからmake uninstallを実行し、opencv*をaptでパージし、ソースから再度ビルドしました。今回は、コンパイル前にffmpegがインストールされていることを確認してください。ここで

は私の手順は次のとおりです。

  • クローンのOpenCVとopencv_contrib
  • cd opencv/
  • mkdir build
  • cd build
  • cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D INSTALL_PYTHON_EXAMPLES=ON -D INSTALL_C_EXAMPLES=OFF -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules -D BUILD_EXAMPLES=ON ..
  • make -j 8
  • sudo make install

私はffmpegのがあり、cmakeのの出力を確認:

Video I/O: 
--  DC1394 1.x:     NO 
--  DC1394 2.x:     NO 
--  FFMPEG:      YES 
--  avcodec:     YES (ver 56.60.100) 
--  avformat:     YES (ver 56.40.101) 
--  avutil:     YES (ver 54.31.100) 
--  swscale:     YES (ver 3.1.101) 
--  avresample:    NO 
--  GStreamer:     NO 
--  OpenNI:      NO 
--  OpenNI PrimeSensor Modules: NO 
--  OpenNI2:      NO 
--  PvAPI:      NO 
--  GigEVisionSDK:    NO 
--  Aravis SDK:     NO 
--  UniCap:      NO 
--  UniCap ucil:     NO 
--  V4L/V4L2:     NO/YES 
--  XIMEA:      NO 
--  Xine:      NO 
--  gPhoto2:      NO 

しかし、問題が解決しません。これをどうすれば解決できますか?

UPDATE私は手動では/ usr/localからいくつかの.soファイルを削除する必要がありました。

次に、私が見つけたすべてのavi関連コーデックをインストールしました。 https://wiki.ubuntuusers.de/Codecs/ さらにlibavcodec-extraとffmpeg

次に、私は再コンパイルして今すぐ動作します。

答えて

1

通常、mp4ビデオにはh264でエンコードされたビデオが含まれています。これは特許を取得したコーデックの1つで、ライセンスを必要とするコーデックもあります。そのため、Ubuntuではデフォルトで出荷することができません。 ffmpegでh264のサポートを有効にするには、libavcodec-extraをインストールする必要があります。

+0

私はopencv(sudo make uninstall)を削除し、libavcodec-extraをインストールしてから、再度コンパイルしました。問題は変わらない – lhk

+0

ここには多くの可動部品があります! Hm。あなたはこれが実際にffmpegであることを確認できますか?pythonではテストビデオを作成して間違ったopencvを選択していませんか? [この回答](http://stackoverflow.com/questions/11640458/how-can-i-generate-a-video-file-directly-from-an-ffmpeg-filter-with-no-actual-in)内部のテストデータジェネレータからビデオファイルを生成する方法を示しています。コマンドラインで 'which ffmpeg'を実行して、あなたが望むバージョンのffmpegを使用していることを確認してください。 –

+0

可動部分については間違いありません。今回はアンインストールを実行しただけでなく、.soファイルとPythonパッケージを手動で検索しました。構成や古いインポートパスが残っていないことを確認します。それから、cmakeがメディアI/Oにリストされているすべてのプラグインのバージョンをピックアップするまで、見つけたすべてのavi関連プラグインをインストールしました。 libavcodec-extraや多くのgstreamerプラグインなどを含むようになりました。正しいコーデックをインストールするためのあなたの答えは間違いなく正しい方向です。私は100%がlibavcodec-extraだと言うことはできませんが、あなたはまだ私の問題を解決しました。ありがとう – lhk

関連する問題