REGZAとAT-Xの字幕放送の相性が悪い

REGZAとAT-Xの字幕放送の相性が悪い

AT-Xは新作アニメを含めかなりの数のアニメで字幕放送を行うようになりましたが、その字幕放送とREGZAの相性がかなり悪かったのでなんとか見ようとした悪あがきのログです。
ただ、映像のキャプチャなどが貼れない(貼りたくない)のでかなり分かりづらくなっています。

症状

REGZAで字幕放送をオンにしてAT-Xの放送を見ると「そもそも字幕が表示されない」または「字幕表示区間の途中で一旦表示が消去され再度表示される」症状が発生します。
2つの症状を合わせるとほぼすべての字幕でどちらかの症状が発生しており、視聴する際にかなり気になります。
ほかの放送局では発生せず、AT-Xのみで発生します。

正常に受信・記録はできている

REGZA本体のチューナーや録画機能のバグで字幕パケットを捨ててしまっている、またはデータが化けてしまっている可能性を探ってみます。

まずはREGZAで録画したもの(REGZA本体の機能では正常に描画できなかった)をDTCP-IP経由でパナソニックのレコーダーのお部屋ジャンプリンク機能で再生してみます。
REGZAで録画したものでも字幕描画は完璧に再生されました。

少なくともREGZA内でチューナーの復調、HDDに記録する、HDDから読み出す、それをネットワークに配信するところまでは字幕データが欠落していることはなさそうです。

ほかの放送波では

正常に受信できていることを確認したところで、そもそも送信されているデータがおかしい可能性を見ていきます。

AT-Xは我が家では110度CS、スカパープレミアム、ケーブルテレビの3ラインで受信ができますのでほかの放送波で試してみます。
このうちケーブルテレビでは字幕放送を行っていないので、110度CSとスカパープレミアムでのみ見てみます。

なお、スカパープレミアムは持っているREGZAでは直接受信できないため、一旦パソコンで録画したものをSMBやUSB経由で再生します。
すると、スカパープレミアムでは正常に字幕が描画されました。

110度CSのデータのみになんらかの問題があるようです。

TSを再構成してみる

ここからは110度CSの話です。
というわけでデータをバラバラにして組み直してみます。

まずはffmpegで映像、音声、字幕を全部コピーしてみます。
再生してみると正常に再生されました。

エンコードしたものにtscapitonで字幕をくっつけてみます。
こちらも正常に再生できました。
どうやら字幕データ自体に不正はないようです。

2つ目の字幕パケットの存在

どうもよくわからないのでEPGまわりなど字幕以外を全部残した状態で、字幕パケットだけ剥がしてみることにしました。
tscaptionを使うと字幕パケットだけを剥がすことができます。
この時のログをよく見るとPID「0x1c02」の字幕パケットが存在するようで周期的になにかの信号を送出しているように見えます。

確かに元のTSのストリーム情報を参照するとメインの字幕パケットである「字幕1 : PID 0x120f (4623) / component tag 0x30」のほかに「字幕2 : PID 0x1c02 (7170) / component tag 0x38」があります。
ただ、字幕の内容自体は無のよう(なんかの制御信号が送出されている?)で文字情報の抽出はできませんでした。

再びtscaptionで字幕パケットをマージしてみます。
この時、PID「0x1c02」(字幕2)はサービス「0x014d」との紐づけが切れる(PMTの再構成時に外れてしまう)仕様のようで、「0x1c02」(字幕2)は謎のパケットとなりました。
パケット自体はTSファイルに書き込まれますが、紐づく先のSIDがわからないため内容が虚無のパケットになります。

これがビンゴのようで、できたTSをREGZAに食わすと正常に再生できるようになりました。

結論

字幕2パケットであるPID「0x1c02」を捨てるか再生時に読み込まないように書き換えるとうまく再生できるようになります。
これはパソコンで録画して自由に編集できる場合に限られます。

テレビで録画する場合はPIDを指定して捨てるなどということはできないため対処法はありません。
パソコンを経由せずに正常に再生できるようにする方法として、DIGAで画質変換したものをレグザリンク(DTCP-IP)で読み込むという方法がありました。
AVCへ画質変換を行う際にストリームの再構成が行われるためだと思われます。
DIGAでもDR録画では字幕ストリームの再構成は行われないようで正常に再生できません。
一応テレビで録画しても「REGZA→RECBOX等のNAS→DIGA」の順番でムーブを行うという手順があります。

テレビ側での現象改善にはTVS REGZAのほうでソフトウェアの改修が行われるか、スカパー側で送出の対策を行われる必要があります。
ちなみに、この現象は2011年発売のZ2シリーズ、2019年発売のM530Xシリーズで発生しており少なくともこの間に発売されたREGZAでは発生するものと思われます。

スカパープレミアムでは発生しないのでアンテナを立ててケーブルを引き回してスカパープレミアムを受信するのが手っ取り早いかもしれません。

TVS REGZAさん改修頼みます。

PCで加工をする

「字幕を一旦剥がす→字幕データのみをtscaptionで取り出す→tscaptionで取り出した字幕データをマージする」の3ステップをやれば正常に再生できました。
ただ、字幕を一旦剥がす工程でtscaptionを使うとREGZAで盛大に字幕のタイミングズレが起こるのでTVTestで再録をするほうが良さそうです。
TVTestで見る分には問題がなかったのでうまくタイミングの同期ができなくなるようでした。

DRや番組情報にこだわらなければ、適当にエンコしてtscaptionで字幕データを貼り付けるほうがラクだと思います。