如何使用树莓派和DSLR或网络摄像头捕获延时照片

电子说

1.3w人已加入

描述

观看云层移动或幼苗生长。延时摄影确实可以带给您世界在宏观层面上的运作方式的感知,这超出了人类正常的时间体验所能想到的范围。或换句话说:它可以使观看油漆变干变得非常有趣。不幸的是,像 Genie 这样的专业延时摄影设备(同时增加了旋转或移动相机的功能)的价格可能高达1000美元。今天,我们将只用Raspberry Pi制作一个基本的延时摄影机控制器,用于DSLR或USB网络摄像头。

请确保也检查我们所有其他出色的Raspberry Pi项目。

DSLR

和往常一样,我们使用Pi进行的所有工作都将通过SSH命令行完成,并且如果您已经存储,则可以使用具有相同凭据的SFTP来抓取文件他们在Pi而不是相机上。如果不确定Pi的IP地址是什么,请登录路由器并查看当前连接的设备列表-它应该正确报告自身。

网络摄像头

首先安装一些必需的软件:

sudo apt-get install gphoto2

sudo apt-get install imagemagick

GPhoto2是一个命令行实用程序,可以直接与受支持的DSLR相机对接(在此处查看完整列表)。我使用了佳能Rebel T4i/650D。现在,通过USB将您的相机连接到Pi。

由于我使用了自动ISO值和AV模式,因此设置相对简单,我们可以仅使用命令行捕获该系列–该实用程序包括内置时间流逝参数。这是可以用来测试功能的最基本命令:

gphoto2 --capture-image-and-download

将文件传输到您的Pi,或者

gphoto2 --capture-image

以将图像保留在相机上。流行音乐为8 MB时,最好将它们保留在相机上并在PC或Mac上进行事后拼接电影。

重要提示:默认情况下,图像是保存到SD-RAM,而不是相机中的存储卡。意味着您将失去所有这些(我从经验上讲)。为了确保它们实际保存,我们需要首先设置捕获目标:

gphoto2 --get-config /main/settings/capturetarget

查看其输出列表,并如下设置目标,以替换 1 与显示为您的卡片的任何一个。

gphoto2 --set-config /main/settings/capturetarget=1

要在延时模式下捕获,请附加 -F 和-我指定要捕获的帧的总数,以及每个帧之间的时间 interval 。在此示例中,每30秒捕获一次,总共1440帧,当制作成24 FPS影片时,大约等于一分钟。我认为相机的电池不会持续这么长时间,但是我会看到有多少。

gphoto2 --capture-image -F 1440 -I 30

请记住一个怪癖;命令完成后,相机可能会关闭并变得无响应–您需要手动打开电源开关(至少在我的型号上如此)。在使用时,这在现场并不是问题,但是出于测试目的,这非常烦人。如果您知道解决方法,请在评论中告诉我!

网络摄像头

拍电影

传输文件到台式机进行处理。在Mac上,我发现最简单的方法是使用命令行,但是首先需要安装XCode, Homebrew 和 MPlayer 。为此,请先从App Store下载Xcode(免费),然后从首选项-》 下载标签,启用命令行工具

网络摄像头

然后运行(一次运行):

ruby 《(curl -fsSkL raw.github.com/mxcl/homebrew/go)

brew doctor

brew install mplayer

网络摄像头

您现在应该已经安装了必要的编码组件。运行以下命令,首先创建捕获的.jpg文件的列表,然后将该列表提供给mencoder(用于创建视频的实用程序)。如果您想让电影走得更快,请更改FPS值。

cd

ls *.jpg 》 list.txt

mencoder -nosound -ovc lavc -lavcopts vcodec=mpeg4:aspect=16/9:vbitrate=8000000 -vf scale=640:480 -o timelapse.avi -mf type=jpeg:fps=24 mf://@list.txt

这就是我最终得到的结果,从早上到中午每分钟使用330帧中的24 FPS -下午。英国的天气真的很糟糕,全天每5分钟从晴天到阴天。感叹。

要在Windows中编码电影,或者如果您更喜欢使用GUI,请下载Avidemux,然后按照下面的视频教程进行操作。确保您的照片已按顺序编号。

https://www.youtube.com/watch?v=GZmkfk-YrG4#t=73

使用USB网络摄像头

当然,并不是每个人都有单反相机,但您也可以使用现成的USB网络摄像头进行延时摄影,而不是为Raspberry Pi购买昂贵的官方摄像头模块。 PS3 Eye在PC或Mac上正常工作通常很麻烦,但在Pi上开箱即用。您可能需要使用有源的USB集线器,并且对相机的支持尚不完善。

首先,检查是否已正确检测到您的网络摄像头。

ls -l /dev/video*

希望您会看到/dev/video0这样列出:

网络摄像头

然后我们可以继续安装网络摄像头捕获软件并进行测试

sudo apt-get install fswebcam

fswebcam -d /dev/video0 -r 640x480 test.jpeg

使用以下命令删除文件:

rm test.jpg

几次测试以使您能够正确定位相机,然后我们将使用延时脚本。

mkdir timelapse

nano runtimelapse

粘贴以下内容:

#!/bin/bash

# Timelapse controller for USB webcam

DIR=/home/pi/timelapse

x=1

while [ $x -le 1440 ]; do

filename=$(date -u +“%d%m%Y_%H%M-%S”).jpg

fswebcam -d /dev/video0 -r 640x480 $DIR/$filename

x=$(( $x + 1 ))

sleep 10;

done;

出于测试目的,我将两次射击之间的等待时间设置为10秒。实际开始捕获时,您可能希望将其更改为每分钟。更改以下行以确定要捕获的帧数,在示例中将其设置为1440:

while [ $x -le 1440 ]; do

要使脚本可执行,请使用:

chmod 755 runtimelapse

然后使用以下命令运行它:

。/runtimelapse

网络摄像头

制作电影

仍然在SSH命令行上,我们将尝试直接在Pi上拼接电影-如果您已拍摄了数千张照片,并且您的网络摄像头分辨率较高,则可能会发现速度很慢,这种情况下滚动

网络摄像头

cd timelapse

ls *.jpg 》 list.txt

sudo apt-get install mencoder

mencoder -nosound -ovc lavc -lavcopts vcodec=mpeg4:aspect=16/9:vbitrate=8000000 -vf scale=640:480 -o timelapse.avi -mf type=jpeg:fps=24 mf://@list.txt

(如果有的话),按照DSLR的电影说明操作,然后将文件传输到PC。看起来不错,但输出的文件为0 KB,这意味着设备的temp文件夹中没有足够的空间。我以干净的安装方式解决了这个问题,并再次扩展了根系统-BTSync似乎弄乱了一些临时文件。

这是USB网络摄像头的完整场景,从傍晚到天黑。

这比我想象的要容易得多,并且在评论中找到详细说明更简单方法的人也不会感到惊讶!尝试一下它,以一种令人难以理解的迷人生活观,并在评论或其他特别引人入胜的延时录像中分享指向您创作的链接。
       责任编辑:wv

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分