TSファイル再生の話


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

録画したTSファイル。それについてのチラシの裏

  • そもそもフリーオが作るTSファイルってなんぞや?

TSファイルとはMPEG-2 TS(Transport Stream)形式のファイルのことである。TSとは、MPEG-2 PS(Program Stream)を、188バイトのパケットに分割したものである。PSがDVDなどの伝送条件の良いメディアに格納されることを前提としているのに対し、より伝送条件が悪い「放送」などのメディアに向くように、細かくパケット分割することで、多少の欠落が生じても早期に次の正しいパケットを見つけやすくしている。またTSには映像音声以外の情報も含めることが出来る。TS内の個々の情報は、パケット毎に付されるPID(Packet ID)によって区別される。

放送のTSコンテナの内部には、映像、音声、ワンセグ放送、降雨対応低画質放送、字幕放送、データ放送、番組情報、契約情報、暗号の鍵の種(ECM)情報、レコーダーなどの特定機種のファームウェア情報、など複数の情報が多重化され含まれている。メインとなる番組部分の、動画コーデックはMPEG-2、音声コーデックはAACである。音声2chや5.1chなど複数同時に含まれる場合もある。またワンセグ放送部分では、動画コーデックにはH.264/AVC、音声コーデックにはAAC LCが採用されている。地上デジタル放送では、HD画質1チャンネルとするか(12セグメント分を使用)、またはSD画質の最大3チャンネル(4セグメント×3を使用)とすることができ、一つのTSファイル内で同時に複数の番組が記録されている場合がある。(サブチャネル、マルチチャネル、サービスなどと呼ばれる。)さらにワンセグ放送(1セグ分を使用)を含む全13セグメントで供給される。

このようにTSファイルは、単純ではなく、多種多様な情報を含んだ幅が広い形式と言える。またデジタル放送の規格として、海外ではDVB規格/ATSC規格などがあり、ここでもTSは利用されている。しかし、日本のデジタル放送(ISDB)のTSは、独自の規格の部分もあるためか、外国産のTS対応の再生ソフトでは対応が充分でなく問題が発生するケースが少なくないのが現状である。

フリーオのTSファイルは、放送されている電波を復調し、MULTI2暗号を復号化、もしくはそのまま保存したものである。日本のデジタル放送において、映像・音声などのパケットにはMULTI2暗号化が行われているため、B-CASカードを使った復号化(ARIB STD-B25)が必須となる。(一部無料放送や緊急放送、ワンセグ放送などではMULTI2暗号化はされない。)また、天候やノイズや処理落ちなどによって一部の情報(パケット)が欠落(ドロップ)したりする場合が多々ある。TSは前述の通り、欠落が発生することを前提とした規格であるため、多少の欠落はノイズとなるがそれほど大問題ではない。また、B-CASカードが認識されないなどの理由で、一部パケットがMULTI2暗号化されたままとなるケースもある。

また、FriioViewの設定画面で「録画時に必要性のないデータを記録しない」にチェックを入れた場合、対象のサブチャネルとなる映像音声(と必須な情報)以外のパケットは全て捨てられファイルに記録されない点は注意が必要となる。

  • Windows上での動画ファイルの再生
Windows上では動画ファイルの再生にDirecShowを利用するソフトが多い。DirectShowの利点はデフォルトでは再生出来ない動画ファイル形式であっても、DirectShowFilterを追加することによって対応可能となる場合がある。フィルターには大きく分けて二つある。スプリッタと呼ばれる、映像や音声や字幕などその他の情報の多重化されたコンテナから、個々の映像と音声や字幕などのストリームを分離するもの。コーデックと呼ばれる、映像および音声のストリームの圧縮伸張を行うもの。その他に、字幕情報を映像と重ねるためのフィルターなども場合によっては必要となる。

Friioの標準ソフトでは、MPEG2のコーデックとして「MPV Decoder Filter」が添付されている。お好みによっては他のMPEG2コーデックを利用することも可能となっている。

  • TSを再生するには?
とりあえず再生したければVLC media playerを使えばよい。TSスプリッタもMPEG2コーデックも内蔵しているため、別途それらを入れなくても再生可能であり、トラブルも比較的少ない。ただしDirecShowフィルタは利用できない。
http://www.videolan.org/vlc/download-windows.html

MPC HC(Media Player Classic Homecinema)なども、TSスプリッタMPEG2コーデックを内蔵するため、TSファイルの再生が可能。ややTSの再生でのトラブルがある。内部フィルタを無効にし外部フィルタを使うことで解決する場合もある(しない場合もある)。
http://mpc-hc.sourceforge.net/

