プログラミング-ffmpeg導入?-
[やること]
ffmpegの関数を利用してc言語で動画を扱えるようにする。
[1:ffmpegのインストール]
http://codezine.jp/article/detail/2444?p=1
の通りに行った。(会員登録が必要)
SVN-r19507を利用した。
ただし, configureで--enable-swscaleのオプションを削除した。
(./configur --helpで確認したところ--enable-swscaleはなかった。)
<結果>
コマンドプロンプトからの実行は出来た。
ffplayが使えなかった。(インストールが不十分?)
$ ffmpeg
FFmpeg version SVN-r19507, Copyright (c) 2000-2009 Fabrice Bellard, et al.
configuration: --enable-shared --enable-gpl
libavutil 50. 3. 0 / 50. 3. 0
libavcodec 52.32. 0 / 52.32. 0
libavformat 52.36. 0 / 52.36. 0
libavdevice 52. 2. 0 / 52. 2. 0
libswscale 0. 7. 1 / 0. 7. 1
built on Aug 18 2009 16:57:15, gcc: 3.4.4 (cygming special, gdc 0.12, using dm
d 0.125)
At least one output file must be specified
<問題>
サンプルがmakeができなかった。
[追記]
<問題への対応>
- configeのオプションを以下のように変更
∵http://ffmpeg.org/general.htmlを見てなんとなく。
./configure --enable-shared --disable-static --enable-gpl
- さらにサンプルのmakefileを以下のように変更
CC = gcc
CFLAGS = -Wall -I/usr/local/include
LDFLAGS = -L/usr/local/bin
LDLIBS = -lavutil -lavformat -lavcodec -lswscale -lavdevice
OBJS = make_thumb.omake_thumb: $(OBJS)
$(CC) -o $@ $(LDFLAGS) $(OBJS) $(LDLIBS)
<結果>
とりあえず, サンプルのmakeはできた。
$ make
gcc -Wall -I/usr/local/include -c -o make_thumb.o make_thumb.c
make_thumb.c: In function `load_frame':
make_thumb.c:136: warning: `avcodec_decode_video' is deprecated (declared at /us
r/local/include/libavcodec/avcodec.h:3256)
make_thumb.c: In function `save_frame':
make_thumb.c:195: warning: `av_alloc_format_context' is deprecated (declared at
/usr/local/include/libavformat/avformat.h:801)
gcc -o make_thumb -L/usr/local/bin make_thumb.o -lavutil -lavformat -lavcodec -l
swscale -lavdevice
しかし, 想定した動作にならない。
バージョンまたはインストール方法またはmakeに問題?(よく分からない)
$ ./make_thumb sample.mov sample.jpeg
can't open input file.
[これから]
http://d.hatena.ne.jp/gtaka555/20080622/p1を参考に
Mingw・MSYSの環境を利用する方針に切り替える。
[自戒]
いつもmake関連でつまずいているので体系的に学ぶこと。