web-dev-qa-db-ja.com

Webカメラでストップモーションまたはタイムラプスビデオを作成する方法

V4l2デバイスとして動作するウェブカメラがあります。

ストップモーションまたは time-lapse ビデオをキャプチャする最も便利な方法は何ですか?

N.B.

ストップモーションとタイムラプスは関連していますが、概念的に異なります。

タイムラプスでは、設定した間隔でシーンの写真を撮影し、それをビデオに結合します(非常に高速になっているように見えます)。

ストップモーションは、シーンを制御し、変更を加えるたびに画像を取得して、アニメーション(ウォレスやグロミットなど)を形成する場所です。

タイムラプスのアプリケーションは、設定した間隔で写真を撮れる必要があります。

27
Seppo Erviälä

無数の画像をキャプチャします。

最初のステップは画像のキャプチャです。 10秒に1回写真を撮り、デスクトップにあるディレクトリに保存したいとします。

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は1秒あたりのフレーム数です。したがって、これは毎秒1つのフレームを取得する必要があります。これを30 fpsのビデオに圧縮すると、1分間のキャプチャで2秒間のビデオになります。必要な出力ビデオの量に応じて、これを適切に調整する必要があります。

その行は2000枚の画像を提供し、記録に30分かかり、30 fpsで1分強のビデオを生成します。

すべてを一緒に入れて

ffmpegを使用します。 mencoderなど、さまざまな方法で組み合わせることができますが、ffmpegのOutlook on lifeを好みます。それをインストールした後(Sudo apt-get install ffmpeg)、これをただ使い果たしてください:

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

そこにある品質設定は私のウェブカメラのようなものではないので、より良いエンコードを得るためにオプションをもっと試してみたいと思うかもしれませんが、x264で圧縮された素敵な30fpsビデオを生成するはずです。

フレームレート(-r)をいじりたいと思うかもしれませんが、15fps未満にはなりません。

39
Oli

WebカメラからX秒ごとにキャプチャするには、モーションを使用します。

インストールmotion

Sudo apt-get install motionまたはSudo aptitude install motion

X秒ごとにモーションを構成する

Sudo nano /etc/motion/motion.conf

変数minimum_frame_timeおよびsnapshot_intervalを、Webカメラで写真を撮りたいのと同じ秒数に変更します。

10分= 600秒
20分= 1200秒
30分= 1800秒
1時間= 3600秒
2時間= 7200秒など...

Sudo motionでモーションを実行します CTRL+C

注-デフォルトの/ tmp以外のディレクトリにファイルを保存するようにmotion.confを構成します。たとえば、ホームフォルダー。/tmpに移動するには、より多くの特権が必要です。 motion.confには、他の多くの便利なオプションがあります。

8
Luis Alvarado

gTimelapseダウンロードリンク

enter image description here

画像をキャプチャしてタイムラプスビデオを生成するためのアプリケーション。gPhoto2およびwxWidgetsライブラリに基づいています。

命令のコンパイル

Sourceforge Webサイトからソースをダウンロードします

端末で次のように入力します。

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がウェブカメラをサポートしていないことを読みました-ウェブカメラの代わりにまともなデジタルカメラでこの答えを試してみたい人のために、とにかくこの答えを表示したままにします。

7
fossfreedom

これを行う最も簡単で簡単な方法は、 Motion をインストールすることです。 Linuxベースのオペレーティングシステム用の本格的な監視ソフトウェアです。

Install via the software center

1
Vesa

これを行うためにStopmotionを使用しましたが、それはソフトウェアセンターにあります。 Cheeseでキャプチャすることもできますが、画像の最大数を増やすにはCheeseの構成を変更する必要があります。プロセス全体でStopmotionを使用するのが最も簡単であることがわかりました。

1
Tom Brossman

モーション(motion.conf内)をストリームに設定できるはずです-デフォルトでは、ポート8081でストリーミングします。「リアビュー」ミラーを取得するには、VLCを開き、「ネットワークストリームを開く」と http:// localhost:8081 でポイントします。

0
Derek

Camoramaは、1分間隔で写真を撮影し、WebカメラからWebサーバーにアップロードするために使用したWebカメラビューアー/レコーダーです。それは簡単なセットアップです。また、Ubuntu Software Centerから入手することもできますし、以下を使用してインストールすることもできます。

Sudo apt-get install camorama

お役に立てれば。

0
kicsyromy

すばやく、汚いが、多少柔軟なオプションは次のとおりです。

ffmpeg -pattern_type glob -framerate 25 -i 'image-*.jpg' -c:v libx264 \
    -profile:v high -crf 20 -pix_fmt yuv420p output.mp4

ここでは、-pattern_type globを追加し、ワイルドカード*を使用して、ファイル名を単一引用符で囲みます:'image-*.jpg'

利点:この構文を使用すると、任意の番号から開始し、番号付けに任意のパターンを含めることができます(多くの場合、20例)。

欠点:この構文では、 '%## d'構文のように繰り返しの数字をスキップすることはできません。また、0を前に付けずに番号付けスキームを使用することはできません。つまり、ファイルの命名スキームは00001、00002、... 00033 ...のようなものでなければなりません(番号付けは1,2,3、... 33、...にはできません。そうでない場合、番号「3」はたとえば、「39」と「40」)。

また、入力ファイル名を一重引用符で囲む必要があったことに注意してください。そうしないと、ffmpegはすべての画像ファイルを最初の画像のコピーで上書きしようとしました(ファイルを操作する前にバックアップ用にコピーすることをお勧めします)。

匿名ユーザーによる this edit から。

0
Tim