読者です 読者をやめる 読者になる 読者になる

AirBnB で借りた家に設置されているアンテナ線の繋がっていないテレビで地デジを快適に見る方法

こんばんは、これは MPEG2-TS アドベントカレンダー 31 日目の記事です。

2015 年も終わりそうになっていますが、毎年年末年始は友人宅に集まってみんなでワイワイ酒を飲みながら年を越しており、今年は AirBnB を使ってリビングの広い家を借りようということになりました。

しかし AirBnB で雑に家を借りると残念なことがあって、アンテナ線が繋がってないテレビ (アンテナ線は 2 階にあるらしいが、借りた部屋は 1 階でした) が平気で配置されています。仕方が無いので HDMI ケーブルを使って PC を繋ぎ d アニメストアなどの VOD サービスで映像視聴していました。しかし、今日は大晦日ですから、 ISDB-T の映像を見たいのです。

幸い、この AirBnB の物件には高速なインターネットがあり、下り 70Mbps 程度のスループットが出ていました (AirBnB の物件にはインターネットありと言って WiMAX2+ のルータが設置されているだけのところも多々あります) 。

まず、自宅に設置されている RTX1200 に VPN(L2TP) でセッションを張り、自宅で日頃テレビ視聴に使っているマシンで RecTest を立ち上げます。

そして RecTest では UDP でストリームを吐き出すようにし ffmpeg で HLS 形式のエンコードを行います。そしてファイルを nginx で配信し、最初はインターネット上で公開しようかと思ったのですが、だんだん面倒になってきたので VPN セッション上で動画を視聴することになりました。

とりあえずエンコードオプションを書いておきます。

ffmpeg -i udp://127.0.0.1:3456?pkt_size=262144^&fifo_size=1000000^&overrun_nonfatal=1 -f segment -segment_format mpegts -segment_time 1 -segment_list playlist.m3u8 -segment_list_flags live -segment_wrap 100 -segment_list_size 100 -threads auto -map 0:0 -map 0:1 -acodec libvo_aacenc -ar 48000 -ab 192k -ac 2 -vcodec libx264 -s 1280x720 -aspect 16:9 -vb 2m -force_key_frames expr:gte(t,n_forced) -break_non_keyframes 1 stream_%d.ts
  • エンコードの様子 エンコードの様子

大晦日にいきなり設定したので、チャンネルを切り替えるためには RDP 経由で RecTest や ffmpeg を操作し、視聴 PC で VLC でファイルを開き直すという手順が必要なのですが、とりあえず快適に ISDB-T が視聴出来るようになりました。

18 時くらいから設定を始めてエンコードパラメータを弄り続けていたのですが 21 時ごろには良い感じになったので、まあまあ良い結果だったとおもいます。

ちなみにここまで設定しておいて、最終的には VPN 経由なので Spinel 経由で TvTest を見ればいいなということに気付いたので、高速なインターネットがある場合はそうしたほうがよいでしょう。

それではみなさんよいお年を!