Ubuntuの下で、写真のコレクションからタイムラプスを作成したい。HDビデオを作成し、理想的にはサウンドトラックを追加したいと思います。
Ubuntuの下で、写真のコレクションからタイムラプスを作成したい。HDビデオを作成し、理想的にはサウンドトラックを追加したいと思います。
回答:
Ffmpegがそれを行います。画像があるimg001.jpg, img002.jpg, img003.jpg, ...
場合は、コマンドラインで次の操作を行います。
ffmpeg -i img*.jpg output.mpeg
ffmpeg --help
manページやWebには、さらに多くのオプションがあります。これらにより、フレームレートと出力形式を制御できます。
.jpg
出力ファイルのような後者のファイルが考慮されるため、エラーが発生します。私は得ますFile 'DSCF6134.JPG' already exists. Overwrite ? [y/N]
-それほど素晴らしくありません。私の解決策は、ファイルリストを生成し\ls *.JPG | sed "s/^/file '/;s/$/'/" > files.txt
、それをロードすることffmpeg -f concat -i files.txt output.mpeg
でした。
ffmpeg -pattern_type glob -i "picture*.jpg" output.mpeg
最初に、作成日に基づいてすべての* .JPGファイルの名前を変更します。カメラがファイル名を変更したり、単にそれらを注文したりすることは、どういうわけか私たちの望んでいないことです。ただし、作成日までに名前を変更すると常に機能します。
jhead -n%Y%m%d-%H%M%S *.JPG
その後、このリストをファイルに入れます。
ls -1tr | grep -v files.txt > files.txt
次にmencoder
、AVI
20 fpsを使用してビデオを作成します。これにより、通常、合計されたすべての画像と同じサイズの巨大なビデオファイルが生成されることに注意してください。
mencoder -nosound -noskip -oac copy -ovc copy -o output.avi -mf fps=20 'mf://@files.txt'
私は通常、カメラの最低解像度(5 MP)でタイムラプス用に写真を撮ります。適切な1080pビデオを生成するために、画像はまず幅1920ピクセルにリコールされ、次に高さ1080にトリミングされます。このように、私は写真のコンテンツを変更せず、切り抜くだけです:
ffmpeg -i output.avi -y -sameq -vf scale=1920:1440,crop=1920:1080 output-final.avi
メンコーダーを使用して写真をまとめるのはsegmentation fault
、ffmpegを使用したからです。
ffmpeg
、コマンド、-sameq
オプションは今に置き換えている-qscale 0
プロジェクトtimelapse-darktableにも興味があるかもしれません。ダークテーブルを使用して画像を簡単に後処理し、一連のタイムラプスを作成することが容易になります。使用方法については、https://code.google.com/p/timelapse-darktable/wiki/generateTimelapseをご覧ください。
メンコーダーを使用できます。オプションは非常に明示的です:
それらがすべて現在のディレクトリに順序付けられた名前であり、ファイル/tmp/files.txtにリストが必要な場合:
ls -1 *jpg > /tmp/files.txt
出力ファイルを30fpsの/tmp/test.aviにしたい場合:
mencoder -nosound -ovc lavc -lavcopts vcodec=mpeg4 -o /tmp/test.avi -mf type=jpeg:fps=30 mf://@/tmp/files.txt
このチュートリアルでAdd Slideshow Clip
説明されているように、Kdenliveはメニューを使用してタイムラプスを生成することもできます。
同じサイトによると、Openshotには同様の機能がありますが、「バグが多すぎる」ためお勧めしません。それでも、お好みのビデオエディターであれば、適切な名前のファイル(001.jpgからNNN.jpg)のシーケンスをOpenshotウィンドウにドラッグアンドドロップして、タイムラプスとしてインポートすることもできます。