ffmpeg 動画から画像を抜き出す

ffmpeg 動画から画像を抜き出す

Docker + ffmpeg 動画から画像を抜き出す

ffmpegは動画の加工・変換などいろいろできるすごいやつ。
これにより動画から画像を抜き出したい。
しかし、インストールして環境が汚れるのは恐怖。
なのでDockerを使い、コンテナ上でffmpegを扱う。

Dockerは前回(DockerをWindows10で使う)インストールした。

1. Dockerイメージ ダウンロード

コマンドプロンプトから

1
docker search ffmpeg

と打つとDocker Hub(Dockerイメージが置いてあるとこ)にある、名前にffmpegと付いたDockerイメージを検索できる。

検索した結果jrottenberg/ffmpegが一番メジャーっぽいのでこれを使う。

1
docker pull jrottenberg/ffmpeg

と打つとjrottenberg/ffmpegイメージがダウンロードできる。

1
docker images

で確認。

1
2
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
jrottenberg/ffmpeg latest 2100506dfbea 15 months ago 218MB

表示された。ちゃんとある。
続いてちゃんと動くか試す。

1
docker run --rm jrottenberg/ffmpeg

と打つ。ちゃんと動くとjrottenberg/ffmpegで使えるコマンドの説明がたくさん表示される。
--rmはコンテナの実行終了時にコンテナを消してくれるオプション。

2 コンテナ内とファイル共有

Dockerを使ってコンテナ上でアプリを起動した場合、その空間はコンテナ外から切り離されているため通常はコンテナの外にあるファイルを扱えない。
今回はffmpegを使って動画を加工したいのでそれだと困る。
なのでDockerの設定を変更してローカルファイルを扱えるようにする。

まずはDockerの設定画面を開く。



デスクトップ右下のクジラをクリック。



「Settings」をクリック。



「Resources」→「FILE SHARING」にコンテナと共有したいフォルダを設定。
今回はC:\Dockerとした。

「Apply & Restart」を押すと設定が変更される。

3. ffmpeg 動画から画像抜き出し

1
docker run --rm -v C:/Docker/ffmpeg:/ffmpeg jrottenberg/ffmpeg -i /ffmpeg/test.mp4 -r 1 -f image2 /ffmpeg/img%03d.jpg

とすると、画像がばーっと出てくる。

-v 「共有したいフォルダ」:「コンテナで使うフォルダ」としたので、コンテナの中で「共有したいフォルダ」の中のファイルが扱える。
jrottenberg/ffmpeg -i /ffmpeg/test.mp4 -r 1 -f image2 /ffmpeg/img%03d.jpg-iはなんか絶対いるやつ。
/ffmpeg/test.mp4は入力ファイル名。
-r 1は1秒に1枚切り出すという指定。
-f image2は画像に変換するという指定。
/ffmpeg/img%03d.jpgは出力ファイル名、%03dの部分が3桁の連番になってくれる。

タグ ,

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×