1. 株式会社PALTEK
  2. TECHブログ
  3. 技術情報
  4. 2K放送:今更のMPEG2-TSの基本【第一回】

TECHブログ

2K放送:今更のMPEG2-TSの基本【第一回】

2K放送:今更のMPEG2-TSの基本【第一回】

このブログでは、「MPEG2-TS」の基本的なことについてお伝えしてまいります。

目次

初見のARIBってむずかしい

初めてARIB(Association of Radio Industries and Businesses)の標準規格や運用規定を読もうとすると、とっつきにくいですよね。
どこに何が書いてあるのかを把握するまで別冊を行き来したり、他の規格団体の仕様を参照しなければならなくてそっちを手配したり探したり、経験者が周りにいないと教科書になりそうなものを探したり…


私は、ごく普通のテレビユーザでした。その感覚で読むとチャンネルとサービスの違いがピンとこないところから始まり、サービスとプログラムとイベントの違いすらよく分からず、結構長くモヤモヤしたまま読んでいました。これで映像や字幕の提示、データ放送の提示、VODなどが作れるようになる気がまったくしませんでした。
ARIBの本当の難しさは書かれていることの理解より、その先に進んだときに書かれていない仕様をどうするかにあるという認識ですが、それはまた別のお話しで。


今ではいろいろな教科書や解説、オープンソースのコードなどが多数存在し、私が初めてふれた20年以上前とは情報量が大違いですが、具体的なデータに照らし合わせながら、動く・作れる実感を得ることのできるものは多くないように思います。
ですから、ライトに実際のデータを覗きながら親しむというアプローチをとってみたいと思います。


今回は、実際の放送の全体像をつかむことを目的とするので最小限のことだけ行い、細かい規約や例外には触れません。
できるだけ簡単に、多重化されたMPEG2-TSから映像や音声、字幕、データ放送などのストリームを抜き出して、映像、音声の再生、字幕、データ放送の内容を覗き見したいと思います。


ここで扱うデータは、

  • CASで暗号化されていない番組(B-CASを挿してなくても視聴できる番組)
  • A-PAB(旧Dpa)の非暗号テストストリーム
  • 暗号化されたストリーム(コンポーネント)を含んでいるが複号していない番組の非暗号部

とし、STD-B25の限定受信に関わるCASの複号(デスクランブル)等については触れません。当たり前のことですが、要は著作権保護のかかっている番組の不正視聴に関わることには触れないということです。


※B-CASを挿してなくても視聴できる番組だからといって著作権がない訳ではなく、受信者が自由にできる訳ではありません。ここで扱っていることに対しては、放送に関わるエンジニアの敷居を下げるためと受け取っていただき、事業者の方には大目に見ていただけるとありがたいです。少なくとも持ち出しやDLNAなどネットワーク経由で扱うことになるパーシャルTSを扱えるアプリケーションエンジニアはもっと増えてほしいと願っています。


※放送波のMPEG2-TSとレコーダなどで扱うパーシャルMPEG2-TSとを区別するため、ここでは放送波から受けたものを「放送TS」と書きます。これが不変な呼び方なのか、方言なのか分かりませんが、私の周りの方々(複数のメーカ様、開発会社様)とは通じていました。正しい呼び方をご存じでしたらご教示いただけるとありがたいです。

チャンネル、サービスと選局

最初にARIBに触れた当時、PDFではなく紙の冊子になったものが段ボールに大量に入っていました。その量を見て、テレビの基本から順番に読もうとはせず、電子番組表に直接関わりそうな箇所を探して読み始めた気がします。それが原因で、チャンネルとサービスの違いがあやふやでモヤモヤした時期が長く続きました。教訓は、急がば回れですが、回っているうちに熱が冷めてしまうので、この先の前提となるチャンネル、サービス、選局の簡単な説明をします。


テレビを見るにはチャンネルの選択をしますが、これはARIBでいうところの選局操作に相当し、サービスの選択であり、受信機の内部的にはservice_idの選択にあたります。
service_idはリモコンで選局できるチャンネル毎にユニークなidが割り当てられています。
リモコンで選ぶチャンネル=サービスとなります。地上、BS、CSどれも多くの放送はマルチ編成となっていて、サービス毎にservice_idが割り当てられています。
例えばAはA1、A2の2つによるマルチ編成、BはB1、B2、B3の3つによるマルチ編成となっていて、すべてに異なるservice_idが割り当てられています。

図 1:チャンネルとサービス


テレビを購入すると最初にチャンネル取得(チャンネルサーチやチャンネルスキャンとも呼ばれる初期設定)を行います。この時にNITなどのSI情報を使用して放送されているチャンネルの放送局(事業者)やサービス(service_id)を得ています。

※固定受信機の番組表には表示されませんが、地デジはワンセグもマルチ編成の中に含まれています。

放送TS(MPEG2-TS)の準備と覗き見環境

今回は、選局された受信機のチューナ部から出てくる放送TSがファイルに保存された状態、またはA-PAB(旧Dpa)が配布しているテストストリームがある状態から始めるので選局については触れません。
放送TSを用意する方法ですが、どうにかして正当な方法で用意してください。

・受信機で選局し、チューナ出力段でファイルに出力。通常は開発機等を持っていないと難しいと思います。

覗き見は、“c”で書いたコードを使用します。ここではlinux上で進めますが、OSに関係なく試すことができると思います。ページ数の問題でコードの内容は説明しません。放送TSが入ったファイルから1パケットずつバッファに取り込んで、そのデータの必要な部分の値を見て処理をする単純なコードです。
先に言い訳をしますが、私はソフトのエンジニアではないので、愚直にパースしているだけで適切なコードになっていないと思いますがご容赦ください。ご意見、ご指導いただけるのでしたら大歓迎です。


それでは、この先は図とリストをベースに書いていきます。

放送TS(MPEG2-TS)を覗く:前編

早速ですが、図 2はよく見る多重化の図ですね。ちょっと違うのはマルチ編成を意識しているところです。
放送TSに入っているデータを利用するにはこの逆の手順で、映像や音声を取り出すことになります。

図 2:MPEG2-TSの概念図

やっていくことを理解しやすくするため、先に覗き見するデータの内容を記載します。

図 3:非暗号の某BS放送

「某」と書いたところでサービスIDからチャンネルも分かってしまいますが、B-CASを挿していなくても視聴できる時間帯があったのでその時のデータを使用します。データ放送、(BSなので)ワンセグもなくシンプルな2サービスのマルチ編成になっています。


話がそれますが、地デジ国営放送は図 3のように字幕が2つ(日本語/英語とか)、ワンセグが入っていたり、データ放送のコンポーネントがたくさん入っていたりとゴージャスです。よく見ると3つのサービスは使用しているコンポーネントがすべて同じなので、この時間帯はどのサービスを視聴しても同じものを見ることになります。

図 4:某地デジ放送

前置きが長くなりました。実際に覗くのは次回です。


今回説明した内容などでのご質問がありましたら、下記よりお問い合わせください。

お問い合わせはこちら