FreeBSD: Shared object “librtmp.so.0” not found, required by “rtmpdump”

昼間のラジオ番組をFreeBSDサーバー上の cron, rtmpdump, ffmpeg で自動録音しています。

今日、昼間に自動録音していた番組を確認しようとしたところ、録音されているファイルがない!

つまり、録音失敗したようです。
一時的な障害かもしれないので、明日の結果を待って再確認するというのも一つの手ですが、明日も録音できていないとつらいので手動でコマンドを叩いて動作確認してみることにしました。

> radiko.sh TBS 22:20
authtoken: RX9injZRq-726-A6XfxUlA \noffset: 9213 length: 16 \npartialkey: G256L14x3xQnzShygRlAyQ==
authentication success
areaid: JP13
Shared object "librtmp.so.0" not found, required by "rtmpdump"

なんと、いつのまにか録音に必要なライブラリが無くなっている!(すぐに確認して良かった〜)

このライブラリは、/usr/local/lib に存在しているはずです。確認してみると、

/usr/local/lib> ll librtmp*
-rw-r--r--  1 root  wheel  137412  3月  1 12:12 librtmp.a
lrwxr-xr-x  1 root  wheel      12  3月  1 12:12 librtmp.so -> librtmp.so.1
-r--r--r--  1 root  wheel  106608  3月  1 12:12 librtmp.so.1

確かに librtmp.so.0 がありません。パッケージをまとめてアップデートしたときに一緒にバージョンアップされてしまったようです。困ったモノです。rtmpdump コマンドのオプションとかバージョンアップで対策できるかもしれませんが、単純にシンボリックリンクでファイル名を librtmp.so.0 として利用できるようにしてみます。

# ln -s librtmp.so.1 librtmp.so.0

そして、動作確認。

> radiko.sh TBS 23:12
authtoken: ggy62Jx2olVp22K9lP0W9w \noffset: 13730 length: 16 \npartialkey: UYAOeBgkf/rz6mmHcJW3cg==
authentication success
areaid: JP13
RTMPDump v2.4
(c) 2010 Andrej Stepanchuk, Howard Chu, The Flvstreamer Team; license: GPL
Connecting ...
WARNING: Trying different position for server digest!
INFO: Connected...
Starting Live Stream
For duration: 64.000 sec
INFO: Metadata:
390.004 kB / 64.00 sec
Download complete

あっさり radiko.sh シェルスクリプトが復活しました。

ひと安心。

コメントを残す