Raspberry Pi Zero moOde audio 640(update)

2020年01月09日 raspbianのffmpeg廻りの更新でmplayerが動かなくなってしまいました。(mpvはOK)
直後にmplayerも更新がありましたが同じエラーを吐きます。
moOde audioもベースはraspbianなのでupdate && upgradeすると影響を受けてしまいます。

またbadタイミングでJCBA(musicbird)も障害があったようです。

libavcodec

$ sudo apt update
$ apt list --upgradable
ffmpeg/testing 7:4.1.4-1+rpt6~deb10u1 armhf [7:4.1.4-1+rpt1~deb10u1からアップグレード可]
libavcodec-dev/testing 7:4.1.4-1+rpt6~deb10u1 armhf [7:4.1.4-1+rpt1~deb10u1からアップグレード可]
libavcodec58/testing 7:4.1.4-1+rpt6~deb10u1 armhf [7:4.1.4-1+rpt1~deb10u1からアップグレード可]
---

libavcodecに問題がありそうです。
mplayerの実行

mplayer: relocation error: mplayer: symbol av_alloc_vdpaucontext version LIBAVCODEC_58 not defined in file libavcodec.so.58 with link time reference

radiko(mplayer)

$ ./radiko.sh -p FMT
authentication success
areaid: JP13
RTMPDump v2.4
(c) 2010 Andrej Stepanchuk, Howard Chu, The Flvstreamer Team; license: GPL
WARNING: No application or playpath in URL!
WARNING: You haven't specified an output file (-o filename), using stdout
Connecting ...
WARNING: Trying different position for server digest!
INFO: Connected...
mplayer: relocation error: mplayer: symbol av_alloc_vdpaucontext version LIBAVCODEC_58 not defined in file libavcodec.so.58 with link time reference
Starting Live Stream
INFO: Metadata:
0.826 kB / 0.09 sec
Caught signal: 13, cleaning up, just a second...
ERROR: Download: Failed writing, exiting!

対策

libavcodecは依存関係が複雑なので簡単に元に戻せないと思います。
1.修正された更新を待つ
2.radikoスクリプトのplayerをmpvにする
zeroでは少しmplayerより重くなる。(Pi3はOK)
3.upgradeをやめる
新規インストールや前回の630->640に移行するとき
640では現在インストールされているバージョンに合ったmplayerがインストールされます。
(640以降はraspbian次第)

radiko.sh(mpv)

play セクション(160行目辺り)

#mplayer -
mpv -
#ffplay -nodisp -

moode-r640-setup.txt

前回の630->640移行スクリプト
apt updateのみ実行して必要なパッケージをインストール
現在のmoOde audioはchromium-browserがインストールされています。Zeroでは重く必要ないのでアンインストールしてみました。300MB以上空き領域が増えるので最初にカードを拡張しなくてもインストール可能です。(ホームディレクトリに大きなデータが無い場合)

#!/bin/sh
# locale
locale-gen
# Timazone
timedatectl set-timezone Asia/Tokyo

apt -y purge chromium-browser
apt -y autoremove

apt update
apt -y install tcsh vim
apt -y install tightvncserver autocutsel
apt -y install ranger highlight
apt -y install pulseaudio pavucontrol ncmpcpp
apt -y install surf xbindkeys python3-tk
apt -y install mpv mplayer swftools libxml2-utils rtmpdump
apt -y remove youtube-dl
curl -L https://yt-dl.org/downloads/latest/youtube-dl -o /usr/local/bin/youtube-dl
chmod a+rx /usr/local/bin/youtube-dl
apt install -y fonts-ipafont fonts-ricty-diminished uim uim-anthy uim-xim uim-gtk2.0
apt -y autoremove
echo "--- systemctl ---"
systemctl enable vncboot
#systemctl enable dphys-swapfile

sh -c 'echo -n "Hit Enter key to reboot..."; read x'
reboot

simul.py

moOde audioのmms://はpulseaudio経由で再生しています。default playerを変更することで摘要されます。

20行目辺りに追記
# --- default set ---
# default player
player = "mpv"
116行目辺り変更
#subprocess.Popen("mplayer " + a, shell=True)
subprocess.Popen(player + " " + a, shell=True)


上記のスクリプトで再インストールしてみました。
多少重いのは変わらないですがmplayer,mpvも同じように使えます。
swapfileは640では仕様が変更になっているようです。(disable)
# moOde audio自身(内部)からコマンドライン(mplayerなど)を実行する際は必ずpulseaudioをスタートしておく必要があります。(100%で出力)pavucontrolも忘れないで起動