Creating 提姆elapse 影片With 的Raspberry Pi Camera

32

在这篇文章中,我将解释如何使用Raspberry Pi摄像头模块制作一些延时摄影视频。这是一个两步过程,其中涉及使相机模块在一段时间内拍摄一系列静止图像,然后将它们组合成MP4视频文件。

我们可以使用“raspistill”实用程序来拍摄一组延时照片,如我所述 Taking 你好-Res Photos With 的Pi 相机模组 文章。确保已安装相机并更新了操作系统。

第1步–拍摄延时的照片

此命令将每2秒钟(7200000毫秒)每60秒(60000毫秒)拍摄一次照片,从而产生120张图像。

raspistill -o myimage_%04d.jpg -tl 60000 -t 7200000

的“%04d”将在每个文件名中显示一个四位数的数字。

myimage_0001.jpg
myimage_0002.jpg
...
myimage_0119.jpg
myimage_0120.jpg

第2步–将图像合并为MP4视频

一旦您’已经获得了图像序列,您将需要一种将它们缝合在一起的方法。我决定用“avconv”。您可以使用以下命令安装此有用的库:

sudo apt-get -y install libav-tools

要使用图像序列构造视频文件,请使用以下命令。尽管为了便于阅读,它出现在多行中,但应在命令行中将其作为一行输入:

音视频 -r 10 -i myimage_%04d.jpg 
       -r 10 -vcodec libx264 -crf 20 -g 15
       蒂姆elapse.mp4

的video will be the full resolution of the default image size (2592×1944).

裁剪图像并创建更标准的1280×720分辨率的视频可以使用以下命令:

音视频 -r 10 -i 蒂姆elapse_%04d.jpg
       -r 10 -vcodec libx264 -crf 20 -g 15
       -vf crop=2592:1458,scale=1280:720
       蒂姆elapse.mp4

的“vf”选项定义视频过滤器。在这种情况下,两个滤镜将传入的图像裁剪为2592×1458然后将其缩放到1280×720.

的“r” option tells 音视频 to create a 视频 with a frames per second of 10. It appears twice to prevent 音视频 dropping frames that it thinks are similar.

的“crf” option tells 音视频 to aim for a quality level of “20”这是一个很好的起点。值越低越好,但会增加文件大小。

的“-g” option sets the GOP value. 的的YouTube高级编码设置 页建议将GOP设置为帧速率的一半,因此应将其设置为15。

与在台式机上进行相同的操作相比,Pi上的转换过程非常慢。对于具有数百帧的长序列,我建议 下载适当版本的Libav 在台式机或笔记本电脑上,可以更快地构建MP4文件!

结果

这是我从人形洞窗里拿出来的快速n时光倒流视频。它由600个帧组成,以每分钟1个的速率拍摄10个小时。在那10个小时内什么都没发生,但事实证明Pi可以胜任,而avconv可以制造MP4。我有一台PC来完成艰苦的工作!

当我’我有时间制作一些更有趣的游戏中时光倒流视频。但这是另一天。希望天气更好…

分享。

