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/

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がいま流行りの
「このファイルはウィルスに感染しています
感染したファイルをダウンロードできるのはオーナーだけです。」
チェッカーにかかって落とせなくなってますな
ぐーぐるさんころころ変わるので数日ででなくなるかもだけど

622 : ◆SALrG1ld3mTc :2016/06/09(木) 07:11:21.05 ID:vt97DTqc.net
>>621
ありゃ、ほんとだ(;´Д`)
x86版のバイナリだけが一部アンチウイルスソフトに誤検知されてるみたいですね
うーん、どうしたものか…

しかしやってる事はfor-ptTimerの方がはるかにうさんくさいのにそっちはスルーで、
ごく普通のアプリの方を誤検知ですか…

623 :名無しさん@編集中:2016/06/09(木) 08:52:45.60 ID:4KH56MOp.net
>>622
日本の深淵に触れたんじゃないの
怖いなぁ

624 :名無しさん@編集中:2016/06/09(木) 09:00:12.71 ID:qrBUAnIz.net
Googleの考え一つに左右される世の中こわい

625 :名無しさん@編集中:2016/06/09(木) 11:23:05.19 ID:kearvWAM.net
Googleの中の人の意思というわけでも、
Googleの中の人達の総意というわけでもなく、
単なるアルゴリズムの間違いだろうというあたり、
余計怖い気がするね。
社長がAIになると、こんな感じなのだろうか。

626 :名無しさん@編集中:2016/06/09(木) 12:43:20.46 ID:m3F/8MXt.net
>>622
作者も気づかない内に汚染されるとは(違

627 : ◆SALrG1ld3mTc :2016/06/17(金) 06:10:30.23 ID:sFrHPMZh.net
>>622の件、ほっといても戻らなさそうなのでzipにパスワードを付けました(;´Д`)a
#中身は全く同じです

628 :名無しさん@編集中:2016/06/18(土) 08:59:31.34 ID:0Y93htfp.net
>>627
ごくろうさまです

629 :名無しさん@編集中:2016/06/30(木) 15:45:38.66 ID:9NbsP7HV.net
当方Splitter経由でBonDriverProxyExを使用しているのですが、地デジのみ受信できません。
BS、地デジ両者ともにTVTestのch2ファイルを元にチャンネル設定をしています。
iniの文字コードもUTF8で保存されており、完全にお手上げです。
ヒントになるか分かりませんが、BDPEXの情報表示に
space[2147483647]
ch[2147483647]
と、int型の最大値が表示されています。

630 : ◆SALrG1ld3mTc :2016/07/02(土) 06:37:43.25 ID:euiKDD5r.net
>>629
えーと、BonDriver_Splitterをクライアント側で使用している場合の話と言う事で良いでしょうか?

bdpexの方でスペース/チャンネル番号が0x7fffffffのままになると言う事は、接続はされてるけど
チャンネル変更の指示が送られてきていないとか、bdpex側で読み込んだBonDriverに対して
チャンネル変更が失敗したとかの状態だと考えられますが、みえないのは地デジのみと言う事からも、
恐らくBonDriver_Splitterの設定にどこかミスがある可能性が高いのではないかなと…

ひとまずBonDriver_Splitterを使う側のマシンで、DebugView↓
ttps://technet.microsoft.com/ja-jp/sysinternals/debugview.aspx
とかを動かしながらみえないチャンネルへのチャンネル変更操作を行ってみると、何かヒントが
見つかるかもしれませんヽ(;´ー`)ノ

631 :名無しさん@編集中:2016/07/02(土) 15:20:57.73 ID:KScAzrbQ.net
>>630
>>629です
ご指示の通りDebugViewを動かしつつEDCBでチャンネルスキャンしてみたのですが、地デジではデバッグが全く流れてきませんでした。
64bit版の各種ソフトを使用してもダメ。
原因が全く分からないので環境だけ残しておこうと思います...

CPU:Core i3 540
M/B:Valuestar 150/BSのもの
メモリ:4GB
チューナー:PT2
ビルド環境:VS2015
BonDriver:GitHubのものをビルド
OS:Windows10 64bit

以下Splitterのini内容
オプションはDEL含め全てオフ
BonDriverはフルパス指定
チャンネル設定
[SPACE02]
NAME=UHF
USESERVICEID=1
以下TVTestのch2ファイルを元に調整

632 :名無しさん@編集中:2016/07/02(土) 16:51:47.68 ID:nXQR3ffSx
連投すみません。
先ほどもう一度Debug走らせてみたところ、
[3304] shell\lib\bindctx.cpp(1144)\explorerframe.dll!00007FFDA287186D: (caller: 00007FFDA288DFC2) ReturnHr[PreRelease](82) tid(3c4) 80070057 パラメーターが間違っています。
のようなエラーが出ました。
私では解決できそうにないので諦めます...

633 :名無しさん@編集中:2016/07/02(土) 19:02:07.80 ID:KScAzrbQ.net
連投すみません。
先ほどもう一度Debug走らせてみたところ、
[3304] shell\lib\bindctx.cpp(1144)\explorerframe.dll!00007FFDA287186D: (caller: 00007FFDA288DFC2) ReturnHr[PreRelease](82) tid(3c4) 80070057 パラメーターが間違っています。
のようなエラーが出ました。
私では解決できそうにないので諦めます...

634 : ◆SALrG1ld3mTc :2016/07/02(土) 22:47:34.50 ID:euiKDD5r.net
>>631
BonDriver_Splitterを通さずに直接(BonDriver_Proxyのみで)bdpexに繋いだ場合は地デジも受信できるのでしょうか?
またそれが可能である場合、差支えなければTVTestのch2ファイルとSplitterのiniファイルをどこかにアップして
もらえれば、何かアドバイスできるかもしれませんヽ(;´ー`)ノ

635 :名無しさん@編集中:2016/07/03(日) 00:09:53.76 ID:rOn8NV/s.net
>>634
わざわざお付き合いいただき本当にありがとうございます...
Splitterを通さない場合は地デジも問題なく視聴できます。

https://drive.google.com/folderview?id=0BxM2ghExhaEEcXdacjMwTjF5cXc&usp=sharing
上記リンクに
ch2ファイル
地デジ用splitterのiniとdllファイル
BS用のiniファイル
をうpしておきました。
ご参考になれば幸いです。

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

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