为什么onvif的CreateRecording不起作用?

时间:2016-12-29 06:22:53

标签: onvif

我正在尝试实现一个ONVIF协议CreateRecording但我不断得到响应

<env:Body>
    <env:Fault>
        <env:Code>
            <env:Value>env:Receiver</env:Value>
            <env:Subcode>
                <env:Value>ter:ActionNotSupported</env:Value>
                <env:Subcode>
                    <env:Value>ter:InvalidOperation</env:Value>
                </env:Subcode>
            </env:Subcode>
        </env:Code>
        <env:Reason>
            <env:Text xml:lang="en">Optional Action Not Implemented</env:Text>
        </env:Reason>
    </env:Fault>
</env:Body>

发送的XML是

 <SOAP-ENV:Body>
    <trc:CreateRecording xmlns:trc="http://www.onvif.org/recording/wsdl">
    </trc:CreateRecording>
 </SOAP-ENV:Body>

我没有发送任何参数,它应该给我一个错误,而不是说Action not Implemented。同样,如果我请求CreateRecordingJob,它会给我一个有效的错误,即没有现有录制令牌的参考,

执行所有操作的目的是为了获取onvif相机的本地存储空间,请遵循此文档http://www.onvif.org/onvif/ver10/recording.wsdl

即使我已经在相机端添加了手动录制,如图中所示,但我想我想首先通过Onvif Doc创建所有内容,然后它会给我所有录制内容

enter image description here

但我不知道如何从录音中获取ReocrdingToken

澄清相机正在为获取其个人资料或NetworkInformation所做的一切提供正确答案。

如果我这样做

<SOAP-ENV:Body>
    <trc:GetRecordingJobs xmlns:trc="http://www.onvif.org/ver10/recording/wsdl/GetRecordingJobs"></trc:GetRecordingJobs>
</SOAP-ENV:Body></SOAP-ENV:Envelope>

我得到一个空身

<env:Body>
    <trc:GetRecordingJobsResponse></trc:GetRecordingJobsResponse>
</env:Body>

1 个答案:

答案 0 :(得分:0)

如果你想要recordingToken,你应该在RecordingPortClient上调用GetRecordings。这将返回一个RecordingResponseItems数组,每个项目都有自己的标记。

使用ExportRecordedData功能,您可以将录制内容导出到您选择的存储位置。

http://www.onvif.org/onvif/ver10/recording.wsdl