rtmpdump と ffmpeg を使って radiko.jp の番組を自動録音していますが、ここ10/10, 10/11 と録音に失敗していることに気付きました。正確には、ffmpeg が flv形式から aac m4a 形式への変換に失敗しています。
どうやら、水曜日の晩に行った FreeBSD11.3 の 大型portsメンテナンスがきっかけになった模様。
> ffmpeg -i /tmp/radiko_out/TBS_201910111301_1.flv -ab 46k -ar 48k -strict experimental -acodec aac ~/radiko_out/TBS_201910111301_1.m4a /usr/local/lib/libavcodec.so.58: Undefined symbol "x265_api_get_170"
こんな感じにエラーになります。
libavcodec ライブラリが x265 ライブラリを呼ぼうとして、見つからずって感じ。
pkg 更新履歴を見てみると、
Oct 9 22:42:17 server pkg: x265 upgraded: 3.0_1 -> 3.1.2_2
と、x265ライブラリが更新されたと記録が残っていました。
多分、これが原因でしょう。
別の、まだライブラリを更新していないサーバーから pkg create コマンドで、x265パッケージをアーカイブして持ってきて、問題のサーバーに再インストール。
これでエラーは出なくなりました。
pkg lock コマンドで、x265ライブラリもロックしておきました。ラジオ録音関係のプログラムやライブラリは、まとめて更新をかけないで、単独で上げたりするとボロボロになりますので怖いですわ。環境自体は元に戻せますが、録音に失敗した番組は取り戻せませんからね。
>pkg lock -l Currently locked packages: ffmpeg-4.1.3_2,1 librtmp-2.4.20151223 rtmpdump-2.4.20151223 x265-3.0_1
ということで、今回もエラーメッセージを記録に残すことにします。