TSファイルのパケットに欠落(ドロップ)があったり、暗号化(スクランブル)が解けずそのままであったりする場合、ファイル再生に支障が出ることがある。また、番組の切れ目で映像や音声の形式が変わる場合があるため、形式変更に対応できない再生ソフト(やスプリッタ)では問題が多発する。たとえば、映像形式がHD⇔SDで変化したり、音声形式がステレオ⇔音声多重などで変化するケースなど。そのためプレイヤーの設定を変えてみたり、さまざまなTS再生ソフトやスプリッタを探して試してみるとよい。各種再生ソフトはwikiなどで紹介されているから参照すること。
また後述のTsSplitterなどで分割することで再生トラブルが解決する場合もある。

  • MPCでのTS再生の覚書
1.必要ならHaali Media SplitterなどTSスプリッタをインストールする
2.必要ならffdshowなどのコーデックをインストールする
3.MPCインストールMPCを起動
4.表示→オプション→内部フィルタのMPEG PS/TS/PVAなど適当にチェック
5.MPCを再起動TSファイルを読み込ませればおk

番外編:金曜ロードショーなどの2ヶ国語再生
1.上が行える状態にしておく
2.表示→オプション→音声切替→チャンネルマッピングを有効にするにチェック
3.日本語だけにしたい場合はFront L Rを1だけにチェック(逆の場合は2だけにチェック
4.見終わったらチャンネルマッピングを有効にするにチェックをはずしておく

あと、VLCだとステレオ(モノラル)から二カ国語放送に切り替わった時に、うまく動かない場合があるので、Murdoc Cutterを使って前後(特に頭)を削ってみる。削らなくても「モノラル→ステレオ」なら、CM明けてからオーディオチャンネルを無効→有効に切り替えてオーティオトラックを変えたらOKな場合もある。

  • TSファイルのドロップやスクランブルを知る
tsselectを使えば知ることができる。
http://www.marumo.ne.jp/db2008_5.htm#2
コマンドライン式なのでコマンドラインの使い方を理解すること。(慣れてしまえば、CUIのほうが便利なケースもあるので、無駄ではない。)
scramble=0 drop=0でない部分があればドロップとスクランブルが出ている。
簡単な使い方としては、tsselect.exeと同じフォルダに適当なテキストファイルを作り、
tsselect.exe %1
pause
と上の二行を書いて、(適当な名前).batと拡張子を変えて保存し、調べたいファイルをこのbatにドラッグアンドドロップすれば黒窓に表示される。
ちなみにドロップはどうにもならない。ドロップを削っても音ズレなどの原因になるので何もしないほうが良い。

  • TSファイルのスクランブル解除
一部、または全部がMULTI2暗号化されたままのTSファイルを復号化するためには、b25またはMulti2Decなどを使う。
b25は、ソースしかないので(vc2005expressなどで)ビルドする必要がある。
http://www.marumo.ne.jp/db2008_4.htm#9
Multi2Decは下記うpろだのどこかにある。
http://2sen.dip.jp/cgi-bin/friioup/upload.cgi
(小ワザだが、フリーオはB-CASカードを挿さずに録画すると暗号TSが出来る。録画中の復号化を行わなければより低負荷な録画が行える。後で上記のソフトで復号化すること。)

  • TSファイルから不要なデータを消したい
前述のとおりTSファイルには無駄なデータが多い(データ放送、ワンセグ、番組情報など)ため、ファイルサイズが肥大化している。しかし、FriioViewなどの設定で「録画に必要性のないデータを記録しない」にチェックしていると、MULTI2暗号の復号に必要な鍵の含まれるデータも失われるため、後で復号化することが出来なくなってしまう。もし一部暗号が残っていたときには、b25やMulti2Decで復号が出来なかったり、BS/CSでは契約情報がなく視聴できなくなったりする。そのため「録画に必要性のないデータを記録しない」にはチェックを入れず、保存したTSを正しく復号化した後、不要なデータを削除するようにすると良い。また、サブチャネルなどの任意のデータだけを取り出せば、再生のトラブルは少なくなる。

不要データの削除にはTsSplitterなどを使う。使い方は付属のreadme.txtを見ること。
TsSplitterは下記うpろだの過去ログ検索などで探すこと。
http://2sen.dip.jp/cgi-bin/friioup/upload.cgi
ちなみにtsselectでも不要データの削除は可能だが、やや難易度が高い。


■TS関連ツールのメモ

  • TSのPIDを確認する
TSReader Lite

  • TSのドロップやスクランブルなどをチェックする
tsselect
Multi2Dec

  • TSのスクランブルを解除
b25
Multi2Dec
b25Decoder.dll

  • TSの結合(ドロップの回復を試みる)
tsmarge

  • TSをサブチャネルや番組で分割
TSSplitter
TsSplitter GUI

  • TSの多重化解除(demux)など
BonTsDemux

  • TSをカット編集
Murdoc Cutter

  • TSのファイル名を番組名などで変更
TsRename

  • TSをパーシャルTSに変換する
ts2pts


ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。