豪鬼メモ

一瞬千撃

Linux上で動画のカットをする

デジカメで撮ったMPEG4形式の動画をLinux上でカット編集する方法についてメモっておく。


まずは、撮影する。カメラ側でAVCHD形式で撮ると後で面倒なので、MP4形式で保存するように設定しておく。

PCに保存して、avidemuxで読み込む。

$ avidemux original.mp4

セーフモードを使うかどうか聞くダイアログが出た場合には「cancel」を押して通常モードにする。切り出すデータの始点と終点を選んで、画面左にある「Format」オプションの値を「MP4」にしてから、「Save」メニューの「Save Video」で保存する。

avidemuxで動画を書き出すと作成日時のメタデータが消えてしまう。そうすると後工程のデータ管理で非常に不便になるので、作成日時を再設定する必要がある。そのためにはavconvを使う。

$ avconv -i input.mp4 -c copy -metadata creation_time="2013-02-06T10:35:29" output.mp4

creation_timeの値はISO8601のロングフォーマットのタイムゾーン情報なしにするとうまくいくっぽい。「-c copy」で再エンコードを抑止するのも重要。

ということで、動画のカット編集をサクサクしていくべきだ。子育ての記録にしても、だいたい30秒以下の動画でないと、見返す時に辛い。そして、その条件で一発撮りで良い動画が撮れることはまずないので、カット編集はマジで重要。

なお、avidemuxで編集を行う際に、VideoモードをCopyからMPEG4-AVCなどに変更する(=再エンコードを行うようにする)と、画面左のメニューからFilterを追加して回転等の画像編集を行うこともできる。1440x1080をアスペクト比1920x1080で表現しているファイルを回転させる場合、回転した後に1080x1920へのリサイズも行なっておかないと画像が扁平になってしまう。また、Videoを再エンコードした場合にはAudioも再エンコードしておかないと音が消えたりする不具合があるので、再エンコードしておいた方がいい。

余談だが、JPEGファイルのEXIFの撮影時刻を変換するには、以下のコマンドを打てばよい。

exiftool -alldates='2006:10:10 10:10:10' -overwrite_original *.JPG