2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

BonDriver共有ツール総合 その2

1 :名無しさん@編集中:2015/04/07(火) 20:25:07.03 ID:n6IDd8Gi.net
BonDriver共有ツール総合

※前スレ
http://peace.2ch.net/test/read.cgi/avi/1366339738/

521 : ◆SALrG1ld3mTc :2015/12/07(月) 07:33:21.24 ID:UGep1o/i.net
>>520
> クライアント側のBonDriver_Proxy.dllにSplitしてくれという設定がされていれば、
> 配信前にBonDriverProxyEx.exe内でSplitして送信

現在の実装の都合的にこれはちと難しいです(;´Д`)
クライアントがTS分離を要求していたとして、あるBonDriverのあるスペース/チャンネルに
チャンネル変更した際に、クライアントにどのサービスを送信すれば良いのか、現状BDPサーバ側では
知る手段がありません
一応、BDPクライアントの設定項目を大幅に追加/変更し、BDPの通信プロトコルも一部変更すれば
そこはクリアできる可能性も出てきますが、次のハードルとして、クライアントAとクライアントBが
同じBonDriverを要求していて、かつAはTS分離を要求、Bはそのままを要求している場合、
クライアントAのチャンネルnとクライアントBのチャンネルnは対象BonDriverに対しては異なる
チャンネルになる場合が出てくる為、チャンネル共有を行うにはBDPサーバ内部でかなりごちゃごちゃと
対応とる必要が出てくる感じです

BDPのアーキテクチャ的にも、そもそもその名の通りクライアント側からサーバ側のBonDriverへ
なるべく透過的にプロキシ接続すると言うのがモットーなので、BDPサーバ内部であれこれやるのは
できれば避けたいところなのですヽ(;´ー`)ノ

522 :名無しさん@編集中:2015/12/07(月) 08:06:51.44 ID:WEXhPXgZ.net
まあこれは正直しょうがないとおもう

523 : ◆SALrG1ld3mTc :2015/12/07(月) 19:21:10.75 ID:UGep1o/i.net
とりあえず>>518に関しては、それができて困る事は無さそうなのでBonDriver_Splitterを更新しておきました
USESERVICEIDが[OPTION]での設定から各スペース毎での設定に移動しています
今までのバージョンからこのバージョンに乗り換える場合は、すみませんが現在ご使用のiniの内容変更をお願いします
スペース定義でUSESERVICEIDが設定されていない場合のデフォルト値は1なので、今までの物をUSESERVICEID=0で
使っていた人は特にご注意ください…

なお、サンプルのiniの設定は難視聴を削除したバージョンのBonDriver_PT-S.ChSet.txtに
あわせて更新しておりますので、こちらについてもご注意くださいヽ(;´ー`)ノ

524 :名無しさん@編集中:2015/12/07(月) 19:52:34.49 ID:uKLmWuWD.net
エエー
めんどくさw

525 : ◆SALrG1ld3mTc :2015/12/07(月) 20:59:07.60 ID:UGep1o/i.net
スミマセン(;´Д`)
一応、機能的には>>518ができるようになっただけの違いなので、こういう使い方が不要な方は
必ずしも乗り換える必要はありません
なお、iniの内容変更はUSESERVICEIDの行を各スペース定義に機械的に追加するだけですので、
多分30秒くらいあれば終わる作業かと思います…

