Open ONVIF(Network Video Interface Forum)デバイスからの録音に関する問題


90

私はOpen Network Video Interface Forum-Javaプロジェクトに取り組んでおり、ONVIF Application Programmer's Guideで説明されている手順に従っています。

wsdlsONVIFサイトで提供されているものからソースを生成しました。を使用してライブストリームURIを取得できますmedia.wsdl。今録音に問題があります。私が試したコードは以下のとおりです:

RecordingService recording_ervice = new RecordingService();
RecordingPort record_port = recording_ervice.getRecordingPort();


BindingProvider bindingProvider = (BindingProvider) record_port;

// Add a security handler for the credentials
final Binding binding = bindingProvider.getBinding();
List<Handler> handlerList = binding.getHandlerChain();
if (handlerList == null) {
    handlerList = new ArrayList<Handler>();
}

handlerList.add(new RecordStream.SecurityHandler());
// binding.setHandlerChain(handlerList);

// Set the actual web services address instead of the mock service
Map<String, Object> requestContext = bindingProvider.getRequestContext();

requestContext.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "http://" + deviceip + "/onvif/media_service");
requestContext.put(BindingProvider.USERNAME_PROPERTY, user);
requestContext.put(BindingProvider.PASSWORD_PROPERTY, pass);

Recordings recordings = record_port.getRecordings();

実行時の上記のコードは、次のようなエラーになります。

Exception in thread "main" javax.xml.ws.soap.SOAPFaultException: Method 'ns11:GetServiceCapabilities' not implemented: method name or namespace not recognized

私もメディアサービスで試しましたが、エラーは次のとおりです。

Exception in thread "main" com.sun.xml.internal.ws.client.ClientTransportException: The server sent HTTP status code 405: Method Not Allowed

5
「記録」はONVIFレコーダーによって使用されるサービスであることに注意してください。ほとんどのIPカメラはそれをサポートしていません。オプションのサービス(サポートされているプロファイルによって異なります):onvif.org/ver10/device/wsdl/GetCapabilitiesなので、デバイスの機能で確認する必要があると思います。もう1つの注意:最後の行でgetRecordings()を「機能」に割り当てています... onvif.org/onvif/ver10/recording.wsdlを見て-これはGetServiceCapabilities()の出力タイプだと思います。もう一度確認してください。
Sigismondo 2014年

1
メソッドはコードに存在しているように見えますが、クライアントから許可または到達できないため、Webサーバーのセキュリティポリシーを確認する必要があります。
Ved

Vedに同意する...このWSDLを実装している人は、特定の機能を実装していないか、名前空間が関数を含まないWSDL宣言を指しています。個人的に、私はこのONVIFのWSDLの選択に少し驚いています。

回答:


2

メディアソースで試行したときに、サーバーがエラーコード405を返したため、不正なアクションを要求したようです。メソッドの使用が禁止されているか、メソッドを使用するための資格情報が必要です。

に関してはException in thread "main" javax.xml.ws.soap.SOAPFaultException: Method 'ns11:GetServiceCapabilities' not implemented: method name or namespace not recognized、@ SigismondoはほとんどのIPカメラがそれをサポートしていないという事実について正しいです。IPカメラから録画するには、別の録画方法(リテラルとしゃれ)が必要です。


1

を使用http://" + deviceip + "/onvif/media_serviceして録音サービスにアクセスしていますが、これはmedia.wsdlサービスです。そのため、メディアサービスでgetRecordingsを呼び出そうとすると、エラーが発生するのが普通のようです。

recording.wsdlサービスのURLはである必要がありますhttp://" + deviceip + "/onvif/recording_service

corect URLを取得して録音サービスに到達するには、devicemgmt.wsdlサービスのGetCapabilitiesメソッドからリクエストする必要があります。


0

HTTP 405-通常、許可されないリソースは IISで発生します。この問題は、次の条件に該当する場合に発生します。

  • ファイル名は指定しません。たとえば、http:// Server / Web / ...は指定しません。

  • スクリプトオブジェクトモデル(SOM)が有効になっています。

  • DTCイベントが呼び出されます。

したがって、SOMが有効になっている場合、<form>タグがページに挿入されます。このタグは無効であり、アクションが含まれていません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.