二か国語や多重音声、マルチアングルなど、多様な放送に対応できるように、
次のようにスクリプトを構成しました。
結構な試行錯誤の日々が続いたので、成果を忘れぬよう記録しておきます。
5.TV起動のShellスクリプト(TV.sh)
動画再生支援機構を使って、完璧に表示(CPU負荷率:12~13%)。
さらに、二か国語の時、主音声・副音声を選択出来るようにする。
NHKの多重音声にも対応しました。
#!/bin/bash source ~/.aout if [ "$AOUT" = "hdmi" ]; then vol=2000 else vol=200 fi TARGET="recfriio\|mplayer" CH=$1 export DISPLAY=:0.0 # LCDパネルの時はコメントアウトする pids=(`ps x | \ grep ${TARGET} | \ grep -v grep | \ awk '{ print $1; }'`) for pid in ${pids[*]} do kill -9 ${pid} sleep 1 done source ~/.biling [ -p /tmp/mpegpipe ] || mkfifo /tmp/mpegpipe # 名前付きパイプを作る if [ "$BILING" = "yes" ]; then recfriio --b25 --strip --sync --hdus ${CH} - /tmp/mpegpipe & xterm -fullscreen -xrm \ 'XTerm*VT100.translations: #override \n\ <Key>0xFF51: string(j) \n\ <Key>0xFF53: string(k) \n\ <Key>0x1008FF11: string(-) \n\ <Key>0x1008FF13: string(+) \n\ <Key>0x1008FF14: string(p)'\ -e "omxplayer --live --vol -${vol} -o ${AOUT} /tmp/mpegpipe" elif [ "$BILING" = "sel" ]; then recfriio --b25 --strip --sync --hdus --http 8080 & (echo switch_audio -2\n >/tmp/mpegpipe) & sleep 1;mplayer -vo x11 -ao alsa -forceidx -mc 0 -framedrop -nocache -input conf=TVinput.conf\ -fs -x 1440 -y 1080 -delay 0.5 -af volume=18 -input file=/tmp/mpegpipe http://localhost:8080/${CH}/ fi pids=(`ps x | \ grep ${TARGET} | \ grep -v grep | \ awk '{ print $1; }'`) for pid in ${pids[*]} do kill -9 ${pid} done xrefresh # 画面を戻す
【追記】omxplayer動作中はopenboxがキー入力をネグレクトするため、
xtermをインストールし、ついでに、KBのV+,V-も有効にして、
配下でomxplayerを動作させている。
AOUTはデスクトップ・アイコンで選択した値
~/.mplayer/TVinput.conf の4行を次のように変更した。
RIGHT balance +2 LEFT balance -2 DOWN switch_angle UP switch_audio
↑で音声トラック、↓で映像トラックを選択、多重音声の時←で日本語、→で外国語