526 :名無しさん@編集中:2015/12/07(月) 22:02:40.05 ID:1tpwsUgy.net
もしかして結果的に>>339ができるようになったのかな(ゴクリ

527 :名無しさん@編集中:2015/12/07(月) 22:05:32.67 ID:2gWgEEkj.net
これは大歓迎。ありがたいです。

528 :名無しさん@編集中:2015/12/07(月) 23:13:17.00 ID:yuM9d50s.net
Bondriverproxy_linuxだけど
./sample -b /home/chinachu/BonDriverProxy_Linux/BonDriver_Proxy-T.so -s 0 -c 15 -t 5 test.tsで試したら
意味不明な文字列が流れまくった後に
TS Queue OVERFLOW : size[64]

こんなの出て停止する...

529 :名無しさん@編集中:2015/12/08(火) 00:50:18.50 ID:u8Wl3AlJ.net
>>528
それ多分標準出力に出力されてる
sampleのファイルへの保存オプションは-oだよ
./sample -b /home/chinachu/BonDriverProxy_Linux/BonDriver_Proxy-T.so -s 0 -c 15 -t 5 -o test.ts

530 :名無しさん@編集中:2015/12/08(火) 00:54:31.69 ID:JbbtGHow.net
標準出力にバイナリ垂れ流すって、普段Windows使う上であまり遭遇しないからねぇ

531 :名無しさん@編集中:2015/12/08(火) 01:06:00.20 ID:XjLk9OUQ.net
>>529
ありがとうございますm(_ _)m

532 : ◆SALrG1ld3mTc :2015/12/08(火) 22:12:23.14 ID:p7sWjTEt.net
>>526
BonDriver_Splitterを噛ませる必要がありますが、クライアントが録画ソフトの場合は生TSを、
視聴用ソフトの場合はサービス指定されたTSを送る事ができる、と言う感じですね

ただしもちろん、視聴用ソフトがチャンネルロックせずに視聴中に録画ソフトがチャンネルを持って行った場合、
視聴用ソフト側にも生TSが送られるようになります
要は単に、生TSが流れるチャンネルとサービス指定されたTSが流れるチャンネルとが別々に存在している状態に
できると言うだけですヽ(;´ー`)ノ

533 :名無しさん@編集中:2015/12/08(火) 23:32:16.40 ID:r118EW6i.net
同時に違う内容のTSを流せるわけではないということですね

534 :名無しさん@編集中:2015/12/13(日) 09:55:46.22 ID:jLMqAbND.net
>>315
>>320

もうすでに解決済みかもしれませんが。
libusbで制御する形でPX-BCUDをLinuxで使えないか調査しているのですが
同じ様にTSが化けて、0x47が出てこないで0xffの塊が周期的に出てくる様な
状態だったのですが、em28178のレジスタ0x5fをLSB=1にするのではく0x81を
出力した所TSが出てきました。

理由は資料が見つけられていないのでわかりませんが、recfsusb2nのソース
だとLSB=1だったのとBonDriver_BSCS.dllのキャプチャ結果だと0x5fを読んで
0x80でLSB=1にして0x81を出力しています。それで、LSB=1だと考えたのですが、
0x80にも意味が有るようです。

ttp://pastebin.com/Ni6a1CwQ

USBに対する入出力結果を貼っておきます。

まだ、BS1を30秒録画してTSが出てきたというだけの段階です。理解できずに
やっている箇所が多いので必要なことをやっていなかったり余計なことを
やっていると思いますが、何かの参考になれば。

DVBドライバ期待しています。

535 :名無しさん@編集中:2015/12/13(日) 09:56:40.41 ID:jLMqAbND.net
あああ。間違えた。

536 :名前:名無しさん@編集中:2015/12/13(日) 12:35:21.36 ID:UuAvMx/x.net
>>535
なんだとぉー、適切に謝罪しろ

537 :名無しさん@そうだ選挙に行こう:2015/12/14(月) 12:20:32.21 ID:jLiqrzD/.net
            __、
     ,r´⌒ヽ,⌒ヽ,ヽ
   (⌒)、   .人  λ\、 .NHK___
    \. \    、 ヽ./ ー  ー\
     |\ \    ヽ./ ( ●) ( ●)
     |  \  \ /     (__人__) \  はいはい、どーもすみませんでした
     |.   \   |       ` ⌒´   |
  .   |.   |.\_ノ\            /
  .   |.   |   |   \______/
  .   |   )  .|     . . ̄ ̄
  .   |   |  .|
     |   |.|  .|
  .   |  | .| .|
     /  / / ヽ,
    (__ノ  ヽ、__つ

538 :名無しさん@編集中:2015/12/15(火) 09:35:02.37 ID:ri5RDlwB.net
NASベースのにUSB接続のBSCSチューナーをつける方向から
いかにPCIeを引き出してPT3付けるかという方向に倒れてしまった。
けど、USBチューナーのドライバ作ってる人頑張って。

539 :名無しさん@編集中:2016/01/16(土) 16:34:58.95 ID:Eo5lDrqX.net
BonDriverProxyで他PCのクライアントに配信している時に
サーバー側のWindowsで設定したスリープ移行時間になると
他PCへ配信中にもかかわらずサーバー側がスリープに入ってしまうのですが
配信中にスリープを抑制するにはどうすればいいでしょう?

540 :名無しさん@編集中:2016/01/17(日) 01:51:52.84 ID:d/YGes89.net
>>539
ttp://www.vector.co.jp/magazine/softnews/120905/n1209051.html
こういうソフトで上手く動いてるときにだけ抑制出来るようにするとか?

確実に連携したいならソフトでの対応だろうけど
一度スリープしてしまうと、他のPCから新規に繋げなくなるし難しいところだね

541 :537:2016/01/17(日) 12:18:19.24 ID:5DrQmEj7.net
>>540
ありがとうございます
やはり他のソフトを使わないと難しい感じですかね
他PCからのスリープ状態からの起動はWOLがあるのでなんとかなるとは思います

542 :名無しさん@編集中:2016/01/17(日) 13:31:51.91 ID:d/YGes89.net
んじゃあまあ、作者待ちってことでね

543 :名無しさん@編集中:2016/01/17(日) 19:42:08.23 ID:bVAMDGP2.net
さすが作者さん速いね。

https://github.com/u-n-k-n-o-w-n/BonDriverProxy/tree/master/BonDriverProxy

544 : ◆SALrG1ld3mTc :2016/01/17(日) 20:11:01.03 ID:0A8sOHX/.net
おや、既に書いてもらってましたか
さっきバイナリも更新しておきました
ただwin8.1環境でのテストしかできていないので、ちゃんと動かねーよ的な場合は
ご報告いただけると助かります

確かに配信中なのにスリープに入ってしまうのは不便ですよね
当方普段はptTimerを使っており、BonDriver_ptmrを使う限りこの辺りの挙動はptTimer本体が
良きにはからってくれてたので気付いてませんでしたヽ(;´ー`)ノ失礼しました

545 :名無しさん@編集中:2016/01/17(日) 20:19:39.65 ID:kbpSPJF1.net
何を使ってもvlcがエラーを吐いてエンコを止めてしまう環境の俺には関係無かった。w
グハァッ

546 :名無しさん@編集中:2016/01/17(日) 20:20:12.06 ID:kbpSPJF1.net
ごめん、スレ間違えた。
ヽ(;´Д`)ノ

547 :537:2016/01/17(日) 21:06:10.12 ID:5DrQmEj7.net
>>544
おお!早速の実装ありがとうございます!
滅茶苦茶嬉しいです!

548 :名無しさん@編集中:2016/01/20(水) 20:06:11.15 ID:1UIy46ve.net
EDCBのネットワークTV使ってごまかしてたけど、これで気軽にTVTestから使える
嬉しいわー

549 :名無しさん@編集中:2016/02/11(木) 13:51:03.36 ID:SncJ23/p.net
これ凡に見えるの、俺だけじゃないよなw

http://av.watch.impress.co.jp/docs/news/20160210_743096.html

550 :名無しさん@編集中:2016/02/11(木) 14:01:40.48 ID:OEbG9ylZ.net
マンマンに見える

551 :名無しさん@編集中:2016/02/11(木) 15:10:51.00 ID:RXHyJtmW.net
同時代を共有した感が湧いてくると同時に、
こいつムサビのアレと同じで無能じゃねって思う

552 :名無しさん@編集中:2016/02/15(月) 16:32:45.51 ID:JM/KucHa.net
PT2の場合は、SDKのバグがあるので、

OPENTUNER_RETURN_DELAY=0

OPENTUNER_RETURN_DELAY=10

にしないとダメだったのかww

553 :名無しさん@編集中:2016/02/20(土) 17:01:52.29 ID:zf9uE+KI.net
abt8WGさんのEDCBビルドしてEpgTimer起動したら、
---------------------------

---------------------------
同一のキーを含む項目が既に追加されています。

場所 System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)

場所 System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)

