RasPi2によるデジタルTV音声の処理について

二か国語や多重音声、マルチアングルなど、多様な放送に対応できるように、
次のようにスクリプトを構成しました。
結構な試行錯誤の日々が続いたので、成果を忘れぬよう記録しておきます。

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

  ↑で音声トラック、↓で映像トラックを選択、多重音声の時←で日本語、→で外国語

カテゴリー: RaspberryPi パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です