Chinachu / Mirakurun

A Modern DVR Tuner Server for Japanese TV.
https://chinachu.moe
Apache License 2.0
626 stars 101 forks source link

SIDでスプリットしたBS朝日とBSフジがTVTestで見られない #33

Closed warpzone closed 5 years ago

warpzone commented 6 years ago

Environment

Issue

Ubuntu 17.10が稼働しているマシンにPT2を刺してdvbドライバで動作させ、https://github.com/Chinachu/docker-mirakurun-chinachu によるDockerfile/docker-composeに 小変更(v4l-utils-dvbv5パッケージをインストール)を加えてMirakurunをdockerコンテナ内で 動作させています。

Windows10にはTVTest(2018/03/13時点のソースからビルドしたもの)とBonDriver_Mirakurun v1.5を インストールし、BonDriver_Mirakurun.iniにてSERVICE_SPLIT=1と設定してTVTestでMirakurunからの ストリームを再生させようとすると、BS朝日とBSフジのみ画面が真っ暗となり再生できません。

Mirakurunではdvbv5-zapにてチューニングを行っており、チャンネル定義ファイルは https://github.com/Chinachu/dvbconf-for-isdb/ から取得しています。tuners.ymlと channels.ymlは以下のように記述しています。

tuners.yml

- name: PT2-0-S0
  types:
    - BS
    - CS
  command: dvbv5-zap -a 0 -c /usr/local/etc/mirakurun/dvbv5_channels_isdbs.conf -r -P <channel>
  dvbDevicePath: /dev/dvb/adapter0/dvr0
  decoder: arib-b25-stream-test

channels.yml

- name: BS01_0
  type: BS
  channel: 'BS01_0'

- name: BS13_1
  type: BS
  channel: 'BS13_1'

BonDriver_Mirakurun.iniにてSERVICE_SPLIT=0とした場合は問題ありません。

Mirakurunによるサービススプリット前のストリームである http://mirakurun:40772/api/channels/BS/BS01_0/stream?decode=1http://mirakurun:40772/api/channels/BS/BS13_1/stream?decode=1 をBonDriver_HTTPに 食わせてみると正常に再生でき、TVTestからサービスの切り替えもできますが、 スプリット後のストリームである http://mirakurun:40772/api/channels/BS/BS01_0/services/151/stream?decode=1http://mirakurun:40772/api/channels/BS/BS13_1/services/181/stream?decode=1 を BonDriver_HTTPに食わせると再生できないため、BonDriver_Mirakurun特有の問題ではなく、 Mirakurunによるスプリット結果がTVTestの気に食わないようです。

TVTestのバージョンや使用するデコーダを複数用意し、様々な組み合わせで試してみましたが、 結果は同様でした。

なお、上記スプリット後ストリームをVLCに食わせると正常に再生でき、また、Chinachu上でも ライブ視聴・録画・再生はできるのですが、Chinachuで当該チャンネルを録画して生成された TSファイルをTVTest+BonDriver_Pipe+TvtPlayで再生させることはできませんでした。 (VLCでは再生できるものの、Windows Media Playerでは画像が乱れる)

問題が発生している際のMirakurunのログは以下の通りですが、問題が出ていない (Mirakurunで正常にスプリットできている)チャンネル受信時と、特に差はないように 見えます。

> mirakurun@2.7.0 start /usr/local/lib/node_modules/mirakurun
> node --max_old_space_size=256 lib/server.js

