当前位置: 首页>>技术教程>>正文


如何使用网络摄像头制作定格动画或Time-lapse视频?

, ,

问题描述

我有一个可用作v4l2设备的网络摄像头。

捕获stop-motion或time-lapse视频的最便捷方法是什么?

N.B.

stop-motion和time-lapse相关但在概念上有所不同。

在Time-lapse中,您可以按固定的时间间隔拍摄场景照片,然后将其组合到视频中(看起来真的非常快)。

Stop-motion是您控制场景并为所做的每个更改拍摄图像以形成动画(例如Wallace和Grommit)的地方。

time-lapse的应用程序需要能够按设定的间隔拍照。

最佳方法

捕获不计其数的图像。

第一步是捕获图像。假设您想每10秒拍摄一张照片并将其保存到桌面上的目录中

mkdir ~/Desktop/cap
cd ~/Desktop/cap

我们使用streamer进行捕获,因此让我们安装它:

sudo apt-get install streamer

现在我们要捕捉

streamer -o 0000.jpeg -s 300x200 -j 100 -t 2000 -r 1

-t是我们要捕获的帧数。 -r是每秒的帧数。因此,这应该每秒抓取一帧。如果将其压缩为30fps视频,则一分钟的捕获将变为2秒的视频。您将需要根据要输出的视频量来适当调整它。

该行将为您提供2000张图像,录制将花费半小时,并且以30fps的速度生成仅1分钟的视频。

放在一起

我将使用ffmpeg。有多种不同的组合方式,包括mencoder,但我更喜欢ffmpeg的生活观。安装它(sudo apt-get install ffmpeg)后,只需将其删除:

ffmpeg -r 30 -i %04d.jpeg -s hd480 -vcodec libx264 -vpre hq time-lapse.mp4

那里的质量设置与我的网络摄像头不一样,因此您可能想更多地使用这些选项以获得更好的编码,但这应会生成一个不错的30fps视频,并以x264压缩。

您可能想使用帧速率(-r),但我不会低于15fps。

次佳方法

要从网络摄像头捕获每X秒钟的时间,请使用动作。

安装motion

sudo apt-get install motionsudo aptitude install motion

每X秒配置一次运动

sudo nano /etc/motion/motion.conf

将变量minimum_frame_time和snapshot_interval更改为与网络摄像头拍照相同的秒数。

10分钟= 600秒20分钟= 1200秒30分钟= 1800秒1小时= 3600秒2小时= 7200秒,依此类推…

sudo motion运行运动用CTRL + C停止运动

注意-将motion.conf配置为将文件保存在默认目录/tmp以外的其他目录中。例如您的主文件夹。由于进入/tmp需要更多特权。您还可以在motion.conf中找到许多有用的选项,这些选项可能会满足您的其他许多需求。

第三种方法

gTimelapse(Download Link)

An application for capturing images to generate timelapse videos, built on gPhoto2 and wxWidgets libraries.

编译指令

从sourceforge网站下载源代码

在终端中输入以下内容:

cd Downloads 
gunzip gtimelapse-0.1.tar.gz
tar -xvf gtimelapse-0.1.tar
cd gtimelapse
sudo apt-get install build-essential libgphoto2-2-dev libwxbase2.8-dev libwxgtk2.8-dev gphoto2
./configure
make
sudo make install

运行应用程序类型

gtimelapse &

n.b. 1个

gphoto2 --list-cameras | more

n.b. 2

有关更多有用的信息,请参见此blog

列出应用程序支持的所有兼容设备

n.b. 3

我已经读过gphoto2不支持网络摄像头-无论如何,只要有人想用一台像样的数码相机而不是网络摄像头来尝试此答案,我将使该答案始终可见。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/8525.html,未经允许,请勿转载。