我正在开发一个通过ONVIF观看视频流的应用程序,其中一个要求是不断改变视频分辨率。我遇到的主要问题是摄像机位于经常发生连接切断的地方。
在这一刻,我让应用程序运行使用“SetVideoEncoderConfiguration”请求更改摄像机的分辨率(更改所需的参数),并使用“GetStreamUri”请求获取视频流,但我的目标不是制作通过onvif请求,相反,我想为每种类型的分辨率存储一个配置文件,并直接在我的播放器上传视频流,例如直接加载(rtsp:// onvif:test@192.168.30.234/onvif- ?媒体/ media.amp轮廓= profile_1_h264&安培; sessiontimeout = 60安培;流类型=单播)
所以,我打算做以下事情:一开始只创建两个配置文件,每个配置文件都有一个不同的“VideoEncoder”(一个用于高分辨率,另一个用于低分辨率)
我的问题是:如果我的相机使用“GetCompatibleVideoEncoderConfigurations”请求获得“视频编码器”,我的相机只返回一个“视频编码器”,因此我无法创建我想要的两个视频编码器。 有没有办法通过ONVIF创建一个新的“视频编码器”?如果答案是否定的,有没有其他方法可以达到我的目的?
答案 0 :(得分:3)
ONVIF开发者指南http://www.openipcam.com/files/ONVIF/ONVIF_WG-APG-Application_Programmer%27s_Guide.pdf描述了7.2节中的CreateProfile过程。
而不是GetCompatibleVideoEncoderConfigurations,您似乎应该使用GetVideoEncoderConfigurations来获取编码器配置列表。
您可以检查onvifdm http://sourceforge.net/projects/onvifdm/是否可以使用2个不同的编码器配置创建2个配置文件。