如何通过 SDK 在佳能相机上开始/停止视频录制?

Posted

技术标签:

【中文标题】如何通过 SDK 在佳能相机上开始/停止视频录制?【英文标题】:How to start/stop video recording on Canon camera via SDK? 【发布时间】:2010-10-27 21:38:05 【问题描述】:

我有一台佳能 7D 数码相机,我希望能够从 PC 控制视频录制。 我已经下载了 Canon SDK 2.8,阅读了它包含的所有文档,但仍然无法弄清楚如何在相机上开始或停止视频录制。

有没有可能通过Canon SDK控制视频录制?

谢谢。

【问题讨论】:

佳能DIDP团队的官方回答是:“很遗憾,目前的SDK不支持电影录制功能。” 它必须是可能的,因为相机附带的 CD 上的 EOS Utility 支持它。 【参考方案1】:

最新的佳能相机sdk文档包含答案:

6.4.3 开始/结束短片拍摄 您可以通过以下操作开始/结束短片拍摄。

EdsUInt32 record_start = 4; // Begin movie shooting 
err = EdsSetPropertyData(cameraRef, kEdsPropID_Record, 0, sizeof(record_start), &record_start); 
EdsUInt32 record_stop = 0; // End movie shooting 
err = EdsSetPropertyData(cameraRef, kEdsPropID_Record, 0, sizeof(record_stop), &record_

【讨论】:

这是个好消息。我曾经使用反向工程的 hack 来做到这一点,但现在我可以切换到这个。 愿意分享你的技巧吗?在 PC 模式下连接时,t5i 似乎不听此命令。【参考方案2】:

看一下我不确定的 gphoto(它适用于类似 unix 的系统)

http://www.gphoto.org/doc/remote/

只有我知道有效的破解方法是使用 USB-IR 发射器发送佳能遥控器使用的信号,您可以通过 USB-IR 发射器检查信号(启动、停止),然后从佳能遥控器接收信号,发送只要你想在你的程序中使用它

编辑

好像是别人先弄明白的

Need to record video with a DSLR using an SDK

编辑 2

Breezesys 找到了一个解决方案,似乎有一个未记录的命令,但是Chris breeze won't give the info up as u can see here

http://www.breezesys.com/DSLRRemotePro/help/index.html?video_capture.htm

一些十六进制或逆向工程师应该调查一下:/

编辑 3

只要外面有人说:

这是你自己研究功能的无证资料

这里是命令和函数列表,您也可以使用dll export viewer 为您自己提取它们,

DPPLibCom

DPPDLL

EDSDK

EdsImage

MLib

Ucs32P

这里还有一些 n@sty 工具用 dll 做 n@sty 的事情我希望你知道这些,因为在这里命名它们是非法的

【讨论】:

脏:D,你是程序员还是什么? gphoto 无法在佳能 DSLR 上开始/停止视频拍摄。那个其他帖子是我打开的,也没有答案。【参考方案3】:

不幸的是,我认为目前不可行(通过查看给定的 API)。虽然我确实相信佳能拥有 API,但出于某种原因没有发布它。

顺便说一句,我见过人们抓取实时取景帧并将其制作成视频的案例。

【讨论】:

以上是关于如何通过 SDK 在佳能相机上开始/停止视频录制?的主要内容,如果未能解决你的问题,请参考以下文章

进入后台时停止相机录制并保存文件

Android - 录制视频后停止和重置相机时的致命信号 11

iPhone:单击开始视频录制按钮时的事件?

如何开始在 iPhone Sdk 中自动录制视频

Echo Spot使用内置摄像头录制视频 - 自定义技能

适用于蓝牙的索尼相机远程 API SDK