问题标签 [libgphoto2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
1420 浏览

linux - gphoto2 pipe:: 处理输入时发现无效数据

所以我一直在关注本教程https://medium.com/nerdery/dslr-webcam-setup-for-linux-9b6d1b79ae22当我开始用相机拍照时我没有问题但是当我get to try to capture with it 我得到了 pipe:: Invalid data found when processing input

整个命令如下:

0 投票
0 回答
487 浏览

python - 有没有办法使用 python 触发运动相机

尝试使用便宜的动作凸轮制作游戏中时光倒流 -型号:现代 cnu3000

我的第一个尝试是将它用作网络摄像头,使用简单的 opencv 脚本来获取 imgs:

这会生成分辨率为(1280X720)的图像,这是相机的最大“视频录制”分辨率 - 因为我们正在实时流式传输到计算机(实际上是树莓派,但 Windows pc 也可以正常工作),所以这是有道理的

现在事情就是这样 - 令人惊讶的是,相机能够拍摄更高分辨率(2592X1944)的图像,但前提是我手动使用它(即按下按钮从而保存到 SD 卡)。我不介意保存到 SD 卡,但如果有办法在不流式传输的情况下触发相机,我正在徘徊 - 获得更高的分辨率

也用我的 Pi 尝试了 gphoto - 正如预期的那样,不起作用(我没有在支持的型号列表中找到这个型号)

任何帮助/指向方向都会非常感激:D

0 投票
0 回答
295 浏览

python - 通过在 Python 中从 Popen 读取字节输入将 MJPEG 转换为 JPEG

我正在使用 gphoto2 的 Windows 构建来生成字节流。获取字节流并查找 jpeg 标头 (ff d8) 和页脚 (ff d9) 并显示流中的单个图像。每当我将解析的字节字符串传递给 imdecode 时,它​​都会返回 None。我将包括 ff d8/ff d9 在内的所有数据传递到 imdecode 中。

我一直从 imdecode 中一无所获,我不知道为什么。字节字符串似乎可以正确解析数据。任何帮助将不胜感激。

编辑:我注意到的其他事情是,如果我只是从文件中读取 JPG 并且我对来自 np.buffer 的对象执行 np.shape 我报告类似 (140000,1) 的内容,而不是当我执行 np.shape 时我正在从我得到的字节字符串(140000,)中读取它。我试过扩大尺寸,但没有奏效。

Edit2:嗯,我意识到 mjpeg 的标头不仅仅是标准的 jpeg 标头。我不确定如何将其转换为标准格式。如果有人有任何提示,那就太好了。

Edit3:我简化了输出并写入文件代码以读取管道数据。

我有两个测试用例,一个使用--capture-movie 2,一个使用--capture-image-and-download,这样在第一种情况下我捕获2帧MJPEG数据,另一个我捕获1帧jpeg 数据。我尝试使用我之前的代码显示这两种情况的数据,即使我只是等待标准输出完成而不是实时读取数据,它们也无法显示图像。

这是我用来将字节写入字节文件的代码。在我之前的评论中,我只是记录了打印语句中的字节字符串(愚蠢的我知道我不擅长这个)。应该注意我认为这些字节串需要解码。

附件是两个案例的链接。2 帧来自 --capture-movie https://www.dropbox.com/s/3wvyg8s1tflzwaa/frame2out.txt?dl=0

来自 --capture-image-and-download https://www.dropbox.com/s/3arozhvfz6a77lr/imageout.txt?dl=0的字节

0 投票
2 回答
1394 浏览

python - Python 中的 gphoto2 与命令行;无法在 Python 中捕获预览

我以前使用过 gphoto2(2.5.20,在 RPi 上),并且能够从命令行完成基础操作:

/usr/bin/gphoto2 --capture-image-and-download --filename=zzz.jpg --force-overwrite

/usr/bin/gphoto2 --capture-preview --filename=zzz.jpg --force-overwrite

后者捕获的预览图像要小得多,并且对于某些应用程序来说很棒;您基本上可以用数码单反相机制作网络摄像头。

但是,在为 python 安装 gphoto2 库之后,这(应该是等效的)失败:

带有消息“gphoto2.GPhoto2Error:[-6] 不支持的操作”

如果你选择

但是,这行得通。为什么我们可以从命令行而不是 Python 版本中获得工作预览的任何原因?

gp.__version__返回 2.2.2 ,并匹配https://github.com/jim-easterbrook/python-gphoto2上的最新版本

0 投票
0 回答
3875 浏览

bash - Raspbian gphoto2:在同一台相机上使用实时取景和捕获图像?

问题:

我在带有 raspbian os lite 的树莓派 4 上运行 gphoto2。我将它与连接到 USB 的佳能 EOS 100d 一起用作照相亭。摄像机实时取景通过 ffmpeg 和运动传递到 http 地址。到目前为止效果很好。为此运行了两个组件:一个运动网络服务器,它从发送到 /dev/video0 的任何内容中获取视频源,以及启动实时取景源的实际 gohoto 命令。为此,我使用以下命令:

这让我在https://localhost:8081/上获得了不错的实时预览,我将其用作 photobooths Web 界面的背景,因此人们可以在按下“拍照”按钮之前看到自己。

问题是实时取景现在阻止了与相机的 USB ptp 连接:所以当我点击我的网络应用程序上的“拍照”按钮时,它会触发这个 gphoto 命令:

这将产生一些错误,例如:

所以 gphoto 实时取景流会阻止捕获图像命令。看来您一次只能使用一个 gphoto 功能。我能做些什么?

想法:

显而易见的是从不同的网络摄像头运行实时取景,但我不希望这样,因为它不能准确反映人们在摄像头前的实际位置。

我的第二个想法是将实时视图命令作为 systemctl 服务启动。所以我可以轻松启动和停止实时取景:

但是这个服务只在第一次工作,然后在几次停止和启动后它崩溃并且永远无法再次运行,直到重新启动。

所以我认为最好的是一个长终端捕获命令,它一次执行以下操作:

  1. 停止 gphoto 实时取景流
  2. 抓图并下载
  3. 再次启动实时取景流

重要的是,在拍照时可以不断地做到这一点。

我将非常感谢此命令的任何解决方案想法,甚至是一些完全不同的解决方案方法。以前有人做过类似的事情吗?

非常感谢您的帮助和建议!

0 投票
1 回答
162 浏览

libgphoto2 - 已编译 libgphoto2 和 gphoto2,但 gphoto2 显示较旧的 libgphoto2

我按照基本方向(此参考提供了如何处理丢失的库:https : //sourceforge.net/p/gphoto/mailman/message/33367636/)在 Raspberry Pi 上编译最新的 libgphoto2 和 gphoto2,但是当我尝试查看已安装的内容(gphoto2 -v),我得到了这个:

./configure 和 make 命令可以正常工作。当我执行“sudo make install”时,脚本会继续运行(带有一些重新链接警告),但没有错误。

'sudo make install' 的结尾如下。这可能是什么原因?我不应该看到 libgphoto2 的 2.5.25 吗?

0 投票
0 回答
216 浏览

ffmpeg - 如何使用 Gphoto2 + ffmpeg 捕获电影并将服务重定向到 html 嵌入

我正在尝试从 Panasonic DC-GH5 相机捕获视频以提供此服务并从没有 ffserver 的浏览器访问,因为 ffserver 已弃用

我正在使用 Ubuntu 20.04

我试试这个代码

并嵌入

在 index.php 但没有出现任何东西。如果有人知道为特定端口制作服务器的方法,我将不胜感激谢谢。

0 投票
0 回答
31 浏览

libgphoto2 - 图片聚焦状态 (gphoto2/libgphoto2)

我目前正在使用 gphoto2 和 Nikon z7 实现应用程序。我使用 manuelfocusdrive 来移动焦点。现在我需要一种方法来确定图像是否聚焦。有谁知道必要的命令?

如果没有,是否可以在 gphotolib2 中找出图像是否在焦点上?如何?

谢谢

0 投票
0 回答
194 浏览

python - 如何使用 gphoto2 和 python 控制多个 DSLR CAMERAS

我想控制多个摄像机。我尝试过:

但是使用linux终端并且它可以工作。当我想在 python 中编写脚本时,问题就来了。我总是收到错误

-105:未知型号)

在蟒蛇。但我可以看到我的相机和它们所在的端口。我认为问题是如何在 python 中编写模型的名称。有人可以帮我吗?我努力了:

0 投票
0 回答
27 浏览

linux - 在 Ubunto Linux 中使用缓冲区文件运行命令时出错

我正在使用gphoto2自动图像捕获和hdrgen从许多低动态范围(LDR)图像生成(高动态范围)HDR 图像。我使用以下行将多个 LDR 图像转换为 HDR:

效果很好。

但是当我尝试通过将同一行放入缓冲区文件()来自动化整个过程(图像捕获和 HDR 生成)时,nano file.sh我收到以下错误:

有谁知道这有什么问题?