Ubuntuのffmpegで動画から1フレームだけ画像として抜き出す方法

こんにちは、minoruです。

mp4などの動画ファイルから、その動画の中から1フレームだけを画像として抽出する方法を書き残しておきます。ffmpegというアプリを予めインストールしておきましょう。

※この方法はXubuntuでも使えます。

ffmpegのインストール方法については、Xubuntuで動画の形式を変換する方法【Linux ffmpeg】でも触れているので、そちらを参照してください。

手順

Ctrl + Alt + T でターミナルと呼ばれる真っ黒な画面を呼び出します。

以下のコマンドを入力。

ffmpeg -ss 10 -i 動画ファイル名.mp4 -frames:v 1 保存する画像ファイル名.png

-ss の後の 10 は動画開始から10秒時点でのフレームという意味です。

※ちなみにVLCメディアプレイヤーでも同様に画像を作れます。Linux初心者で「コマンドってよくわからなくて…」と言う人にはわかりやすいかもね。

補足

初心者のためにさらに補足。たとえば ABC.mp4 という動画がデスクトップに置いてある場合、Ctrl + Alt + T でターミナルと呼ばれる真っ黒な画面を呼び出した後、以下のコマンドを入力して「パソコン内の居場所」をデスクトップに移動させてあげてください。

cd ~/デスクトップ

cdコマンドは光学ディスクやCD-ROMなどとは全く関係なく、ターミナルさんのパソコン内での居場所を変更するためのコマンドです。

単に…

cd

とだけ命令すると、個人のHomeディレクトリ(ホームフォルダ)に戻ります。

移動した後に「ええっと、動画ファイルの場所、ここで合ってたっけ?」とか、「動画ファイルの名前なんだっけ?」と思った場合は…

ls

と命令すると、その居場所のファイルやフォルダの一覧を表示してくれます。

何秒かおきに連番で画像にする方法

画像1枚だけでなく、何秒かおきに画像を抜き出したい場合、上記のコマンドを何度も繰り返すのは面倒なので、連番で画像を作る方法があります。

ffmpeg -i 動画ファイル名.mp4 -r 0.25 %04d.png

ポイントは -r の後の0.25という箇所で、これは4秒ごとに動画のスクショを作成します。

1 ÷ 【何秒ごとか】= 数値

なので、1÷4秒ごと=0.25…という事になります。20秒ごとにスクショを作成したいなら1÷20=0.05になります。ただ、ここの指定が0.05以下だと上手く動作しないと言う記事を見た事がありますので、上手く動作しない場合はそれが原因かも。

%04d.pngは4桁の連番数字(0001〜)でファイルを作成してくれます。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする