FreeBSD11.3: /usr/local/lib/libavcodec.so.58: Undefined symbol “x265_api_get_170”

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

ということで、今回もエラーメッセージを記録に残すことにします。

コメントを残す