观看云层移动或幼苗生长。延时摄影确实可以带给您世界在宏观层面上的运作方式的感知,这超出了人类正常的时间体验所能想到的范围。或换句话说:它可以使观看油漆变干变得非常有趣。不幸的是,像 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
-
树莓派
+关注
关注
116文章
1697浏览量
105485 -
网络摄像头
+关注
关注
2文章
43浏览量
16018
发布评论请先 登录
相关推荐
评论