場所 EpgTimer.GridViewSelector..ctor(GridView gv, List`1 setting)
---------------------------
OK
---------------------------

ってメッセージが出る。
何だかよくわからん。

554 :551:2016/02/20(土) 17:02:31.65 ID:zf9uE+KI.net
ごめん。
スレ間違えた。

555 :名無しさん@編集中:2016/03/02(水) 12:55:52.81 ID:cXspTCix.net
BonDriverProxy.iniに設定するアドレスってサーバー側のアドレスと思うんだけど、これはどんな仕組みなの?
許可するクライアントのアドレスだと思い込んでて設定にはまってた

556 :名無しさん@編集中:2016/03/02(水) 13:09:40.35 ID:jXHtiEjE.net
>>555
サーバー側のは公開するネットワークインターフェースのIPアドレス

557 :名無しさん@編集中:2016/03/02(水) 13:43:40.81 ID:zWPZttlR.net
>>555
待ち受けるアドレスを決める
BonDriverProxyが稼働しているPC(サーバー)の
Network Interfaceが1つとは限らないし、全てがローカルネットワークとは限らないから

たとえば、そのPCがローカルIPの10.0.1.1と192.168.1.1と、
グローバルIPの157.xx.xx.1を持っていたとしたら
192.168.1.1に接続してるネットワークからのアクセスのみ応答するとか出来る。

そうしないと、予期せぬネットワークからアクセスされる恐れがあるから。

558 :名無しさん@編集中:2016/03/02(水) 15:53:15.72 ID:vAe1oFfg.net
BondriverProxy_Linux 待ち受けるアドレスnat越しでも動くようにして欲しい
ホストでポートフォワードして、ホストと同じネットワークにあるマシンからアクセスできるようにしても、
ipが違うからアクセス出来ない

559 :553:2016/03/02(水) 19:08:12.54 ID:cXspTCix.net
>>556-557
そういうことか、すっきりした
ありがとう

560 : ◆SALrG1ld3mTc :2016/03/03(木) 22:31:18.15 ID:YM/9CK66.net
>>558
bdpが使うのは(wolパケット以外は)サーバ向きのtcpポート1つだけなので、ポートフォワードが正しく設定されているなら
アクセスできると思いますよ

例えばsshでトンネル掘るとすると、まずbdpサーバが動いているマシンでsshdを動かし、そこに外部からsshできるように
natルータに穴開け設定をして、次にbdpサーバに接続したいと考えている外部のクライアントから、
$ ssh -fNL 1192:127.0.0.1:1192 -p xxxxx hoge@xxx.xxx.xxx.xxx
とかやってトンネルを掘り、この状態でBonDriver_Proxy.so.confのADDRESSを127.0.0.1、PORTを1192にして、
$ ./sample -b ./BonDriver_Proxy.so -s 0 -c 0 -t 15 -o ./test.ts
とやれば繋がるんじゃないでしょうか

561 : ◆SALrG1ld3mTc :2016/03/03(木) 22:33:57.50 ID:YM/9CK66.net
なお、natルータに直接bdpサーバのポートに向けて穴開けしないのは、sshに認証と通信の暗号化を行わせるのが目的です
#そうしておけば万が一にも公衆送信だと言われずに済みますヽ(;´ー`)ノ
あと、sshdではパスワード認証は無効にして、natルータが外部公開するポートも22以外に変えておくのがお勧めですよ

もちろんルータにVPN機能があるのならそれ使うのも良いですね

もっともどうやるにしろ通信量が凄い事になると思うので、NGN網内折り返しだとか以外では、WANからの使用はなるべく
避けた方が良いのではないかと思いますヽ(;´ー`)ノ

562 :名無しさん@編集中:2016/03/04(金) 00:26:31.06 ID:MJxRRJJ5.net
>>561
作者さんですか、使わせてもらってます
>>558 の文章読んだら大事なことが抜けてますね,後出しでごめんなさい

Dockerで動かして nat がーという状況になってます
Dockerのホスト側(他に外から繋ぎたいマシンと同一ネットワーク上にある)は、
仮想ブリッジdocker0を通じてDockerコンテナ(bdp を動かすクライアント)にアクセスできます
ホストには 実ネットワークの192.168.1.x と docker0 の 172.17.0.1 のipが割り当てられます

bdp を動かすコンテナには、 docker0 の 172.17.0.x が割り当てられます
コンテナ側からは eth0 に 172.17.0.x が割り当てられているように見えます
コンテナからホスト外へのアクセスは docker0 を経由した nat になります

Docker にはコンテナのポートをホストのポートにポートフォワードする機能が用意されてまして、
コンテナの特定のポートをホストにフォワードできます

以下の状態で動かしてみました
host側 : 192.168.1.2, 172.17.0.1
bdpコンテナ : 172.17.0.2
hostと同じネットワークにあるクライアント : 192.168.1.3

bdpコンテナのport 1192 を host の 1192 にフォワーディングしてます

dbpコンテンツ側コマンド ./BonDriverProxy 172.17.0.2 1192

クライアント側コマンド ./sample -b ./BonDriverProxy.so (以下略、実際はrecbondで動かしました)
confの ADDRESS は192.168.1.2、 PORT は 1192 です
ホストで直接動かして、クライアントで受信したのは確認してます
あと、nginxとかで本当にフォワードできているのかも確認してます

どのように動かしたか伝わったでしょうか?
ネットワーク素人なので、何言ってんだこいつみたいになってるかも知れません
長文で分かりにくい文章ですいません

dockerで試してもらうと分かりやすいとは思います

563 :名無しさん@編集中:2016/03/04(金) 00:58:14.06 ID:rATR0Kta.net
>>562

横からですが…

# サーバは無制限で待受
/BonDriverProxy 0.0.0.0 1192

# iptablesでクライアントを制限
iptables -N BDP
iptables -A INPUT -p tcp -m tcp --dport 1192 -j BDP
iptables -A BDP -s 192.168.1.0/24 -j ACCEPT
iptables -A BDP -s 172.17.0.0/24 -j ACCEPT
iptables -A BDP -j DROP

こんな感じでどうでしょう?

564 : ◆SALrG1ld3mTc :2016/03/04(金) 08:02:30.51 ID:KfUuLiII.net
>>562
なるほど、dockerでしたか
そう言えばdockerは普通にコンテナ起動したら、コンテナ自身のeth0に割り当てられるアドレスは制御できないんでしたね
そう考えると確かにコンテナ内でbdpサーバを動かす際のアドレス指定は迷ってしまいそうですね…
ただ、コンテナ内で使う場合は変な場所からのアクセスは考えなくても良いと思うので、>>563さんが書いて下さってる様に、
bdpサーバの起動時に0.0.0.0を指定すれば良さそうです

あと、bdplサーバはデバッグビルドしない限りは自分自身でデーモン化してしまうので、
$ docker run -d -p 1192:1192 bdpl /bin/sh -c "/usr/local/bdpl/BonDriverProxy 0.0.0.0 1192;while true;do sleep 1;done"
みたいな感じで起動しないとコンテナが即終了してしまうかもしれませんヽ(;´ー`)ノ

