mp4 to jpg
Final Cut Pro Mac Tello テクノロジー ドローン

ドローン撮影したMP4の最初のフレームを静止画として一括で書き出し

MP4の最初のフレームを静止画へ書き出し・切り出し(Mac)

ドローン撮影後の映像ファイル管理に、静止画を書き出す必要があって、ちょこっとスクリプト作ったので。
別々のフォルダに保存されているMPEG4などのムービーファイルから各動画のサムネイルを切り出す際に、毎回毎回手作業を繰り返すのが嫌だな、一括処理したいなとか。そういうとき用。
クライアント様への提出資料作成にサムネイルを書き出し(切り出し)する必要がある方とか。
ImageMagickで、自動化がしたいときとか..。のサンプル。

 

MP4の最初のフレームを静止画として書き出し・切り出し

 

スクリプト動作条件

・ffmpegがインストール済み (ver 4.2.1で検証)。

・ImageMagick (convert)がインストール済み。(ver 7.0.8-66で検証)。

 

MP4ファイルが1ファイルだけの場合で、1frame目を書き出す場合

MPEG4のファイルから先頭フレームの1枚だけをjpg に書き出しする場合。
(shell scriptにするほどもないんだけど、後述の複数MP4ファイルの書き出しのため。)

作成するスクリプト

[crayon-5dce21e1d9621071059678/]

使い方

Terminal.app でMP4ファイルのあるフォルダへcd。
onefr.sh MP4のファイル名 を入力。
出力結果: MP4のファイル名.jpg
*10フレーム目をjpg出力したい場合は、スクリプト内の$line[1] を$line[10]とかに変更。

 

MP4ファイルが複数あって、保存先がいろんなフォルダに分かれている場合

MP4ファイルがフォルダ階層が異なる場所に保存され、一定のフォルダ階層ルールながらもMP4の保存先がバラバラな場合。
カメラ撮影などで、撮影時刻ごとにMP4の保存フォルダが分割されている場合など。

 

考え方

1. MP4保存先一覧 を記したファイル(movlist.txt)を 出力させる。
2. movlist.txt に書かれた複数MP4ファイルに対してjpg書き出しを実行。

 

作成するスクリプト

作成するスクリプトは、2つ。
・mp4find.sh。
movlist.txtを出力するための、MP4検索スクリプトmp4find.sh(簡易、エラー処理なし)。

・onefr.shの改訂版oneforall.sh 。
movlist.txtに記されたファイル名に従って、順次jpgファイルを書き出す。

■ mp4find.sh
[crayon-5dce21e1d9630928599527/]
mp4find.sh で、movlist.txtを生成。
実行する際は、ムービーフォルダや、該当プロジェクトのプロジェクトフォルダへcdしてから。

movlist.txt 例

movlist.txt
movlist.txt

 

■ oneforall.sh
(onefr.shから少し改変。エラー処理なし。)
[crayon-5dce21e1d9639865739417/]
movlist.txtに書かれたMP4ファイルのパスから、MPEG4を読み出して、1フレームだけjpgに
書き出す。
それが済んだら、次のMP4ファイル…と、順次書き出し。

トップに戻る