32条留言

  1. 您并不是在开玩笑,因为Pi需要花费大量时间来获取.jpg并构建视频文件。我的观点是,将.jpg转换为.mp4最好在与Pi不同的机器上完成。当然,您可以在Pi上执行此操作,但需要很长时间!不错的文章,谢谢分享!
    D

  2. 我只是在台式机Linux系统上做过非常相似的事情,使用Python脚本从多台摄像机捕获图像–但是我没有创建一堆单独的jpeg文件,而是将它们附加在一起,以捕获它们,以创建原始的mjpeg文件,也可以使用avconv将其转换为mp4。另外,Python脚本还为每个捕获的图像添加了时间戳。如果有兴趣的话,可以轻松地将该脚本转换为使用raspistill工具而不是网络摄像机。
    http://www.teknynja.com/2013/05/time-lapse-video-capture-from-network.html

  3. 不用担心找到它们,我似乎唯一的问题是前5个jpg很好,但之后文件大小为0

    有什么想法吗?

    谢谢

    斯蒂维普

  4. I’m在运行此命令时遇到问题。你能帮助我吗?

    pi @ raspberrypi / home $ raspistill -o myimage_%04d.jpg -tl 2000 -t 10000
    mmal:main:打开输出文件时出错:myimage_0001.jpg〜
    不会生成任何输出文件

    mmal:main:打开输出文件时出错:myimage_0002.jpg〜
    不会生成任何输出文件

    mmal:main:打开输出文件时出错:myimage_0003.jpg〜
    不会生成任何输出文件

    mmal:main:打开输出文件时出错:myimage_0004.jpg〜
    不会生成任何输出文件

  5. 格雷厄姆·伊斯顿(Graham Easton)

    你好
    RE Pi游戏中时光倒流
    我将SD卡中的图像保存在主目录中的文件中,但是我想在PC上的视频编辑包中对其进行编辑。我知道我可以将包含图像的文件导出到PC,但是现在花了两天时间环顾四周,但由于文件未显示在SD卡上,我仍然找不到方法。
    任何指导将不胜感激

    提前谢谢了
    格雷厄姆

  6. 我有写权限。输入上面的代码。获取错误消息。
    必须至少指定一个输出文件。怎么做?
    谢谢!!!

  7. 勒·蓬纳·塞巴斯蒂安

    一个儿子的父亲教程…。 Tout est clair etprécismalgrélaBarrièrede la langue…. Cela m’a été d’une aide précieuse…. Encore merci!!!!!

  8. 嘿,

    我在运行cmd时遇到问题– Get error “无此文件或目录” every 蒂姆e.
    我所有的文件都是名称:

    00022207.jpg
    00032212.jpg
    00042217.jpg
    00052222.jpg
    等等…

    我正在尝试以下代码:

    音视频 -r 10 -i %8d.jpg -r 10 -vcodec libx264 -crf 20 -g 15 蒂姆elapse.mp4

    错误:
    音视频 version 0.8.10-6:0.8.10-1+rpi1, Copyright (c) 2000-2013 the Libav developers
    建于2014年3月22日02:13:15与gcc 4.6.3
    %8d.jpg:没有这样的文件或目录

    我需要像这样的名字吗“photo_”在每个文件的开头?我以为%8d会拿走前8个diget…

    任何帮助表示赞赏。

    干杯,
    纳江

  9. 嗨,马特,

    可悲的是,仍然有问题。还有其他花招吗?

    这是我所做的:

    [email protected] ~/timelapse_201404261512 $ ls
    image_00011512.jpg image_00111654.jpg image_00211835.jpg image_00312016.jpg image_00412157.jpg image_00512338.jpg image_00610210.jpg image_00710351.jpg image_00810532.jpg image_00910713.jpg
    image_00021523.jpg image_00121704.jpg image_00221845.jpg image_00322026.jpg image_00422207.jpg image_00522348.jpg image_00620220.jpg image_00720401.jpg image_00820542.jpg image_00920723.jpg
    [email protected] ~/timelapse_201404261512 $ 音视频 -r 10 -i image_%08d.jpg -r 10 -vcodec libx264 -crf 20 -g 15 -vf crop=2592:1458,scale=1280:720 蒂姆elapse.mp4
    音视频 version 0.8.10-6:0.8.10-1+rpi1, Copyright (c) 2000-2013 the Libav developers
    建于2014年3月22日02:13:15与gcc 4.6.3
    image_%08d.jpg: No such file or directory

    [email protected] ~/timelapse_201404261512 $

  10. 游戏中时光倒流正常,但最终图像仍保留在监视器上。由于存在图像,因此无法构建视频文件。重新启动不会在SD卡上显示任何图像。
    我如何摆脱最终形象?

  11. 我正在做一艘从路易斯安那州飞往加利福尼亚州的船只的缩时摄影。每30秒拍摄一次,持续24小时。到目前为止,在第19天,一切正常。这包括在第二个窗口中运行Foxtrot GPS来跟踪航行,并能够在旅行结束时对图像进行地理编码。每天只需将所有2,881张图像记录到拇指驱动器上,然后每天观看视频即可。下次旅行,加利福尼亚到阿拉斯加!

  12. 喂我’我们已经将这种设置工作了几个月。最近,已经随机创建了文件名,并在文件名的末尾带有〜,因此,所创建的文件中有大约名为a0000.jpg〜。这似乎导致avcon进程出现问题,因为它正在查找名为a0000.jpg而不是a0000.jpg〜的文件。还有其他人遇到过此类问题吗?

    • 马克·穆特

      托尼
      通常,文件末尾的波浪号(〜)表示该文件当前由操作系统保持打开状态,以便对其进行写入。
      可能的原因是您正在运行多个命令来拍照和/或写入所选文件系统时出现问题。
      那么,您是在给定的时间段内从命令行使用raspistill还是在给定的界面时间内使用它,还是使用python脚本来触发单张照片,然后等待并重复?文件系统是否发生了某些问题,或者空间不足?您是否使用sudo发出了命令? (但是如果您以pi身份登录并正在向pi写入内容,则没有必要’s home directory)
      问候
      杂种

发表评论

该网站使用Akismet减少垃圾邮件。 了解如何处理您的评论数据.