質問: AndroidのアプリでMPEG2-TSのマルチキャストストリームを再生させたいと考えています。 MPEG2-TS配信内に複数のチャンネルが流れている場合、 Program Numberを指定して、指定したチャンネルのみを再生させたいのですが、 Androidで実装することはできるのでしょうか? PCのVLCプレイヤーでは実装可能な機能でした。
回答: (これは回答ではありませんが、関連情報のご提供まで。私自身も直接的な解決策を知っているわけではなく、ここから改造していけば実現可能だろうと思っているだけです。) > > exoplayerライブラリを使用しているのですが、複数チャンネルがある場合に1番目のチャンネルしか流せないようです。 > > > MPEG-2 TSデータの構造的に、選択対象チャネルのPMTから映像/音声/PCR PIDを同定さえしてしまえば、それ以外の処理に手を入れる必要はないはずです。下記コードあたりからExoPlayerライブラリの処理を追うのがよいのではないでしょうか。 * PATパーサ:https://github.com/google/ExoPlayer/blob/r2.8.0/library/core/src/main/java/com/google/android/exoplayer2/extractor/ts/TsExtractor.java#L329 * PMTパーサ:https://github.com/google/ExoPlayer/blob/r2.8.0/library/core/src/main/java/com/google/android/exoplayer2/extractor/ts/TsExtractor.java#L378