如何改善 gphoto2 实时查看输出?

如何改善 gphoto2 实时查看输出?

我尝试使用 v4l2 环回将我的佳能 EOS M50 添加为网络摄像头,如下所示:

gphoto2 --stdout --capture-movie | ffmpeg -i - -vcodec rawvideo -pix_fmt yuv420p -threads 0 -f v4l2 /dev/video0

它可以工作,但是图片是 512x288。

另一方面,Windows 系统上的 SparkoCam 可以以不错的 fps 和对 ISO 等的完全控制从中挤出 1080p 实时取景。图片非常清晰,看起来没有放大(尽管我还没有进行逐像素分析)。无论如何:我如何使用 gphoto2 实现相同或相似的结果?

答案1

使用命令gphoto2 --get-config liveviewsize获取实时视图尺寸选项。对我来说,它是:0 表示大,1 表示中,2 表示小(我的情况是 Canon M50)。然后您可以将其作为参数传递。如下所示:gphoto2 --set-config liveviewsize=0 --capture-movie。给出最终命令:

gphoto2 --stdout --set-config liveviewsize=0 --capture-movie | ffmpeg -i - -vcodec rawvideo -pix_fmt yuv420p -threads 0 -f v4l2 -s:v 1920x1080 -r 25 /dev/video2./dev/video2我的 DSLR 设备的名称在哪里。

答案2

我也遇到了这个问题。当我使用 entangle 查看我的 Canon M50 的实时预览时,它显示 1024x576 预览图像,所以我知道 Ubuntu 能够流式传输更好的预览。但是,我不知道如何修复 gphoto2 配置以使用它来流式传输 1024x576 预览。

编辑:嗯,现在不知为何它开始工作了。尝试打开 entangle 并多次打开和关闭实时预览,直到分辨率达到 1024x576。然后再次运行 gphoto2,看看分辨率是否已提高到 1024x576。这似乎对我有用。

现在它不起作用了。我不明白为什么。

EDIT2:我想我有一个解决方案。entangle --debug-entangle在终端中运行。单击 entangle 中的实时预览按钮几次,直到它显示 1024x576 的分辨率。然后按 Ctrl+C 退出 entangle。现在运行gphoto2 --stdout --capture-movie | ffmpeg -i - -vcodec rawvideo -pix_fmt yuv420p -threads 0 -f v4l2 /dev/video0 分辨率应设置为 1024x576。

相关内容