2011年11月11日

librtmp(RTMPDump)のコンパイル&インストール GnuTLS版

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版


【更新履歴】を見る
posted by あべちん at 02:10 | Comment(7) | TrackBack(0) | FFmpeg追加ライブラリ
この記事へのコメント
管理人さん、ご無沙汰しております。

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は諦めます。
その辺のサジェスチョンもお願いします。<(_ _)>
Posted by 桃源老師 at 2015年11月29日 03:29
管理人さん、こんにちは。

済みません、昨日眠くてmakeコマンドを書き忘れました。

make SYS=darwin CRYPTO=GNUTLS CC=clang SHARED=no XLIBS=-lcrypt32 INC=-I${TARGET}/include

です。INCをつけないとヘッダファイルが見つからないと怒られます。
${TARGET}は/Volumes/ffmpeg_compileというディレクトリです。
Posted by 桃源老師 at 2015年11月29日 14:17
桃源老師さん、こんにちは。管理人です。
お久しぶりですね。

思い当たることとしては、
XLIBS=-lcrypt32
は、mingw環境用に追加したオプションですので、おそらくMacだと必要ないか、あるいは、ライブラリ名が違うのかもしれません。

まずは、XLIBSオプションなしでどうなるか、試してみてください。
Posted by あべちん at 2015年11月30日 00:19
管理人さん、こんばんは。

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をビルドしようとしたら、こけました。

現在、八方塞がりです。
Posted by 桃源老師 at 2015年12月01日 00:52
管理人さん、お騒がせしました。

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
Posted by 桃源老師 at 2015年12月05日 18:26
管理人さん、こんばんは。

連投で投稿して済みません。

KSVさんという方のパッチは、prefixで指定したディレクトリのlibに古いlibrtmp.aがあると、makeでエラーになるそうです。

指摘を受け、当方でも検証しました。
Posted by 桃源老師 at 2015年12月06日 01:45
桃源老師さん、こんにちは。管理人です。

お返事が遅くなり、申し訳ありません。

私がビルドするときに使っているスクリプトを見直したら、make installに
CRYPTO=GNUTLS
を指定していました。ヒェー

スクリプトは修正していたのですが、記事を修正し忘れていました。

お手数おかけしてしまい、申し訳ありませんでした。

いろいろ調べていただいて、ありがとうございました。
Posted by あべちん at 2015年12月31日 21:23
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/50211278
※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック