Я использую python-onvif, чтобы найти URI моей камеры и получить статический снимок. И работает нормально, снимок могу.
Но разрешение не на «полных» 720, которые может показать моя камера. И действительно получается при потоковой передаче. Снимок только как 640x352 или что-то в этом роде.
Как я могу указать ONVIF сделать снимок с полным разрешением?
Я попытался создать URI с помощью getSnapshotUri (token) и вставить токен основного профиля с наивысшим разрешением, но я получил тот же 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 есть, поэтому я знаю, что камера может снимать видео с более высоким разрешением. Но у getnapshot uri по-прежнему только более низкое разрешение.