565 :名無しさん@編集中:2016/03/04(金) 13:23:50.16 ID:MJxRRJJ5.net
>>563
>>564
0.0.0.0 で無制限で待受できたの知らなかったです(お恥ずかしい)

>あと、bdplサーバはデバッグビルドしない限りは自分自身でデーモン化してしまうので、
>$ docker run -d -p 1192:1192 bdpl /bin/sh -c "/usr/local/bdpl/BonDriverProxy 0.0.0.0 1192;while true;do sleep 1;done"
みたいな感じで起動しないとコンテナが即終了してしまうかもしれませんヽ(;´ー`)ノ

それは問題ないみたいですね、コンテナ起動時にbdpを起動させてますがコンテナは動いたままです

0.0.0.0 待受で解決できました、
いろいろと教えて頂きありがとうございました

566 :名無しさん@編集中:2016/03/04(金) 13:47:15.39 ID:kuOKz1lo.net
ちょっと上読めば0.0.0.0については書いてあるのに・・・…

567 :名無しさん@編集中:2016/03/07(月) 18:30:21.56 ID:FDfvLRDA.net
ちょっと上なんて読まないしなw

568 :名無しさん@編集中:2016/03/07(月) 20:27:03.48 ID:zfW2NTKW.net
すごい上を読めば解決!

569 :名無しさん@編集中:2016/04/02(土) 08:55:48.44 ID:L0qQWffX.net
BonDriver_Splitter使ってるの忘れて、CSの設定変更ハマった。

570 :名無しさん@編集中:2016/04/16(土) 14:58:14.95 ID:g6ux6f4K.net
止まってるな

571 :名無しさん@編集中:2016/04/16(土) 19:10:38.49 ID:8rO1+82p.net
BonDriverProxy_Linuxの作者様
便利に使わせて頂いてます。ありがとうございます。

ところで要望なのですが、Linuxでの、Windows版Splitterのようなものをご作成いただけませんでしょうか。
現在、Linuxでもコマンド版のSplitterは作成されているのですが、これだと
Linuxマシンにチューナーを積んで、ネットワーク越しに視聴・録画するような用途では
使うことができません。
また、チャンネルやチューナー空間も自由に設定できる方が便利かと思います。

BonDriver_LinuxPT,DVBには同等の機能が盛り込まれているので、
これらを使う場合には問題はありませんが、実はDigibest用のBonDriverを
作成しようと思っておりまして。

ご検討いただけましたら幸いです。

572 :名無しさん@編集中:2016/04/17(日) 12:38:35.73 ID:Qu3iUyuy.net
よくわかんないけどGUI版のTSSplitterなら
wineで完動するよ。

573 :名無しさん@編集中:2016/04/17(日) 14:32:51.86 ID:pE7aYc1r.net
いやそうじゃなくてLAN/WANの通信量を減らしたいから根元でどうにかしてくれって話でしょ
いまの状態じゃBondriverが対応していないとダメだし柔軟性が無いからサーバーあたりに組み込んでくれって事じゃないかな
Bondriver仕様を拡張してクライアント側からどのストリームを抽出するか選択できるようになれば
CSのように1つのチューナーで複数のチャンネルが受信できる場合なら多クライアント側からはそれぞれ別チャンネルを受け取ることが出来る

574 :名無しさん@編集中:2016/04/17(日) 19:20:12.99 ID:U1FXDpvc.net
pid filterか

575 : ◆SALrG1ld3mTc :2016/04/18(月) 07:06:11.00 ID:cCvnzIk1.net
>>571
なるほど、了解です
設定ファイルのフォーマットをちょっと検討する必要がありそうですが、とりあえず考えてみます
少々お待ちください…

576 :569:2016/04/18(月) 19:57:36.32 ID:CiToYPMc.net
>>575
お忙しいところありがとうございます。

Windows版のBonDriverではBS/CSが別のチューナ空間になっていることが多く、またその方が使いやすいと思うのですが、BonDriver_DVB、LinuxPTともにBS/CSが同一空間になっているということも、Splitterがあれば自由に調整できて便利だと思っています。

577 :名無しさん@編集中:2016/04/19(火) 20:09:35.97 ID:D5CdDSkB.net
>>571

Linuxの方に書いたのですが自分は別のアプローチとしてBondriver_Popenを
作ってLinuxでの視聴用途に使っています。とりあえず的なBonDriverですが。

http://hayabusa6.2ch.net/test/read.cgi/linux/1447412254/644

US-3POUT(Digibest)用のrecfsusb2nはBSチャンネルがサービスIDで指定でき
ないので少し面倒ですが設定ファイルを適切に書けば動きます。ひとまず、
手元で視聴に使っているものをコミットしておきました。

自分の持っているものはそうだったというだけですがLinuxだと改造しなくても
動作したのでお手軽です。US-3POUT用recfsusb2nの作者さんに感謝です。

TS SplitterはrecbondでもBonDriver_Popenのどちらでも出来ます。B25は
recfsusb2n、recbondのお好きな方で。

コマンドはシェル経由で実行するので、ffmpegでH264TSに変換するスクリプトを
パイプで挟んでも動いたりします。実用性は?ですけど。

プログラミングに関する特に深い知識はありませんのでおかしなことをやって
いたら教えてもらえるとありがたいです。後、TVTestはほとんど使っていない
のでWindowsをクライアントにしたテストはザル状態です。

US-3POUT用のLinux版BonDriver期待しています。

578 :名無しさん@編集中:2016/04/20(水) 08:32:34.10 ID:Df1PHRVO.net
>>577
向こうのスレも見てPopenも知ってはいたのですが、やはりネイティブが好ましいと思ったので、実はBonDriver_3POUTとしてすでに作ってコミットしてたりします。(recfsusb2nの作者さんに感謝です)

そこで、#DELと#USESERVICEIDを組み込もうと考えたのですが意外に難しいかった次第です。

あと、recfsusb2nもそうなのですが、tsデータの読み込みバッファに対する排他制御が行われていないようで、このあたりを直さないといけないと思ってます。

579 :名無しさん@編集中:2016/04/20(水) 08:45:09.90 ID:Df1PHRVO.net
本当は3POUTのDVBドライバを作れば解決するのですが、その知識はありませんでした…

580 : ◆SALrG1ld3mTc :2016/04/20(水) 19:51:04.74 ID:dTU3HJxB.net
>>576
とりあえず追加しておきました
確認してみてくださいヽ(´ー`)ノ

