librtmp(RTMPDump) GnuTLS版のインストールには、zlibとGnuTLSのライブラリが必要ですので、先にインストールしておいてください。
zlibのコンパイル&インストールGnuTLSのコンパイル&インストール2012/03/11 追記Libgcryptはサポートされなくなり、Nettleがデフォルトになりました。
GnuTLSについては、以下の記事を参照してください。
GnuTLSのコンパイル&インストール (gnutls-3.4.4以降)librtmp(RTMPDump)は、以下の場所にあります。
http://rtmpdump.mplayerhq.hu/以下のディレクトリから、
http://rtmpdump.mplayerhq.hu/download/
rtmpdump-2.3.tgz
を、適当なディレクトリに保存します。gitで入手できるソースコードのバージョンは、2.4です。
最新版のソースコードは、以下のようにgitでダウンロードできます。
git clone git://git.ffmpeg.org/rtmpdump
MSYSで、ファイルを保存したディレクトリに移動し、
$ cd rtmpdump
$ make SYS=mingw CRYPTO=GNUTLS CC=gcc AR=ar SHARED=no XLDFLAGS=-s XLIBS=-lcrypt32
$ cd librtmp
$ make install prefix=/mingw SYS=mingw CRYPTO=GNUTLS SHARED=no
以上で終了です。
【補足】
2012/10/05 追記rtmpdump-2.4のwindowsバイナリは、公式ページにはありません。
とりあえず、自前でコンパイルした物を、PolarSSL版のページの【補足】の所に置いておきます。2013/02/03 追記公式サイトにもrtmpdump-2.4のwindowsバイナリがアップされました。
自前でコンパイルした物を、PolarSSL版のページの【補足】の所に置いておきますので、お好みでご利用ください。
librtmp(RTMPDump)のコンパイル&インストール PolarSSL版【更新履歴】を見る
2011/11/16 追記
ソースコードをアップデートしました。
rtmpdump-2.4-20111108.tgz を rtmpdump-2.4-20111115.tgz に変更しました。
2011/12/25 追記
ソースコードをアップデートしました。
rtmpdump-2.4-20111115.tgz を rtmpdump-2.4-20111223.tgz に変更しました。
2012/01/25 追記
GnuTLSとNettleの組み合わせの場合、zlibの他に、以下の記事を参考にGnuTLSのライブラリをインストールしてください。
GnuTLSのコンパイル&インストール (gnutls-3.0.12以降)
そのままではNettleに対応していませんので、rtmpdumpのソースコードを解凍した後、以下のパッチを適用します。
rtmpdump-gnutls-nettle.diff
参考記事:
[rtmpdump] [PATCH] Add support for building with gnutls with nettle as backend
$ patch -p1 < rtmpdump-gnutls-nettle.diff
$ make -j3 SYS=mingw CRYPTO=GNUTLS_NETTLE CC=gcc AR=ar SHARED=no XLDFLAGS=-s
$ cd librtmp
$ make install prefix=/mingw SHARED=no
以上で終了です。
2012/03/11 追記
Libgcryptはサポートされなくなり、Nettleがデフォルトになりました。
GnuTLSについては、以下の記事を参照してください。
GnuTLSのコンパイル&インストール (gnutls-3.0.12以降)
$ make SYS=mingw CRYPTO=GNUTLS XLIBS=-lgpg-error CC=gcc AR=ar SHARED=no XLDFLAGS=-s
$ make SYS=mingw CRYPTO=GNUTLS CC=gcc AR=ar SHARED=no XLDFLAGS=-s
2012/03/11 追記
ソースコードをアップデートしました。
rtmpdump-2.4-20111223.tgz を rtmpdump-2.4-20120309.tgz に変更しました。
2012/07/29 追記
ソースコードをアップデートしました。
rtmpdump-2.4-20120309.tgz を rtmpdump-2.4-20120726.tgz に変更しました。
2012/11/01 追記
ソースコードをアップデートしました。
rtmpdump-2.4-20120726.tgz を rtmpdump-2.4-20121031.tgz に変更しました。
2012/11/03 追記
ソースコードをアップデートしました。
rtmpdump-2.4-20121031.tgz を rtmpdump-2.4-20121102.tgz に変更しました。
makeに「XLIBS=-lcrypt32」を追加しました。
2012/11/10 追記
ソースコードをアップデートしました。
rtmpdump-2.4-20121102.tgz を rtmpdump-2.4-20121110.tgz に変更しました。
2012/12/10 追記
ソースコードをアップデートしました。
rtmpdump-2.4-20121110.tgz を rtmpdump-2.4-20121209.tgz に変更しました。
2013/04/14 追記
ソースコードをアップデートしました。
rtmpdump-2.4-20121209.tgz を rtmpdump-2.4-20121231.tgz に変更しました。
2013/07/28 追記
ソースコードをアップデートしました。
rtmpdump-2.4-20121231.tgz を rtmpdump-2.4-20130719.tgz に変更しました。
2013/08/31 追記
ソースコードをアップデートしました。
rtmpdump-2.4-20130719.tgz を rtmpdump-2.4-20130815.tgz に変更しました。
2013/10/06 追記
ソースコードをアップデートしました。
rtmpdump-2.4-20130815.tgz を rtmpdump-2.4-20130924.tgz に変更しました。
2013/10/13 追記
ソースコードをアップデートしました。
rtmpdump-2.4-20130924.tgz を rtmpdump-2.4-20131007.tgz に変更しました。
2013/12/07 追記
ソースコードをアップデートしました。
rtmpdump-2.4-20131007.tgz を rtmpdump-2.4-20131205.tgz に変更しました。
2013/12/16 追記
ソースコードはgitからダウンロードするように、説明を修正しました。
とりあえず、公式のdownloadディレクトリにソースコードがアップされるまで、こちらにも置いておきます。(2013/12/07 更新)
rtmpdump-2.4-20131205.tgz
または、以下のようにgitでダウンロードできます。
git clone git://git.ffmpeg.org/rtmpdump rtmpdump-2.4
最新版のソースコードは、以下のようにgitでダウンロードできます。
git clone git://git.ffmpeg.org/rtmpdump
2013/12/16 追記
コンパイル手順を修正しました。
$ tar xzf rtmpdump-2.4-20131205.tgz
$ cd rtmpdump-2.4
$ cd rtmpdump
2015/08/17 追記
GnuTLSのコンパイル&インストール記事のリンクを変更しました。
GnuTLSのコンパイル&インストール (gnutls-3.0.12以降)
GnuTLSのコンパイル&インストール (gnutls-3.4.4以降)
2015/12/31 追記
make installのオプションを修正しました。
$ make install prefix=/mingw SHARED=no
$ make install prefix=/mingw SYS=mingw CRYPTO=GNUTLS SHARED=no
【更新履歴】を閉じる
ffmpegでrtmpをサポートしようとして、polarSSLではうまくいきました。
しかし、ffmpegがpolarSSLをサポートしていないようなので、ではgnuTLSが良いのかなと思い、多分gnuTLSのインストールまでは成功したつもりです。
ですが、RTMPdumpがうまくいきません。
clang -Wall -o rtmpdump rtmpdump.o -Llibrtmp -lrtmp -lgnutls -lhogweed -lnettle -lgmp -lz -lcrypt32
ld: library not found for -lgnutls
clangというのはgccのMac版のようなものです。
おそらくライブラリをリンクしようとして失敗しています。
Makefileを見たのですが、あんな短いものから何で?と分からずじまいです。
Macとmingwでは環境が違いすぎますが、ダメ元でおすがりします。
…というよりも、ffmpegでSSLを扱えなくても、librtmpがSSLを扱えれば良いのであれば、gnuTLSは諦めます。
その辺のサジェスチョンもお願いします。<(_ _)>
済みません、昨日眠くてmakeコマンドを書き忘れました。
make SYS=darwin CRYPTO=GNUTLS CC=clang SHARED=no XLIBS=-lcrypt32 INC=-I${TARGET}/include
です。INCをつけないとヘッダファイルが見つからないと怒られます。
${TARGET}は/Volumes/ffmpeg_compileというディレクトリです。
お久しぶりですね。
思い当たることとしては、
XLIBS=-lcrypt32
は、mingw環境用に追加したオプションですので、おそらくMacだと必要ないか、あるいは、ライブラリ名が違うのかもしれません。
まずは、XLIBSオプションなしでどうなるか、試してみてください。
XLIBSオプションを削ってみました。GnuTLSで-lcrypt32をpcファイルに入れるのも止めました。
結果は同じで-lgnutlsのライブラリが見つからないとなります。
質問ですが、リンクするライブラリが正しくできていなくても、見つからないと言われるのでしょうか?
実のところ、nettleでlibhogweed.aを作るために--with-include-pathと--with-lib-pathを追加してconfigureしています。
また、GnuTLSでは、gmpが見つからないとconfigureで言われるため、env LDFLAGS=-L${TARGET}/lib LIBS=-lgmpをconfigureにくっつけています。
これらがないとライブラリは作れないのですが、問題はあるでしょうか?
あと、シェアドライブラリでGnuTLSをビルドしようとしたら、こけました。
現在、八方塞がりです。
make文は
make SYS=darwin CRYPTO=GNUTLS SHARED= XCFLAGS="-I${TARGET}/include" XLDFLAGS="-L/${TARGET}/lib -liconv"
make install文は
make install prefix=${TARGET} SHARED= CRYPTO=GNUTLS
にて、ビルドできました。
インストール時もCRYPTOを指定してあげる必要があります。
経緯を書いた掲示板のURL(英語)を貼っておきます。
http://stream-recorder.com/forum/rtmpdump-build-problem-mac-os-x-using-t20499.html
KSVさんという方のパッチはエラーになるので問い合わせています。
http://stream-recorder.com/forum/customized-rtmpdump-binaries-patch-file-t16103p40.html
連投で投稿して済みません。
KSVさんという方のパッチは、prefixで指定したディレクトリのlibに古いlibrtmp.aがあると、makeでエラーになるそうです。
指摘を受け、当方でも検証しました。
お返事が遅くなり、申し訳ありません。
私がビルドするときに使っているスクリプトを見直したら、make installに
CRYPTO=GNUTLS
を指定していました。ヒェー
スクリプトは修正していたのですが、記事を修正し忘れていました。
お手数おかけしてしまい、申し訳ありませんでした。
いろいろ調べていただいて、ありがとうございました。