V4l2デバイスとして動作するウェブカメラがあります。
ストップモーションまたは time-lapse ビデオをキャプチャする最も便利な方法は何ですか?
N.B.
ストップモーションとタイムラプスは関連していますが、概念的に異なります。
タイムラプスでは、設定した間隔でシーンの写真を撮影し、それをビデオに結合します(非常に高速になっているように見えます)。
ストップモーションは、シーンを制御し、変更を加えるたびに画像を取得して、アニメーション(ウォレスやグロミットなど)を形成する場所です。
タイムラプスのアプリケーションは、設定した間隔で写真を撮れる必要があります。
最初のステップは画像のキャプチャです。 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未満にはなりません。
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には、他の多くの便利なオプションがあります。
画像をキャプチャしてタイムラプスビデオを生成するためのアプリケーション。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がウェブカメラをサポートしていないことを読みました-ウェブカメラの代わりにまともなデジタルカメラでこの答えを試してみたい人のために、とにかくこの答えを表示したままにします。
これを行う最も簡単で簡単な方法は、 Motion をインストールすることです。 Linuxベースのオペレーティングシステム用の本格的な監視ソフトウェアです。
これを行うためにStopmotionを使用しましたが、それはソフトウェアセンターにあります。 Cheeseでキャプチャすることもできますが、画像の最大数を増やすにはCheeseの構成を変更する必要があります。プロセス全体でStopmotionを使用するのが最も簡単であることがわかりました。
モーション(motion.conf内)をストリームに設定できるはずです-デフォルトでは、ポート8081でストリーミングします。「リアビュー」ミラーを取得するには、VLCを開き、「ネットワークストリームを開く」と http:// localhost:8081 でポイントします。
Camoramaは、1分間隔で写真を撮影し、WebカメラからWebサーバーにアップロードするために使用したWebカメラビューアー/レコーダーです。それは簡単なセットアップです。また、Ubuntu Software Centerから入手することもできますし、以下を使用してインストールすることもできます。
Sudo apt-get install camorama
お役に立てれば。
すばやく、汚いが、多少柔軟なオプションは次のとおりです。
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 から。