581 :名無しさん@編集中:2016/04/21(木) 20:38:29.34 ID:3dKz0q4r.net
>>578

おお、素晴らしいです。
さっそくmakeしてみたのですが、-fPIC付けろと言ってきます。
Ubuntu14.04です。

sample -b ./BonDriver_3POUT.so -s 1 -c 0 -t 10 -o bs151.ts

こんな感じで実行してみたのですが残念ながらファイルサイズゼロでした。
ファームウェアを書き換えていないのでダメなのでしょうかね。

582 :名無しさん@編集中:2016/04/22(金) 08:37:39.91 ID:vO59UJ/d.net
>>581
私のは改造済みですがソースの主要部分はrecfsusbからそのまま持ってきているので、本家で改造なしで動くのならこっちも動くはずです。

ただ、1つ心当たりがあるのでテスト版アップします。

あとfPICは必要と思われるとこにはつけてますが、どこにつける必要がアリそうですか?
Makefile修正しようと思うので。

583 :名無しさん@編集中:2016/04/22(金) 08:40:54.56 ID:vO59UJ/d.net
>>581
あとBonDriver_3POUT.so .confは同じフォルダに入れてますよね?

BonDriverProxyをかませてWindowsのTVTestで少なくともチューニングスペースは3つ(地デジ、BS、CS)は見えてるか確認してもらえたらうれしいです。

584 :名無しさん@編集中:2016/04/22(金) 23:50:53.07 ID:Vc59Tb50.net
>>582

/usr/bin/ld: message.o: 再配置 R_X86_64_32 (`.rodata.str1.1' に対する)
は共有オブジェクト作成時には使用できません。-fPIC を付けて再コンパイルしてください。

message.o以外も出るみたいなのでCFLAGSに-fPIC付けてmake流しました。

CFLAGS = -O2 -Wall -fPIC

>あとBonDriver_3POUT.so .confは同じフォルダに入れてますよね?

とりあえずmakeしたディレクトリ内で実行してますので同じフォルダ内にあります。
オープンは出来ている様です。
$ strace -odebug.txt sample -b ./BonDriver_3POUT.so -s 1 -c 0 -t 10 -o bs151.ts
$ grep BonDriver_3POUT.so.conf debug.txt
open("./BonDriver_3POUT.so.conf", O_RDONLY) = 4

>BonDriverProxyをかませてWindowsのTVTestで少なくともチューニングスペースは3つ
>(地デジ、BS、CS)は見えてるか確認してもらえたらうれしいです。

TVTestでマウス右クリック、表示されるメニューからチューニング空間/ドライバ(T)
以下の様な表示で3つ見えていると思います。こういう確認の仕方で良いのでしょうか?

A:すべて
0:地デジ
1:BS
2:CS

後、目につく所としてはrecfsusb2nを実行するとTS encrypt detected!が1回
表示されるのですがBonDriver_3POUTは2回表示されることでしょうか。

585 :名無しさん@編集中:2016/04/23(土) 14:13:57.29 ID:WvKXk50U.net
今気がついたんだけど、BonDriverのバイナリってチャンネルごとに少しずつ違うんだっけ?

BonDriver_PX_Q3PE_S0.dll
BonDriver_PX_Q3PE_S1.dll
BonDriver_PX_Q3PE_S2.dll
BonDriver_PX_Q3PE_S3.dll
BonDriver_PX_Q3PE_T0.dll
BonDriver_PX_Q3PE_T1.dll
BonDriver_PX_Q3PE_T2.dll
BonDriver_PX_Q3PE_T3.dll

って、あるんだけど、それぞれちょっとづつ違うんだけど。

586 :名無しさん@編集中:2016/04/23(土) 14:20:25.93 ID:S8pvETTF.net
全部同じ

587 :名無しさん@編集中:2016/04/23(土) 14:24:13.34 ID:whEYDDXF.net
せやな

588 :名無しさん@編集中:2016/04/23(土) 17:48:29.22 ID:jkoXiCnL.net
>584
報告ありがとうございます。
confは正常に読み込めているようですね。心当たりの部分を変更したのでテストしてみてください。
http://www1.axfc.net/u/3655449

589 :名無しさん@編集中:2016/04/23(土) 21:13:23.43 ID:WvKXk50U.net
>>586
やっぱりそうなの?
なんで違っちゃってるんだろう。
ちなみに日付はすべて2013/06/13なんだけど、時刻が13:47から14:32までバラバラなんだけど。

590 :名無しさん@編集中:2016/04/23(土) 21:21:53.77 ID:whEYDDXF.net
>>589
なぜちがうって、それは中身がそれぞれ違うチューナー開くように書かれているからでしょ
設定別で単にコピーすればいいように書かれているものは同じでいいけどそれは違うってことだよ

591 :名無しさん@編集中:2016/04/24(日) 15:38:25.24 ID:NTutpUfs.net
>>588

動きました。ありがとうございます。

$ sample -b ./BonDriver_3POUT.so -s 1 -c 0 -t 30 -o bs151.ts
$ splitter -i bs151.ts
0: ServiceID = 151 ( 0x97 ) / PID of PMT = 0x0101
1: ServiceID = 152 ( 0x98 ) / PID of PMT = 0x0201
2: ServiceID = 153 ( 0x99 ) / PID of PMT = 0x0203
$ tsselect bs151.ts
pid=0x0000, total= 300, d= 0, e= 0, scrambling=0, offset=106784
...
pid=0x0140, total= 370918, d= 0, e= 0, scrambling=370918, offset=0
...

$ recbond --space 1 --driver /usr/local/lib/BonDriver/BonDriver_3POUT.so 151 10 151.ts

BonDriver_3POUT.soのBS(CS)をrecbondで使うにはチューニングスペース(--space)
指定が必要でチャンネルをサービスID(101とか)で指定するにはBonDriver_3POUT.so.confも
修正する必要がありますね。recbond側のチャンネルとBonDriverのチャンネルの
対応を設定ファイルで指定できるようにしたいと思っていたのですが、すでにfork
したrecbondで修正済みなのですね。さっそく使わせて頂きます。

592 :名無しさん@編集中:2016/04/24(日) 21:11:21.60 ID:Ryn+mPl4.net
>>591
動いたようでなによりです。
まだ他につめているところがあるので、一段落したらgitを更新する予定です。

recbond改、よく見つけましたね。
recbondでは基本的にBxでチャンネル指定をすべきだと思うのですが、chinachuだとBSのチャンネルを指定する際はSIDで指定しないとEPGを正しく処理してくれないので改造しました。

593 :名無しさん@編集中:2016/04/24(日) 21:15:19.71 ID:Ryn+mPl4.net
>>580
ありがとうございます。Linxにチュー ナーを搭載し
LinuxのBonDriver.so -> BonDriver_Splitter.so -> BonDriverProxyEx ->
WindowsのBonDriver_Proxy.dll -> TvTest
の環境でテストさせて頂きました。

Linuxマシンを再起動し、TVTestを最初に起動した際のCreateBonDriverが失敗します。
TVTestで再度BonDriverとチャンネルを指定し直すと、それ以降は正常に映ります。

しかし、BonDriver_Splitter.soをrecbondから直接指定して録画しようとすると
CreateBonDriver error: tdata->pIBon[(nil)] tdata->pIBon2[(nil)]
となってしまいます。

594 :名無しさん@編集中:2016/04/26(火) 20:58:23.95 ID:eOamFKV8.net
>>593
ひとつ情報が抜けてました。チューナ側のドライバは
https://github.com/epgdatacapbon/BonDriver_3POUT
です。
別のチューナーをつないでBonDriver_DVB.soでも試してみます。

595 : ◆SALrG1ld3mTc :2016/04/27(水) 05:19:53.78 ID:Rhipmb4u.net
>>593-594
そのエラーはrecbondが出してるやつですよね?
つまり、BonDriver_SplitterのCreateBonDriverに失敗してると言う事なんでしょう
他に何かエラーは出てないでしょうか?初期化に失敗した場合は基本的にstderrにエラー書くようにしてるのですが…
何も出てない場合は、もしかしたら
ttps://github.com/u-n-k-n-o-w-n/BonDriverProxy_Linux/blob/e85176b29f6c920e739120093c4f3e6d19dffad6/BonDriver_Splitter.cpp#L319-L321
でエラーになってるのかもしれません
でも、soモジュールのパスに「/」が入らないパターンってあるかな…?

ただ、当方の環境ではBonDriver_DVB(PT3)->BonDriver_Splitter->bdplでの確認しかしていないので、何か見落としがあるのかもしれません(;´Д`)