2018-03-15T16:28:09.993+09:00 info: load config `/usr/local/etc/mirakurun/server.yml`
2018-03-15T16:28:09.995+09:00 info: load config `/usr/local/etc/mirakurun/channels.yml`
2018-03-15T16:28:09.995+09:00 info: load config `/usr/local/etc/mirakurun/tuners.yml`
2018-03-15T16:28:09.996+09:00 debug: loading tuners...
2018-03-15T16:28:09.997+09:00 debug: TunerDevice#0 initialized
2018-03-15T16:28:09.997+09:00 info: 1 of 1 tuners loaded
2018-03-15T16:28:09.997+09:00 debug: loading channels...
2018-03-15T16:28:09.998+09:00 debug: loading services...
2018-03-15T16:28:09.998+09:00 info: load db `/usr/local/var/db/mirakurun/services.json`
2018-03-15T16:28:10.000+09:00 debug: loading programs...
2018-03-15T16:28:10.000+09:00 info: load db `/usr/local/var/db/mirakurun/programs.json`
2018-03-15T16:28:27.759+09:00 info: listening on http+unix://%2Fvar%2Frun%2Fmirakurun.sock
2018-03-15T16:28:27.759+09:00 info: listening on http://172.19.0.2:40772
2018-03-15T16:28:27.759+09:00 info: listening on http://127.0.0.1:40772
2018-03-15T16:28:27.760+09:00 debug: saving services...
2018-03-15T16:28:27.760+09:00 info: save db `/usr/local/var/db/mirakurun/services.json`
2018-03-15T16:28:29.807+09:00 debug: saving programs...
2018-03-15T16:28:29.809+09:00 info: save db `/usr/local/var/db/mirakurun/programs.json`
192.168.100.21 - GET /api/services HTTP/1.1 200 - - 0.895 ms -
2018-03-15T16:29:07.525+09:00 info: TSFilter has created (serviceId=151, eventId=null)
2018-03-15T16:29:07.525+09:00 debug: TSFilter is waiting for serviceId=151, eventId=null
2018-03-15T16:29:07.526+09:00 debug: TunerDevice#0 start stream for user `172.19.0.1:47958` (priority=0)...
2018-03-15T16:29:07.526+09:00 debug: TunerDevice#0 spawn...
2018-03-15T16:29:07.539+09:00 info: TunerDevice#0 process has spawned by command `dvbv5-zap -a 0 -c /usr/local/etc/mirakurun/dvbv5_channels_isdbs.conf -r -P BS01_0` (pid=45)
2018-03-15T16:29:07.540+09:00 info: TunerDevice#0 streaming to user `172.19.0.1:47958` (priority=0)
2018-03-15T16:29:07.548+09:00 info: TunerDevice#0 > using demux 'dvb0.demux0'
reading channels from file '/usr/local/etc/mirakurun/dvbv5_channels_isdbs.conf'
2018-03-15T16:29:07.549+09:00 info: TunerDevice#0 > tuning to 1049480 Hz
ERROR    Need a LNBf to work
pass all PID's to TS
2018-03-15T16:29:07.549+09:00 info: TunerDevice#0 > dvb_set_pesfilter 8192
2018-03-15T16:29:07.628+09:00 info: TunerDevice#0 > RF     (0x01) C/N= 11.53%
2018-03-15T16:29:07.629+09:00 info: TunerDevice#0 >
2018-03-15T16:29:07.843+09:00 debug: TSFilter detected NIT PID=16
2018-03-15T16:29:07.844+09:00 debug: TSFilter detected PMT PID=257 as serviceId=151 (BS朝日1)
2018-03-15T16:29:07.844+09:00 debug: TSFilter parsing serviceId=151 (BS朝日1)
2018-03-15T16:29:07.844+09:00 debug: TSFilter parsing serviceId=152 (BS朝日2)
2018-03-15T16:29:07.844+09:00 debug: TSFilter parsing serviceId=153 (BS朝日3)
2018-03-15T16:29:07.844+09:00 debug: TSFilter parsing serviceId=181 (BSフジ・181)
2018-03-15T16:29:07.844+09:00 debug: TSFilter parsing serviceId=182 (BSフジ・182)
2018-03-15T16:29:07.844+09:00 debug: TSFilter parsing serviceId=183 (BSフジ・183)
2018-03-15T16:29:07.844+09:00 debug: TSFilter detected PMT PID=513 as serviceId=152 (BS朝日2)
2018-03-15T16:29:07.844+09:00 debug: TSFilter detected PMT PID=515 as serviceId=153 (BS朝日3)
2018-03-15T16:29:07.849+09:00 info: TSFilter is now ready for serviceId=151
2018-03-15T16:29:08.661+09:00 info: TunerDevice#0 > Lock   (0x13) C/N= 7.05%
2018-03-15T16:29:08.661+09:00 info: TunerDevice#0 >
2018-03-15T16:29:08.676+09:00 info: TunerDevice#0 > Lock   (0x13) C/N= 7.04%
2018-03-15T16:29:08.677+09:00 info: TunerDevice#0 >
2018-03-15T16:29:08.708+09:00 info: TunerDevice#0 > Lock   (0x13) C/N= 7.05%
2018-03-15T16:29:08.709+09:00 info: TunerDevice#0 > DVR interface '/dev/dvb/adapter0/dvr0' can now be opened
2018-03-15T16:29:08.740+09:00 info: TunerDevice#0 > Lock   (0x13) C/N= 7.05%
2018-03-15T16:29:08.741+09:00 info: TunerDevice#0 >
2018-03-15T16:29:09.812+09:00 info: TunerDevice#0 > Lock   (0x13) C/N= 7.07%
2018-03-15T16:29:09.999+09:00 debug: Network#4 EPG gathering has queued
2018-03-15T16:29:09.999+09:00 info: Network#4 EPG gathering has started
2018-03-15T16:29:10.000+09:00 info: TSFilter has created (serviceId=null, eventId=null)
2018-03-15T16:29:10.001+09:00 debug: TSFilter is waiting for serviceId=null, eventId=null
2018-03-15T16:29:10.001+09:00 debug: TunerDevice#0 start stream for user `Mirakurun:getEPG()` (priority=-1)...
2018-03-15T16:29:10.001+09:00 info: TunerDevice#0 streaming to user `Mirakurun:getEPG()` (priority=-1)
2018-03-15T16:29:10.009+09:00 debug: TSFilter detected NIT PID=16
2018-03-15T16:29:10.009+09:00 debug: TSFilter detected PMT PID=257 as serviceId=151 (BS朝日1)
2018-03-15T16:29:10.009+09:00 debug: TSFilter detected PMT PID=513 as serviceId=152 (BS朝日2)
2018-03-15T16:29:10.009+09:00 debug: TSFilter detected PMT PID=515 as serviceId=153 (BS朝日3)
2018-03-15T16:29:10.805+09:00 info: TunerDevice#0 > Lock   (0x13) C/N= 7.06%
2018-03-15T16:29:10.805+09:00 info: TunerDevice#0 >
2018-03-15T16:29:11.836+09:00 info: TunerDevice#0 > Lock   (0x13) C/N= 7.05%
2018-03-15T16:29:11.837+09:00 info: TunerDevice#0 >
2018-03-15T16:29:12.868+09:00 info: TunerDevice#0 > Lock   (0x13) C/N= 7.06%

以上、何か問題解決の方法はないでしょうか。 よろしくお願いいたします。

kusano commented 6 years ago

この問題で困っていましたが、↑で再生できるようになりました。

warpzone commented 6 years ago

当該パッチをTSFilter.jsにあててみたところ、私の環境でも問題のチャンネルが TVTestで再生できるようになりました。ありがとうございます。

kanreisa commented 5 years ago

大変遅くなりましたが修正したバージョン 2.7.2 をリリースしました。

sudo npm i mirakurun -g --unsafe --production

でどうぞ!