YANO's digital garage

Copyright ©YANO All rights reserved. https://www.bravotouring.com/~yano/

Last-modified: 2024-04-10 (水)


[一語一絵/IT系]

ARIB B25復号処理 / 2019-04-09 (火)

二ヶ国語音声対応の問題で、録画したTSファイルを調べててARIB STD-B25の復号(descramble)に失敗しているものがある事に気付いた。

gt110bMB直結&ケース内蔵にしたB-CASカードの接触不良と推察し、手作業でb25コマンドを叩いていたのだが、よく考えたらB-CASカード1枚では同時に復号できるのは3番組が限界なので、4つ以上の番組録画が重なった場合に足りなくなる事が判明。

…かと言って、B-CASカードリーダを2セットも用意するのもバカらしいので、recpt1の受信時に復号(descramble)するではなく、受信したファイルを一つずつ順次復号する事に。

というわけで、/var/www/html/epgrec/config.phpを弄ってepgrec録画ファイルの拡張子を.tsから.arib25に変更。

~~~
$RECORD_MODE = array(
    // ※ 0は必須で、変更不可です。
    0 => array(
        'name' => 'Full TS',    // モードの表示名
        'suffix' => '.arib25',  // ファイル名のサフィックス
    ),

    1 => array(
        'name' => 'Minimum TS', // 最小のTS
        'suffix' => '.arib25',  // ファイル名のサフィックス
    ),

    /* Example is as follows.
    2 => array(
        'name' => '12Mbps MPEG4',
        'suffix' => '.avi',
    ),
    */
);
~~~
b25コマンドを回して.arib25から.tsを出力するcronを作成。
yano@GT110b:~$ cat ~/etc/cron.sh/b25_descramble.cron
#!/bin/bash

PATH=/bin:/usr/bin:/sbin:/usr/sbin
NUM_FILES=5
SRC_SUFFIX=".arib25"
DST_SUFFIX=".ts"

PIDFILE=/home/yano/run/`basename $0`.pid

UUID=`id | sed 's/uid=\([0-9]*\)(.*/\1/'`;
[ $UUID -eq 0 ] && PIDFILE=/var/run/`basename $0`.pid;

if [ -e ${PIDFILE} ];
then
    exit;
fi
echo $$ > ${PIDFILE}
trap "/bin/rm -f ${PIDFILE}; exit" 1 2 3 15

B25_CMD="/usr/local/bin/b25"

CONFIGFILE=/etc/default/epgrec
# source config info
[ -r ${CONFIGFILE} ] && . ${CONFIGFILE}

cd ${TS_RECORDED};
SRC_FILES=`ls -1 *${SRC_SUFFIX} | head -${NUM_FILES}`

for f in ${SRC_FILES};
do
    sudo chown ${OWNER} $f;
    chmod 644 $f;
    B25_OUT=`basename ${f} ${SRC_SUFFIX}`.${DST_SUFFIX};
    ${B25_CMD} ${f} ${B25_OUT};
    if [ -s ${B25_OUT} ];
    then
        touch --reference=${f} ${B25_OUT};
        mv ${B25_OUT} ${TS_ENCODING}/;
        mv ${f} ${TS_RECORDED}/.b25done/;
    else
        mv ${f} ${TS_ENCODE_FAILED};
    fi;
done

if [ -e ${PIDFILE} ];
then
    rm -f ${PIDFILE};
fi

【参照】
●AV Watch https://av.watch.impress.co.jp/
パナソニック、地上/BS/CS 6番組同時録画の新BDレコーダ 2015年9月28日
●一般社団法人 電波産業会 https://www.arib.or.jp/
標準規格概要(STD-B25)
●GitHub https://github.com/
stz2012/libarib25: Linux用ARIB STD-B25ライブラリ
●Wikipedia https://ja.wikipedia.org/wiki/
電波産業会
地上デジタルテレビ放送
限定受信システム
B-CAS