596 :名無しさん@編集中:2016/04/28(木) 05:27:05.83 ID:Ns5T3AyL.net
>>595
仰る通りrecbondのエラーです。他にエラーはありません。
BonDriverExを介してアクセスすると最初は失敗するものの、次は成功するというのが不可解です。
もちろんBonDriver_3POUTの不具合も考えられると思います。

教えて頂いたコード部分を含めて見直します。

597 :594:2016/04/28(木) 23:27:51.23 ID:Ns5T3AyL.net
>>595
大変失礼しました。エラーメッセージを見逃していて、よく見たら単純なSplitter.so.confのミスでした。
チューナー空間を0とするところ、途中1つだけ1にしてたことによるエラーでした。
お手数かけてすみません。

598 : ◆SALrG1ld3mTc :2016/04/30(土) 20:22:41.08 ID:NMwVpnWz.net
>>597
動いたようで良かったですヽ(´ー`)ノ

599 :名無しさん@編集中:2016/05/09(月) 07:49:35.34 ID:yoripq9s.net
arib_std_b25
WOWOWやスター・チャンネルでノンスクランブル放送を跨ぐと後続のスクランブル放送でECMを拾えなくなるのを修正

/* unref_stream()の副作用で次のように成ってしまうのが原因 */
prv->map[ecm_pid].type = PID_MAP_TYPE_UNKNOWN; /*PID_MAP_TYPE_ECM*/

--- a/src/arib_std_b25.c
+++ b/src/arib_std_b25.c
@@ -1578,6 +1578,13 @@ static int proc_pmt(ARIB_STD_B25_PRIVATE

TS_STREAM_ELEM *strm;

+ /* unref old stream entries */
+ while ((strm = get_stream_list_head(&(pgrm->old_strm))) != NULL) {
+ unref_stream(prv, strm->pid);
+ memset(strm, 0, sizeof(TS_STREAM_ELEM));
+ put_stream_list_tail(&(prv->strm_pool), strm);
+ }
+
r = 0;
dec[0] = NULL;
memset(&sect, 0, sizeof(sect));
@@ -1620,14 +1627,6 @@ static int proc_pmt(ARIB_STD_B25_PRIVATE
}
head += length;

-
- /* unref old stream entries */
- while( (strm = get_stream_list_head(&(pgrm->old_strm))) != NULL ){
- unref_stream(prv, strm->pid);
- memset(strm, 0, sizeof(TS_STREAM_ELEM));
- put_stream_list_tail(&(prv->strm_pool), strm);
- }
-
/* save current streams */
memcpy(&(pgrm->old_strm), &(pgrm->streams), sizeof(TS_STREAM_LIST));
memset(&(pgrm->streams), 0, sizeof(TS_STREAM_LIST));

600 :594:2016/05/09(月) 08:31:42.61 ID:nZOWB/uS.net
>>599
ありがとうございます。

601 : ◆SALrG1ld3mTc :2016/05/11(水) 07:09:31.42 ID:tX1ss39h.net
>>599
なるほど、ECMのPIDがXXXの状態から、PMT更新でECMが無くなり(あるいはECMのPIDが他の値に変わり)、更なるPMT更新で
ECMのPIDがXXXに戻る場合、XXXにset_decryptor()したけどまだ参照カウントを増やす前のタイミングで、前々回のPMTの
PIDリストからXXXをunref_stream()してしまっているせいで、XXXがECMだとみなされなくなってしまうわけですね
これは再現条件の特定大変だったんじゃないでしょうか…ご苦労様です

個人的な好みで言えば、前々回のPMTのPIDリストをunref_stream()するコードブロックを逆にadd_ecm_stream()の
後に持って行くか、あるいはprv->map[ecm_pid].refの増加をadd_ecm_stream()の中からset_decryptor()の戻り値が
NULLで無かったと判定できたタイミングに移動するかの方が好きですヽ(;´ー`)ノ

