動画ファイルから動画位置を0から1までの割合で指定し、サムネイルを作成し保存する例題です。
引数により動画位置や出力ファイル(デフォルト JPG、指定により PPM)を指定し、サムネイルを作成します。
AVFormatContext により動画の長さ(TimeStamp)が取得できない際(MKV 等で多い)には動画位置の指定が上手くいかない場合がありますが、それ以外の場合には上手く取得されています。
コンパイルの際には、libavcodec 等のヘッダやライブラリを指定する必要があるため、makefile による指定方法も掲載しています。
libavcodec によりデコードされ取得される画像から、PPM で保存する場合には RGB888 に変換する必要があります。
変換には、swscale を利用しています。
avthumb.cpp
makefile
実行結果
2011年5月5日木曜日
2011年5月4日水曜日
FFMPEG/libavcodec のインストール
C言語から FFMPEG に含まれる libavcodec 等のライブラリを利用するためのインストール手順です。
OSX では MacPorts や fink (現在は brew)などから簡単にインストールすることができますが、ここではあえて最新の FFMPEG のソースからビルドし、インストールを行う手順を記載しておきます。
Windows の場合は、インストールには cygwin/mingw に含まれる gcc や ar コマンド等が必要なので、そちらのインストールが必要になります(説明は省略)。
また、最新のソースを取得するために git コマンドをインストールしておくと便利です(GUI版があったり、cygwin/mingw の環境に含まれている場合があります)。
cygwin からのインストールはビルド時に失敗することが多いので、mingw からインストールすることをお勧めしておきます。
その他、必要となるライブラリ等(mingw ベース)
インストールコマンド手順(git のレポジトリ先は ffmpeg のサイトから):
configure のオプションには --enable-gpl/--enable-nonfree のチェックを付けていますが、商用のライブラリを作成する際には --disable-gpl/--disable-nonfree としたり GPL が含まれるライブラリを外したりして、LGPL とする工夫が必要になります。
OSX では MacPorts や fink (現在は brew)などから簡単にインストールすることができますが、ここではあえて最新の FFMPEG のソースからビルドし、インストールを行う手順を記載しておきます。
Windows の場合は、インストールには cygwin/mingw に含まれる gcc や ar コマンド等が必要なので、そちらのインストールが必要になります(説明は省略)。
また、最新のソースを取得するために git コマンドをインストールしておくと便利です(GUI版があったり、cygwin/mingw の環境に含まれている場合があります)。
cygwin からのインストールはビルド時に失敗することが多いので、mingw からインストールすることをお勧めしておきます。
その他、必要となるライブラリ等(mingw ベース)
・MinGW/MSYS
・TDM's GCC/mingw32 Builds
・MSYS Base System
・nasm/yasm
・zlib/libbz2/libgsm
・libfaac/libfaad -> あれば便利という程度
・pthreads-win32
インストールコマンド手順(git のレポジトリ先は ffmpeg のサイトから):
configure のオプションには --enable-gpl/--enable-nonfree のチェックを付けていますが、商用のライブラリを作成する際には --disable-gpl/--disable-nonfree としたり GPL が含まれるライブラリを外したりして、LGPL とする工夫が必要になります。
mingw 環境での LGPL ビルド例
ライブラリが GPL か LGPL かどうかは configure 後に表示されますが、ビルド後以下のコマンドから商用には利用できないことを確認できます(GPL/LGPL の際には GPL のライセンス等が表示されます)。
ビルドや configure に失敗する場合には、手元の環境に必要なライブラリが含まれていなかったりする場合がありますので、その際には必要なライブラリを順次インストール後、再度 configure/ビルドを行う必要があります。
mingw 環境でのインストールメモ
ラベル:
FFMPEG,
libavcodec,
インストール
登録:
投稿 (Atom)
