FreeBSD11.2: Shared object “libdav1d.so.1” not found

FreeBSD 11.2上で rtmpdumpとffmpegを使って radiko.jp を自動録音していますが、今日、気が付いたら自動録音されていませんでした。

あれあれ?

手動で ffmpeg コマンドを発行してみたところ以下のメッセージが!

Shared object "libdav1d.so.1" not found, required by "libavcodec.so.58"

flv形式での録音は成功していて、flv→m4aフォーマット変換がライブラリが見つからず、スクリプトが失敗するようです。
昨日までは正常動作していたのに・・・・・

ffmpeg が突然エラーを吐くのは、決まって前日に pkg コマンドでパッケージメンテナンスを行った場合。最近では慣れてきました。

今回は、libavcodec が libdav1d.so.1 というライブラリを呼ぼうとして見つからない というエラーです。

パッケージ更新のログ /var/log/messages を確認してみると

Aug 14 00:05:05 server pkg: dav1d upgraded: 0.3.1 -> 0.4.0

確かに、dav1d ライブラリが更新されていますよ。

/usr/local/lib
lrwxr-xr-x  1 root  wheel      13  8月  8 10:22 libdav1d.so -> libdav1d.so.2
lrwxr-xr-x  1 root  wheel      17  8月  8 10:22 libdav1d.so.2 -> libdav1d.so.2.0.0
-rwxr-xr-x  1 root  wheel  757884  8月  8 10:22 libdav1d.so.2.0.0

libdav1d.so.1 というライブラリはありません。消されちゃったんでしょうね。
こういうライブラリは、旧バージョンと互換性を持たせて作られることが多いので、とりあえずシンボリックリンクを試してみることにしました。

lrwxr-xr-x  1 root  wheel      17  8月 14 15:46 libdav1d.so.1 -> libdav1d.so.2.0.0

その結果、「Shared object “libdav1d.so.1” not found, required by “libavcodec.so.58″」のエラーは出なくなりました。

早く気づけて良かったです。

コメントを残す