602 :名無しさん@編集中:2016/05/11(水) 09:39:07.55 ID:nvP85pXZ.net
>>601
詳細な解説いたみいります。

すこし気になったのですが、
>前々回のPMTのPIDリストをunref_stream()するコードブロックを逆にadd_ecm_stream()の
>後に持って行く
この方法ですと、ver. 0.1.5で入った修正が無効化されそうですがいかがでしょうか?
http://www.marumo.ne.jp/db2008_2.htm#12

603 : ◆SALrG1ld3mTc :2016/05/11(水) 19:17:30.07 ID:tX1ss39h.net
>>602
もちろんunref_stream()するのは前のPMTのPIDリストではなく2つ前のPMTのPIDリストである必要があるので、
単純にコードの順番を入れ替えるだけではなく、pgrm->old_strmは一旦保存する形になりますね
具体的には、
---
TS_STREAM_LIST tmp_old_strm;
...
head += len;

/* save old streams */
memcpy(&tmp_old_strm, &(pgrm->old_strm), sizeof(TS_STREAM_LIST));

/* save current streams */
memcpy(&(pgrm->old_strm), &(pgrm->streams), sizeof(TS_STREAM_LIST));
memset(&(pgrm->streams), 0, sizeof(TS_STREAM_LIST));

/* add current stream entries */
if( (ecm_pid != 0) && (ecm_pid != 0x1fff) ){
if(!add_ecm_stream(prv, &(pgrm->streams), ecm_pid)){
r = ARIB_STD_B25_ERROR_NO_ENOUGH_MEMORY;
goto LAST;
}
}

/* unref old stream entries */
while( (strm = get_stream_list_head(&tmp_old_strm)) != NULL ){
unref_stream(prv, strm->pid);
memset(strm, 0, sizeof(TS_STREAM_ELEM));
put_stream_list_tail(&(prv->strm_pool), strm);
}
---
みたいな感じです
proc_pmt()がエラーなく終わった後の状態は、>>599さんのパッチを当てた状態と大体同じで、
違いは問題のパターンのPMT更新があっても、新しいdecryptorを作成して各PIDから参照されてる
旧decryptorと入れ替えると言う処理が発生しなくなる事くらいかなーと思ってます
当方が変な勘違いをしていなければですがヽ(;´ー`)ノ

604 :名無しさん@編集中:2016/05/11(水) 19:57:15.09 ID:nvP85pXZ.net
>>603
なるほど、old_strmは一旦保存すれば問題無いですね。納得しました。
ありがとうございます。


あと釈迦に説法&重箱の隅ですが…

/* save old streams */
tmp_old_strm = pgrm->old_strm; /* memcpy(&tmp_old_strm, &(pgrm->old_strm), sizeof(TS_STREAM_LIST)); */

/* save current streams */
pgrm->old_strm = pgrm->streams; /* memcpy(&(pgrm->old_strm), &(pgrm->streams), sizeof(TS_STREAM_LIST)); */
memset(&(pgrm->streams), 0, sizeof(TS_STREAM_LIST));

605 : ◆SALrG1ld3mTc :2016/05/12(木) 07:40:43.49 ID:jM0CbusM.net
>>604
> tmp_old_strm = pgrm->old_strm; /* memcpy(&tmp_old_strm, &(pgrm->old_strm), sizeof(TS_STREAM_LIST)); */
> pgrm->old_strm = pgrm->streams; /* memcpy(&(pgrm->old_strm), &(pgrm->streams), sizeof(TS_STREAM_LIST)); */

あ、確かに普通の代入で問題無いですねヽ(;´ー`)ノ
まるもさんの元ソースがmemcpy()使ってたので、追加部分でも特に何も考えずにmemcpy()使いましたが…

しかしまあこの辺は、今時のコンパイラで最適化かけたら結局同じバイナリになる可能性も高いと思うので、
自分のやってる事がわかっている限りは、プログラマの好みで良いと思ってますw

606 :名無しさん@編集中:2016/05/12(木) 13:22:06.17 ID:lHh3x1oS.net
こちらで大丈夫でしょうか。
Windows
https://github.com/epgdatacapbon/libaribb25/commit/a0bb16af95ea26b140a64d4408002c667084db66
Linux
https://github.com/epgdatacapbon/libaribb25_Linux/commit/294af6774bf21292a11b41ca705ab51b7f25ed08

607 :名無しさん@編集中:2016/05/12(木) 14:39:54.03 ID:dP82cHm1.net
こちらにも適用しておきました。
https://github.com/stz2012/libarib25/commit/09770e334837f6c67268c41c1c15784373d35e5b

608 : ◆SALrG1ld3mTc :2016/05/12(木) 21:09:39.86 ID:jM0CbusM.net
>>606
大丈夫だと思います

なお、問題が起きるのはスクランブル番組の間にノンスクランブル番組が1番組だけ挟まった場合のみだと思うので、
ちゃんと直ってるかテストする時はそのような番組配置の時間帯を探してスクランブル解除せずに生TSを保存し、
そのTSを修正前後のb25に通してみれば確認できると思いますよー

609 :604:2016/05/12(木) 21:15:28.87 ID:1LlVhf6U.net
>>608
了解です。
確認ありがとうございました。

610 :名無しさん@編集中:2016/05/12(木) 21:30:54.95 ID:XEXWdBC4.net
WOWOW、★の番組宣伝中はノンスクランブルだから、それを跨ぐように生TS保存すればおっけー

611 :名無しさん@編集中:2016/05/15(日) 05:43:43.47 ID:1t8Ywxaf.net
>588
Linux用のUS-3POUTのBonDriverを更新しようと思うので、
改造していないUS-3POUTで動作検証をお願いできますでしょうか。

http://www1.axfc.net/u/3665043

排他制御(atomicアクセス)を組み込みました。

612 :名無しさん@編集中:2016/05/15(日) 20:07:50.91 ID:jlleoRl/.net
>>611

