Xuggleというライブラリを利用すると、Javaからffmpegを使うことができます。
Red5のストリームデータをエンコードして、別の画質で流したり、鏡面対称にしたり等
いろいろできます。
そのXuggleのインストールをしてみます。(Linuxでね)
さて、Linuxでのインストールですが
xuggle-xuggler-i386-linux.sh
を実行するだけではインストールできない環境もあります。
っていうか、僕のCentOS4.8ではうまくインストールできません。
そこでソースコードからインストールしてみます。
xuggle.comからxuggle-xuggler.3.4.1012-src.tar.gzをダウンロードします。
そして、Linuxの適当な場所にコピー
このアーカイブはディレクトリをつくってくれないので、適当なディレクトリをつくって
その中で解凍します。
そして、
$ ant
# ant install
でインストールは完了します。
ただ、CentOS4.8の場合はulong問題でコンパイルエラーになるので
antでエラーがでたら、該当ファイルのulong部をunsigned longに書き直して、
コンパイルに再挑戦してください。
/usr/include/linux/videodev.hの56行目あたりですね。
このコンパイルではffmpegやh264などのファイルも生成します。
よってコンパイルには結構時間がかかります。
また、ffmpegのlibavcodecの問題でGCC4.2以降を使わないとffmpegの実行時に警告がでます。
が、実行に特に問題はないと思っています。
同様の現象はffmpeg、mencoder、xuggleで発生を確認しています。
antが
dist-native:
dist-java:
[mkdir] Created dir: /home/videofc2/tools/xuggle/dist/repo
[tar] Building tar: /home/videofc2/tools/xuggle/dist/repo/xuggle-xuggler.3.4.1012-repo.tar.gz
dist:
BUILD SUCCESSFUL
Total time: 29 minutes 59 seconds
をレポート、やっとおわったよ。
作成したファイルは
dist/stage/usr/local/以下にできている。
ant installするとこの/usr以下の部分が、/にコピーされます。
Xuggleの環境変数とかが変にはいっていなければ、
/usr/local/bin等にffmpeg等がインストールされているはずなので
ffmpegとコマンドをいれてみる。
# ffmpeg
するとリンカーエラーになる。
シンボリックリンクで/usr/lib/に/usr/local/libのファイルのリンクをつくってもいいが
面倒なので、環境変数で対応することにする。
LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/lib"
結果はこの通り
[root@homeserver xuggle]# ffmpeg
FFmpeg version SVN-r21566-xuggle-3.4.revision.sh, Copyright (c) 2000-2010 Fabrice Bellard, et al.
built on Feb 9 2010 23:31:17 with gcc 3.4.6 20060404 (Red Hat 3.4.6-11)
configuration: --prefix=/usr/local --extra-version=xuggle-3.4.revision.sh
--extra-cflags=-I/home/videofc2/tools/xuggle/build/native/i686-pc-linux-gnu/captive/usr/local/include
--extra-ldflags=-L/home/videofc2/tools/xuggle/build/native/i686-pc-linux-gnu/captive/usr/local/lib
--enable-shared --enable-gpl --enable-nonfree --enable-version3 --enable-libx264 --enable-libmp3lame
--enable-libvorbis --enable-libtheora --enable-libspeex --enable-libfaac
--enable-libopencore-amrnb --enable-libopencore-amrwb --enable-pthreads
libavutil 50. 8. 0 / 50. 8. 0
libavcodec 52.49. 0 / 52.49. 0
libavformat 52.48. 0 / 52.48. 0
libavdevice 52. 2. 0 / 52. 2. 0
libswscale 0. 9. 0 / 0. 9. 0
Hyper fast Audio and Video encoder
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...
Use -h to get full help or, even better, run 'man ffmpeg'
次回はxuggle-red5のコンパイルいってみようと思います。
最終更新:2010年02月09日 23:41