何気なく、omxplayer のヘルプを読んでたら --avdict
という項目を見つけたので調べてみた。
omxplayer
--avdict 'opts' Options passed to demuxer, e.g., 'rtsp_transport:tcp,...'
コレを使えば、カスタムヘッダを追加できるんじゃないかなと。 つまり、Raidkoの再生にffmpeg が要らなくなるじゃん?
omxplayer --avdict ' 'X-MY-HEADER: my_header_key'
この形でカスタムヘッダを追加できる。 ffmpeg の --header 相当ですね。
ってことでやってみた
再生する手順
最初に、AuthTokeを持ってm3u8 にアクセスして、テンパラリのURLを生成してもらう。次にそのURLへリクエストを放り込む m3u8 内に記述されたm3u8 のネストをomxplayer は取得できないので、いったんcurl を経由する必要がある。
m3u8のURLを出してもらう
takuya@raspi3:~/omxplayer$ curl -H 'X-Radiko-AuthToken: xxxxxxxxxxxxxxxxxxx' 'https://radiko.jp/v2/api/ts/playlist.m3u8?station_id=MBS&ft=201711101530&to=201711101730' #EXTM3U #EXT-X-VERSION:3 #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=52973,CODECS="mp4a.40.5" https://radiko.jp/v2/api/ts/chunklist/8NwMph0V.m3u8
m3u8 のURLにomxplayer でアクセスする。
takuya@raspi3:~/omxplayer$ omxplayer -hw -o local --avdict 'X-Radiko-AuthToken: xxxxxxxxxxxxxxx' https://radiko.jp/v2/api/ts/chunklist/8NwMph0V.m3u8 Audio codec aac channels 2 samplerate 48000 bitspersample 16 Subtitle count: 0, state: off, index: 1, delay: 0 have a nice day ;)
これで再生できた。raspi 使う限りにおいてffmpeg でパイプする必要もなくなるしomxplayer だけで解決するのも嬉しい。
東京の放送が聞きたきゃmoperaやLTE経由すればいいし、大阪や関西の放送が聞きたければさくらVPSを経由すればいいし。既存のインフラでなんとかなるのが嬉しい。ちなみにYahooBBだとほとんど福岡にされるのはナゼなんだろう。便利だけどw
Raspberry Pi 3は優秀なRadikoプレーヤーになりそうです。
ただ、m3u8 の場合は スキップが効かないのでそのへんは今後の課題ですね。。。