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


28

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

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

NB

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

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

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

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


写真の同様の質問には、部分的に重複する興味深い回答があります。
anarcat

回答:


40

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

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

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

すべてを一緒に入れて

を使用しますffmpeg。それを含む多くの異なる方法がありますmencoderが、私ffmpegは人生の見通しを好むだけです。それをインストールした後(sudo apt-get install ffmpeg)、次のように削除します:

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

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

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


1
10秒ごとに必要になります-r 0.1
Seppoエルヴィエラ

man streamer各パラメーターが記述することを説明していません。jパラメータに関する情報はどこで入手できますか?特定のFPSでCTRL + Cを押すまで、どのようにキャプチャできますか?
トマーシュザト-復帰モニカ

@oli ffmpegはもう機能しません。何を使うべきですか?
ティム

1
@ChrisH技術的には問題ありませんが、それがスムーズなビデオの基本的なカットオフだということです。それはあなたがそれらをどれだけ早く取っているかに大きく依存します。
オリ

2
@TomášZato streamer -hははるかに包括的です。開発者が多くの努力を払うのは嫌い--helpですが、manページには何もしません。
WasabiFlux

9

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停止してモーションを実行しますCTRLC

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


ストリーマーよりもはるかに優れています。ルートが必要なソリューションが好きかどうかはわかりませんが、バックミラーのように使用する能力を失っているようですが、ストリーマーよりもはるかに優れており、私が見たいと思っていた別の問題を解決するかもしれませんat、そこにいる場合にのみ写真を撮っています。他の問題を修正できれば、これを解決済みとしてマークします。
デイブジャコビー

実際には、それを使用するためにrootアクセスは必要ありません。構成ファイルを編集するには、rootアクセスのみが必要です。
ルイスアルバラード

デフォルトのパスに書き込みたい場合は、それも必要かもしれませんが、それが私が最初に変更したことです。ありがとう。
デイブジャコビー

問題ありません。喜んでお手伝いします。
ルイスアルバラード

私はそれを試してみました。うまくいきました。いつかもう一度試すかもしれません。しかし、それは私にバックビューの側面を与えませんでした。それは自動写真撮影よりも価値があります。だから、私は今チーズを実行しています。
デイブジャコビー

7

gTimelapseダウンロードリンク

ここに画像の説明を入力してください

画像をキャプチャしてタイムラプスビデオを生成するためのアプリケーション。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 &

NB 1

gphoto2 --list-cameras | more

NB 2

さらに有益な情報については、このブログを参照してください

アプリケーションがサポートするすべての互換性のあるデバイスをリストします

NB 3

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


すべての前提条件でwxWidgetsを取得してコンパイルするのにかなりの時間がかかりました。私もgTimelapseをコンパイルしましたが、次のようにクラッシュします:[デバッグ] 13:21:12:./src/common/menucmn.cpp(859):assert(item)がCheck()で失敗しました:wxMenu :: Check:no such item [デバッグ]の生成スタックトレース...してくださいwaitTrace /ブレークポイントトラップ
セッポErviälä

わかりました-自分自身をビルドするために、今日いつか行きます-私は答えにいくつかの指示を追加します(自分でこれをビルドできると仮定して)。
fossfreedom

gphoto2でサポートされているデジタルカメラがあるので、これは実際に非常に役立ちます。このようなライブラリが存在することは知りませんでした。
セッポErviälä

1

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


1

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

ソフトウェアセンターからインストールする


1

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

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'

利点:この構文を使用すると、任意の番号から開始し、番号付けに任意のパターンを設定できます(たとえば、20000前後など、20でカウントを作成することがよくあります)。

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

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

匿名ユーザーによるこの編集から。


0

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


0

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

sudo apt-get install camorama

お役に立てれば。


申し訳ありませんが、CamoramaでWebカメラが機能しないことを書いたことがわかりました。
キシロミー

もっと詳しく説明していただけますか?はタイムラプスオプションをカバーしていません:(
火星ロバートソン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.