web-dev-qa-db-ja.com

Opencv 3.1はFFMPEGでコンパイルされていますが、https URLを開きません

16.04システムで作業し、FFMVPEGフラグを有効にしてopencv 3.1を正常にインストールしました。私はこれが実際にcv2.getBuildInformation()によって事実であることを再確認し、FFMPEG = YESを得ました。

私は職場でプライベートサーバー上のホステルのビデオを開こうとしています(懸念がある場合は、VPNにログインしています)。このビデオにブラウザー経由でアクセスできます。ただし、cv2を使用したビデオキャプチャは失敗します。

>>> cap = cv2.VideoCapture("https://xxx.mp4", cv2.CAP_ANY) #dummy url
>>> cap
<VideoCapture 0x7f63300fa4b0>
>>> cap.isOpened()
False

これは、https URLの場合に常に当てはまります。ローカルのビデオでうまく動作するようです。私はさまざまなことを試しました:最初はそれがgstreamerの問題だと思ったので、プラグインをチェックし、いくつかのgst-badバージョンがありました(参照: https://github.com/GStreamer/gst-plugins-ugly )、それらを削除し、良いバージョンに置き換えました、喜びはありません。また、ビデオの読み取り中にcv2.CAP_ANYおよびcv2.CAP_FFMPEGフラグを使用するように明示的にvideoCaptureに指示しようとしましたが、まだうまくいきません。

Opencvのコンパイル中にGstreamerフラグを無効にしましたが、ONに設定しても、問題に違いはありませんでした。

私はこの問題の解決策を見つけることができず、今まで何日も別のものを探して試していました!何か案は?

1
stalagmite7

最終的に、opencv3.1のインストールと再インストールをやめ、opencv 3.4.1に切り替えました。それと、gstreamerとffmpegの現在の(元の質問投稿としての)構成で、gstreamerが探していたlibopencv_core.so.2.4のシンボリックリンクを作成するだけで、残りは正常に機能しました。これが誰かを助けることを願っています!私はopencv3.1の問題が何であったかを正確に把握することができませんでした(私が言及したように、それは他の同僚が持っている構成であり、機能は彼らのためにうまく機能します)が、これは私が過ごした後にやったことです問題の日。

1
stalagmite7