ビデオからサムネイルを作成


11

ビデオから簡単なキャプチャを作成するにはどうすればよいですか。できればコマンドラインから?

アイデア:9つのスナップショットを(タイムライン上に)9回配置された9回撮り、JPGとして保存する

例:

Movie length = 10 min
T1= snapshot of 1 min
T2= snapshot of 2 min
......
T9= snapshot of 9 min
   |   |
 T1| T2| T3
---+---+---
 T4| T5| T6
---+---+---
 T7| T8| T9
   |   |

これを行うのに最適なプログラムは何ですか?オープンソースプログラムはありますか?

回答:


5

ffmpegは、フレームの抽出など、ビデオを操作するための優れたオープンソースツールです。

特定のタイムスタンプから単一のフレームを抽出するには、次のようなコマンドを使用できます

ffmpeg -i video.avi -r 1  -t 00:01:00 -f image2 image%05d.png

-rはフレームレートです。次のようなコマンドも使用できます

ffmpeg -i video.avi -r 1/1440 -f image2 image%05d.png

1分ごとに1フレームを取得する(24FPSビデオを想定)。%05dは、各サムネイル画像の序数が5桁を使用してフォーマットされることを意味します。

画像をモンタージュ(グリッド)として組み合わせる場合は、ffmpegを使用してフレームを抽出した後でimagemagickを使用できます。


2

これはコマンドラインプログラムではありませんが、qframecatcherを使用することもできます

ubuntu / debianの場合、要件は次のとおりです。sudo apt-get install libqt4-dev libxine-dev build-essential

wget http://download.berlios.de/qframecatcher/qframecatcher-0.4.1.tar.gz
tar xzf qframecatcher-0.4.1.tar.gz
cd qframecatcher/src
qmake
make
./qframecatcher

出典:http : //blog.radevic.com/2008/06/how-to-create-movie-or-video-frame.html


1

vcsiはPythonで記述されたコマンドラインツールであり、次のコマンドを使用して3 x 3グリッドのスナップショットを作成するために使用できます。

vcsi -g 3x3 video.mkv -o output.jpg

0

私の使用例は、ビデオからの1つのサムネイル、<video>タグポスターとして使用する1つのファイルだけです。それで、これを作る速い方法は何でしょうか?

ではffmpeg、これを行うことができます:

ffmpeg -ss 123 -y -i video.mp4 -r 1 -updatefirst 1 -frames 1 poster.jpg

これ123により、video.mp4保存されたの2番目に近いフレームが得られますposter.jpg

ご覧のとおり、問題は、どちらが適切かを知る必要があることです。

依存関係を低く保つために、ffmpeg自体を使用します。

# Get the time as h:m:s (non-padded)
l=$(ffmpeg -i video.mp4 2>&1 | grep Duration: | sed -r 's/\..*//;s/.*: //;s/0([0-9])/\1/g')
# Convert that into seconds
s=$((($(cut -f1 -d: <<< $l) * 60 + $(cut -f2 -d: <<< $l)) * 60 + $(cut -f3 -d: <<< $l)))
# Get frame at 25% as the thumbnail
ffmpeg -ss $((s / 4)) -y -i video.mp4 -r 1 -updatefirst 1 -frames 1 poster.jpg

ビデオの25%は一般的な選択のようですが、33%または50%にすることもできます。

これを行うスクリプトは次のとおりです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.