私は静的スナップショットを取得するために私のカメラのURIを見つけるためにpython-onvifを使用しています。そしてそれはうまく動作し、私はスナップショットを得ることができます。ONVIFカメラ変更スナップショット解像度(getSnaphotUri)
しかし、解像度は私のカメラが達成できる「フル」720ではありません。そして、ストリーミングするときに得ます。スナップショットは640x352のようなものです。
スナップショットをフル解像度で撮影するようにONVIFに指示するにはどうすればよいですか?
getSnapshotUri(トークン)を使用してURIを生成し、最高の解像度でメインプロファイルのトークンを入れてみましたが、同じURIと同じ解像度が得られました。
フル解像度のスナップショットを取得する方法はありますか?
ドキュメンテーションでは、「プロファイルから」jpeg設定を使用すると言われていますが、どのプロファイルをどのように使用するか、どの解像度設定を使用するかはわかりません。
この場合、コードが本当に必要なのかどうかはわかりませんが、ここではやっています。ケースでは、要求されたとして、誰か
from onvif import ONVIFCamera
# Set up the camera object using the ONVIF port.
mycam = ONVIFCamera('192.168.2.111', 8080, 'admin', 'pass', '/etc/onvif/wsdl/')
#access media service
media = mycam.create_media_service()
allProfiles = media.GetProfiles()
mainProfile = media.GetProfile({'ProfileToken' : allProfiles[0]._token})
snapshot = media.GetSnapshotUri({'ProfileToken' : mainProfile._token})
print 'My Cam: ' + str(snapshot)
*****更新ここ20160412
は、いくつかのより多くの情報があるのに役立ちます。
私は、次の
for p in media.GetVideoEncoderConfigurations():
print p
を走ったと私はペーストビンに入れて長くあった以下をプリントアウトします。
JPEGについては何もありません。 H264の解像度があるので、私はカメラがより高い解像度でビデオを行うことができます知っている。しかし、getsnapshot uriはまだ低い解像度しか持っていません。
からvideo_take_snapshot()についての詳細を参照してください。これは安価なカメラにJPEGエンコーダがないことを意味しますか? 「H264」には1280x720の処理能力があるので、何とか完全なres JPEGを得ることができるはずです。しかし、p.Encoding never == 'JPEG'は何もしません。 – Nertskull
なぜ私はONVIFフォーラムが 'GetSnaptshotUri'に解決引数を追加しなかったのか分かりませんか?これは特定の解決策を求める「自然な」方法のようです。ちなみに、H264エンコーダの設定にはいくつかのJPEGオプションがありますか? – mpromonet
質問をすべてのエンコーダオプションで更新しました。しかし、基本的には、どこにもJPEGオプションはありません。 – Nertskull