rtmdumpを再インストール
端末が入れ替わって環境構築がたいへん。サーバの入れ替えと同時にやるものじゃありませんね。
この日はrtmpdumpをインストール。rtmpdumpはradikoの録音に必要です。仕事、、、とは微妙に関係があります。
rtmpdumpのソースをgitで同期
$ git clone git://git.ffmpeg.org/rtmpdump
gitがないとか言われるので、apt-getでさくりとインストール。
makeする
昔の記事を参考にしてmake。最初にインストールしたのは2010年。もう七年も前か。
$ make SYS=posix make[1]: ディレクトリ '/home/hoge/rtmpdump/librtmp' に入ります gcc -Wall -DRTMPDUMP_VERSION=\"v2.4\" -DUSE_OPENSSL -O2 -fPIC -c -o rtmp.o rtmp.c rtmp.c:60:25: fatal error: openssl/ssl.h: そのようなファイルやディレクトリはありません compilation terminated. <ビルトイン>: ターゲット 'rtmp.o' のレシピで失敗しました make[1]: *** [rtmp.o] エラー 1 make[1]: ディレクトリ '/home/hoge/rtmpdump/librtmp' から出ます Makefile:76: ターゲット 'librtmp/librtmp.a' のレシピで失敗しました make: *** [librtmp/librtmp.a] エラー 2
なんかエラーです。openssl/ssl.hがないそうです。インストールします。
libssl-devをインストール
$ sudo apt-get install libssl-dev
ちゃんと入りました。
$ ls -l /usr/include/openssl/ssl.h -rw-r--r-- 1 root root 149342 1月 31 01:11 /usr/include/openssl/ssl.h
再度make
$ make SYS=posix make[1]: ディレクトリ '/home/hoge/rtmpdump/librtmp' に入ります gcc -Wall -DRTMPDUMP_VERSION=\"v2.4\" -DUSE_OPENSSL -O2 -fPIC -c -o rtmp.o rtmp.c rtmp.c: In function ‘RTMP_ReadPacket’: rtmp.c:3555:7: warning: variable ‘didAlloc’ set but not used [-Wunused-but-set-variable] int didAlloc = FALSE; ^ gcc -Wall -DRTMPDUMP_VERSION=\"v2.4\" -DUSE_OPENSSL -O2 -fPIC -c -o log.o log.c gcc -Wall -DRTMPDUMP_VERSION=\"v2.4\" -DUSE_OPENSSL -O2 -fPIC -c -o amf.o amf.c gcc -Wall -DRTMPDUMP_VERSION=\"v2.4\" -DUSE_OPENSSL -O2 -fPIC -c -o hashswf.o hashswf.c gcc -Wall -DRTMPDUMP_VERSION=\"v2.4\" -DUSE_OPENSSL -O2 -fPIC -c -o parseurl.o parseurl.c ar rs librtmp.a rtmp.o log.o amf.o hashswf.o parseurl.o ar: librtmp.a を作成しています gcc -shared -Wl,-soname,librtmp.so.1 -o librtmp.so.1 rtmp.o log.o amf.o hashswf.o parseurl.o -lssl -lcrypto -lz ln -sf librtmp.so.1 librtmp.so make[1]: ディレクトリ '/home/hoge/rtmpdump/librtmp' から出ます gcc -Wall -DRTMPDUMP_VERSION=\"v2.4\" -O2 -c -o rtmpdump.o rtmpdump.c gcc -Wall -o rtmpdump rtmpdump.o -Llibrtmp -lrtmp -lssl -lcrypto -lz gcc -Wall -DRTMPDUMP_VERSION=\"v2.4\" -O2 -c -o rtmpgw.o rtmpgw.c gcc -Wall -DRTMPDUMP_VERSION=\"v2.4\" -O2 -c -o thread.o thread.c gcc -Wall -o rtmpgw rtmpgw.o thread.o -lpthread -Llibrtmp -lrtmp -lssl -lcrypto -lz gcc -Wall -DRTMPDUMP_VERSION=\"v2.4\" -O2 -c -o rtmpsrv.o rtmpsrv.c gcc -Wall -o rtmpsrv rtmpsrv.o thread.o -lpthread -Llibrtmp -lrtmp -lssl -lcrypto -lz gcc -Wall -DRTMPDUMP_VERSION=\"v2.4\" -O2 -c -o rtmpsuck.o rtmpsuck.c gcc -Wall -o rtmpsuck rtmpsuck.o thread.o -lpthread -Llibrtmp -lrtmp -lssl -lcrypto -lz $
ちゃんとmakeできました。
make install
$ sudo make install make[1]: ディレクトリ '/home/hoge/rtmpdump/librtmp' に入ります make[1]: 'all' に対して行うべき事はありません. make[1]: ディレクトリ '/home/hoge/rtmpdump/librtmp' から出ます mkdir -p /usr/local/bin /usr/local/sbin /usr/local/man/man1 /usr/local/man/man8 cp rtmpdump /usr/local/bin cp rtmpgw rtmpsrv rtmpsuck /usr/local/sbin cp rtmpdump.1 /usr/local/man/man1 cp rtmpgw.8 /usr/local/man/man8 make[1]: ディレクトリ '/home/hoge/rtmpdump/librtmp' に入ります sed -e "s;@prefix@;/usr/local;" -e "s;@libdir@;/usr/local/lib;" \ -e "s;@VERSION@;v2.4;" \ -e "s;@CRYPTO_REQ@;libssl,libcrypto;" \ -e "s;@PUBLIC_LIBS@;;" \ -e "s;@PRIVATE_LIBS@;;" librtmp.pc.in > librtmp.pc mkdir -p /usr/local/include/librtmp /usr/local/lib/pkgconfig /usr/local/man/man3 /usr/local/lib cp amf.h http.h log.h rtmp.h /usr/local/include/librtmp cp librtmp.a /usr/local/lib cp librtmp.pc /usr/local/lib/pkgconfig cp librtmp.3 /usr/local/man/man3 cp librtmp.so.1 /usr/local/lib cd /usr/local/lib; ln -sf librtmp.so.1 librtmp.so make[1]: ディレクトリ '/home/hoge/rtmpdump/librtmp' から出ます