$ make
gcc -Wall -O2 -fPIC -DLINUX -DNDEBUG -c -o tsthread.o tsthread.c
tsthread.c:14:23: fatal error: stdatomic.h: そのようなファイルやディレクトリはありません
#include <stdatomic.h>

$ gcc --version
gcc (Ubuntu 4.8.4-2ubuntu1~14.04.1) 4.8.4

stdatomic.hがgcc-4.8だと存在しない様なのでgcc-4.9を追加します。
http://stackoverflow.com/questions/20326604/stdatomic-h-in-gcc-4-8
Ubuntu14.04だとgcc-4.9は標準のパッケージにはないみたいなので。
http://qiita.com/aKenjiKato/items/e9011e02feb131c4526e
$ sudo add-apt-repository ppa:ubuntu-toolchain-r/test
$ sudo apt-get update
$ sudo apt-get install g++-4.9

再度makeして簡単なテストを実行。地上波も同様に。
$ make clean
$ make CC=gcc-4.9 CXX=g++-4.9
$ sample -b ./BonDriver_3POUT.so -s 1 -c 0 -t 30 -o 151.ts
$ tsselect 151.ts
$ b25 151.ts 151a.ts
$ vlc 151a.ts

特に問題ないですね。

613 :名無しさん@編集中:2016/05/25(水) 01:12:56.03 ID:/wMhxbnR.net
PT3などが刺さっているパソコン以外でTVを見たいです。
すべてWindowsという前提で。

PT3等→(対応する)BonDriver→BonDriver_Splitter→BonDriverProxy(Ex).exe |ネットワークの壁| BonDriver_Proxy.dll→TvTest.exe

であってますか?

デコードは、カードリーダーがサーバ側にしかないので、そちらで
やりたいわけですが、BonDriverProxy.exeをどうにかする、
という認識で合っていますか?

614 :名無しさん@編集中:2016/05/25(水) 08:07:24.55 ID:Ony1YI5X.net
>>613
俺はこれ使ってる
http://aviutl.info/spinel/

615 :名無しさん@編集中:2016/05/25(水) 11:13:23.84 ID:oe3g+AOA.net
>>613
あってるよ(BonDriver_Splitterは別に必須じゃないけど)
BonDriverProxy(Ex)でのスクランブル解除についてはb25パッチと言われてるものを当ててビルドすればいいだけ
例えばBonDriverProxyExの1.1.6.5なら、ちゃんとしたpatchコマンド使えば
http://pastebin.com/3cXNSV4V
がそのまま適用できるはず
パッチ適用後に追加で必要になるソースは、
https://github.com/epgdatacapbon/libaribb25
から持ってくるのが簡単

616 :名無しさん@編集中:2016/05/25(水) 22:45:22.49 ID:/wMhxbnR.net
>>614-615
ありがとうございます。

spinelもちょっと考えたのですがBonDriver_Splitterの不要部分を削る機能が
良さそうなので、そちらをベースで考えてます。難しくて手に負えないかも
しれませんがw

617 :名無しさん@編集中:2016/05/26(木) 04:05:17.26 ID:4/8BUOgI.net
patchコマンドの使い方がよく分からなかったので手パッチで対応したけど
TvTestの S の数値がどんどん増えるだけorz

パッチを当て直してみたりビルドし直してみたり無駄なあがきをした結果、
リモートデスクトップを使ってサーバ側の設定をしていたというオチでした。
こんなくだらない罠にはまってしまうとはorz

Splitterは明日にしよう...

618 :名無しさん@編集中:2016/05/26(木) 12:33:03.35 ID:4/8BUOgI.net
皆様ご想像の通り、寝坊したので、会社をサボりました。
BonDriver_Splitter_Sample.iniの中身そのままで行こうとすると
地上波は映りますが衛星放送はBS朝日とBS-TBSしか映りません。

よく見たらスペース定義が実態と合ってないような感じがしたので
次のように変更したら映りました(無料放送だけ。CSも不明)。

<変更前>
000=NHK-BS1 0 0 17 101
001=NHK-BSプ 0 0 18 103
002=BS日テレ 0 0 15 141
003=BS朝日 0 0 0 151
004=BS-TBS 0 0 1 161
005=BSジャパン 0 0 3 171
006=BSフジ 0 0 16 181
013=BS11 0 0 9 211
014=TwellV 0 0 11 222
015=放送大学BS1 0 0 14 231
016=放送大学BS2 0 0 14 232
017=放送大学BS3 0 0 14 233
030=D-Life 0 0 27 258

<変更後>
000=NHK-BS1 0 0 9 101
001=NHK-BSプ 0 0 10 103
002=BS日テレ 0 0 7 141
003=BS朝日 0 0 0 151
004=BS-TBS 0 0 1 161
005=BSジャパン 0 0 3 171
006=BSフジ 0 0 8 181
007=BS11 0 0 4 211
008=TwellV 0 0 6 222
009=放送大学BS1 0 0 19 231
010=放送大学BS2 0 0 19 232
011=放送大学BS3 0 0 19 233
012=D-Life 0 0 29 258

どなたかの役に立てば、サボった甲斐があるというものですw

619 :名無しさん@編集中:2016/05/26(木) 22:27:59.49 ID:8TE58BKT.net
4時まで起きてちゃあかんですわ

620 :名無しさん@編集中:2016/05/27(金) 00:52:06.15 ID:B6sKiW8i.net
>>618
BonDriver_Splitter_Sample.iniの内容は
http://echo.2ch.net/test/read.cgi/avi/1460535887/5
のBonDriver_PT-S.ChSet.txtとBonDriver_PT-T.ChSet.txtをそのまま使ってる場合の設定になってる
PT以外のチューナーを使ってる場合はもちろん、PTを使ってる場合でも、これらのファイルを自分で編集してたり、
適当なサイトから設定をコピペして使ってたりすると、それに合わせて設定し直す必要が出てくるよ

621 :名無しさん@編集中:2016/06/07(火) 12:16:37.52 ID:lP7TbbGD.net
BondriverProxyがいま流行りの
「このファイルはウィルスに感染しています
感染したファイルをダウンロードできるのはオーナーだけです。」
チェッカーにかかって落とせなくなってますな
ぐーぐるさんころころ変わるので数日ででなくなるかもだけど

総レス数 837
356 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
read.cgi ver.24052200