串口的话,就需要自己来封装协议SDK是C++的,但是不耽误逻辑,就是把载荷解读出来状态机控制对应启用的API现在的SDK是比以前的功能丰富了,第一个是视频流的处理,讲解如何在 Linux 系统中使用 GStreamer 框架,实现 Remote SDK 视频播放功能(即回放录像功能)的解码与播放流程。讲了两个流官方的图因为速度不匹配,使用了环形缓存区流程是这样我们开发感兴趣的是Sample Application Build,上面是解压的目录编译流程剩下就是一些目录和文件夹了其实这个SDK,我们看不到任何的实现,它是给了编译好的库,暴露了API而已。在这里这次SDK把OpenCV也塞进来了,啧啧,官方喂饭?手册用于说明 Sony Camera Remote SDK 提供的所有 API 接口,涵盖相机远程控制、内容传输、回放控制、监控流、固件升级等功能,适合开发远程拍摄系统、多相机同步、实验平台自动控制等应用。也是我们开发的时候需要唯一看的东西。反正非常新有三个操作模式,就像小机器就支持R模式API非常丰富,分类下来就这么多相机的本职就是这些实时取景图像(LiveView)所有 API 都通过 ICrCameraObject 控制对象调用,通信方式包括 USB / LAN / Wi-Fi(取决于相机型号)。可同时控制多台相机(SDK 3.00起支持),所有图像和视频数据通过 buffer 回传,需自行保存或解码。总结一下:开发就这4个文件的支持,你要说官方支持在哪里?可能在东京?但是国内可能会被我看到(解决不解决是另外一个故事)官方是给了一个非常性感的就像老母猪戴胸罩的demo不说了!!!有用但是不想看显示所有连接相机(支持 USB / IP),用户输入编号,选中要连接的相机。没想到吧,主打一个朴实无华这个之后说:这个demo呢,说了很多有益的实践,比如对异步机器的操作,要频繁的使用回调:这些是demo里面的回调事件在文档里面有这样的一个地方比较关键:它是说明了高级的视频功能如何操作:这个AD真的是什么也不挑,这东西你能打开吗?就是这两个库文件。一个通用的流程是这样的:
加载 libmonitor_protocol.so
调用 StartMonitoring()
接收视频流(回调或轮询)
将数据解码(MJPEG/H.264)以供分析或显示
描述了一个完整的 SDK 使用流程,包括程序(用户代码)、SDK、和相机三者之间的调用关系。
Program:应用程序代码(写的 C++ 主控逻辑)
Camera Remote SDK:Sony 提供的 API 库,封装了底层通信与协议
Camera:Sony 相机本体(通过 USB/WiFi 连接)
Call back functions:部分功能(如内容传输、LiveView、播放)会注册 回调函数,由 SDK 异步通知:
图像帧到达
内容可用
状态更新
回调我一会儿会说,因为你不知道相机什么时候响应,又不能啥也不干,一直等着它。这段也关键,对 Sony Camera Remote SDK 的连接机制 进行的详细解释,涵盖了从枚举相机对象到建立连接、使用设备句柄控制相机、再到断开连接的整个生命周期。