【視聴・録画】Linuxでテレビ総合9【デジタル/アナログ】at LINUX
【視聴・録画】Linuxでテレビ総合9【デジタル/アナログ】 - 暇つぶし2ch554:login:Penguin
14/08/20 12:31:40.91 EMVxX4TT
>>553
ディストリをdebianにして、b25オプション外したら治った。
別原因で止まったりしたが、recpt1直接打ちはうまくいくようになった。

555:login:Penguin
14/08/20 20:27:01.17 g5L5m6zD
>>554
よく覚えていなけど、以前 ubuntu でも pcscd のとあるバージョンで不具合なかった?
それでパッケージのバージョンを古いのに固定していた時期があったと思うけど。それの可能性は?

556:login:Penguin
14/08/20 21:30:01.69 +tWqmdAb
うちは14.04でも固定してるよ。
不定期のタイミングでカードリーダを見失ってb25のデコードができなくなるから。

557:login:Penguin
14/08/20 21:55:37.22 g5L5m6zD
>>556
あれはデコードできなくなるだけなの?
だったら違うか

558:login:Penguin
14/08/22 03:16:22.15 ivHfULC0
BonDriverProxy_Linuxの作者さん、
リポジトリにあるメールアドレスはダミーですか?
libarib25関連のパッチを送ろうかなと思っているのですが。

559:login:Penguin
14/08/22 09:01:55.71 KFky9orq
プルリクすりゃええじゃん。(´・ω・`)

560:login:Penguin
14/08/22 19:32:41.76 MKqaNber
>>558
元々全然使ってないメールアドレスだったので存在すら忘れかけてました
さっき確認してみたら1か月以上放置してしまったメールとかが…(;´Д`)誠に申し訳ありません

パッチに関してはとても嬉しいのですが、実はデスクランブル機能関連は意図的に避けている部分なんです
特にサーバ部分に組み込んだら、理屈的にはデスクランブル済みのを公衆送信できるシステム扱いできてしまいますので…
こんなニッチなツールの事なんざ権利者さんも気にしねーよ、てのは全くその通りだとは思うのですが、
当方破城槌で石橋叩き、壊れちゃったらやっぱり危なかった渡らずに済んで良かった、と言う感じの
ポリアンナ的メンタルの人間です(;´Д`)

>>550
この間、サーバじゃなくてドライバに1サービス1チャンネル扱いする機能を追加してみたんですが、もしかして
これで用が足りたりしませんか?
#CAT(とEMM)まで削ったのはちとやり過ぎだったかなと思ってるので、それは残す方向に戻すべきかと思案中ですが

561:login:Penguin
14/08/22 19:51:30.29 ivHfULC0
>>560
同じ理由でプルリクエストではなくてメールにしようと考えてました(当方もチキンです)。
もう少し関連事項(ライブラリの使用だけでもアウトなのか等)を調べてからメールしようと思います。
一応パッチはrecpt1みたいな感じ(ユーザがライブラリをリンクしないと使えない)にしてあるのだけども。

562:login:Penguin
14/08/23 11:47:12.22 +GPqjlNx
>>560
util/testのチャンネル列挙ができないけどどこ見たらいい?
なんかch1から列挙しようとしてるみたいだけど、
これ地上波なのかBSなのかわからんのじゃないのかという気がする。
なんかまた俺が勘違いしているのか・・・・

563:login:Penguin
14/08/23 15:38:33.25 +GPqjlNx
>>562
conf間違ってた。気づかなかったわw

564:login:Penguin
14/08/24 13:12:03.09 pstTkKz2
たまにsyslogに PT3 invalid sync data って録画中に出まくって、その後録画止まるんだが、
これって単なるドロップ?
ドロップもして、止まるのはなんとならんか。。。

565:login:Penguin
14/08/24 23:03:33.33 VdOCmrwl
>>564
chardev版PT3ドライバでの話だと思いますが、PT3から取得したTSデータがおかしいとそうなります
そうなった場合、録画を止めるかどうかは録画アプリ次第ですが、仮に止めなくてもそれが発生してる間は
まともなデータは期待できないでしょう
ソフトではなくハード(PT3やメモリだけでなく、アンテナ、ケーブル、分波器等も含んだ何か)の問題ですね

たまになるだけって事なら、普段からアンテナレベルがギリギリとかなんじゃないでしょうか
とりあえずCN比確認してみるのが良いかと

566:login:Penguin
14/08/24 23:37:23.90 BqLcLvkb
アンテナレベルギリギリだとデータがおかしくなることがあるというのであれば、
それ込みで電波の仕様だよ。不正なデータは発生しうるという仕様。

だからこの場合は、できる限りドライバ内でフォールバックするようにしないと。

テレビがアンテナギリギリでシステムが停止する?
映像は映らなくてもシステム自体は停止しないでしょ?

567:login:Penguin
14/08/25 01:11:16.65 VF+oB84Q
>>566
いやだから、そうなってもドライバは単にアプリからのread()に0を返すようになるだけですよ
まさにフォールバックですね

録画が止まるならそれはread()が0を返したのを受けてアプリが終了してるだけでしょう
録画を止めるかどうかは録画アプリ次第と言うのはそう言う意味です
あるいは、録画終了時刻まで復帰しなかったら、ファイルだけ後から見れば途中で終了してるように見えるでしょうね

いずれにせよ、少なくともドライバには非は無いと思いますよ

568:login:Penguin
14/08/25 20:37:24.54 PCu13YIt
やっとchinachu & BonDriverProxy & TVTestでリアルタイム視聴&録画が出来るようになった
作るにあたってこの構成取ってるまとめサイトが無かったんで、まとめたら需要ってありますか?

569:login:Penguin
14/08/25 20:48:40.75 Zge50iv1
ありまーす

570:login:Penguin
14/08/25 20:55:04.22 MXNU2n50
>>568
是非お願いします!
いやマジで!!

571:login:Penguin
14/08/25 21:01:33.50 PCu13YIt
ではちょっと構成と画像、設定まとめます
色々無理くりやってるので、欠点もありますが...今運用している範疇で作ってきます

572:login:Penguin
14/08/25 21:52:06.88 MXNU2n50
ありがとうございます!
本当にありがとうございます!!

573:login:Penguin
14/08/26 11:04:05.20 PAMz3I9n
>>568
需要ないですよ

574:login:Penguin
14/08/26 21:36:19.94 BpOkUOJ2
>>568
是非お願いします!

575:login:Penguin
14/08/26 21:51:25.09 SH+I10L8
>>573
ちょっおまっっ
ちゃんと需要あるから全然あるから

576:login:Penguin
14/08/27 00:59:28.56 1MChGv8J
epgrecに対してのメリット デメリットや乗り換え指南とか有ると嬉しいけど
両方使い込んでないと難しいか

577:login:Penguin
14/08/28 00:34:23.36 u3Vrdj9d
かきこみ食い!

578:login:Penguin
14/08/28 00:36:33.79 u3Vrdj9d
誤爆したああ

579:login:Penguin
14/08/28 12:27:15.42 0cTXkwdI
安定して動いてるとなかなか新しいのに手出せないよね(´・ω・`)

580:login:Penguin
14/08/28 12:38:52.91 jFp4EclH
PT2の2枚差しでまだまだ行けます

581:login:Penguin
14/08/29 04:06:51.23 v3ONMbB+
URLリンク(www.dcc-jpl.com)
URLリンク(foltia.com)

なるほどなぁ~

582:login:Penguin
14/08/31 09:19:00.43 VMP6HcFa
>>565
なるほど・・・
その後、手動でrecpt1すると何事もなく無事なんだが・・・
たまたまなんだろうか。
BSで13.5dBぐらいは低いか?!

583:login:Penguin
14/08/31 11:45:26.47 xX+VaeoE
>>582
低いんじゃないかな
うちはBS/CSは16-18dBくらい

584:login:Penguin
14/08/31 11:52:49.66 VMP6HcFa
>>583
まじか・・・ さてどうしたものか。。。
分配しているテレビの方はSHARP表示で90/100とかあるんだけどな・・・・
分配の先が悪いのか。

585:login:Penguin
14/08/31 11:54:35.77 VMP6HcFa
Win版のPT3は、DMA転送の時に、CPU-DMAとかの同期APIがはいったけど、
もしかして、Linux版も同じようなことしないといけないのか・・・
わからんなぁ。

586:568
14/08/31 18:14:36.39 EugbJio5
遅くなりましたが、とりあえず個人メモを公開
かなり端折ってますので、わからなかったらスミマセン
URLリンク(blog.kickitout.net)

注意事項にも書いてありますが、B25復号ができないです
運用してみるとCASの都合からPCで復号したほうが良いので方法見つかるまでこのままです

あとはTVTest視聴中にChinachuのEPGスキャンが走ると
チャンネル変更されるのが面倒くさいくらいですが、録画優先のためこれは仕方がないかと

587:568
14/08/31 18:21:57.37 EugbJio5
>>576
epgrecは使ったことないですね

Chinachuを選んだ理由はルールによる自動録画とストリーミング再生でした
番組表についてはスクロールでしか画面遷移できないので、ここはepgrecが良いと思います

588:login:Penguin
14/08/31 19:17:14.51 vUw0Vf62
>>586
b25はパイプじゃダメなん?
/usr/local/BDPL/sample ~(略)~ | b25 /dev/stdin /dev/stdout 2> /dev/null

589:568
14/08/31 19:36:32.34 EugbJio5
>>588
試したんですが、駄目でした
まずchinachuにパイプ付きで実行させるとエラーとなり、
shellスクリプトで実行させても/dev/stdinが開けなくてNGです
(エラー内容は忘れました)

590:568
14/08/31 21:07:03.48 Tov9UBtf
あとはChinachuのrecordedCommandで録画後にB25復号させる方法もあります
もちろん録画後に行うので時間はかかりますが...
これ応用すると>>581の自動CMカットも行けそうですね

----------------------------
#!/bin/bash
B25=/usr/local/bin/b25

if [ $# -lt 1 ]; then
echo "$0 {recPath} {jsonProgram}" 1>&2
exit 1;
fi

# B25 decode
${B25} -p 0 -v 0 "$1" "$1.tmp"

if [ -e "$1.tmp" ]; then
if [ $? -eq 0 ]; then
rm -f "$1"
mv "$1.tmp" "$1"
else
rm -f "$1.tmp"
fi
fi

exit
----------------------------

591:login:Penguin
14/08/31 22:42:25.46 pPCOz4VV
BonDriverProxy_Linuxnのsample.cppにb25デコード追加パッチ
URLリンク(www1.axfc.net)

592:568
14/08/31 22:48:55.26 Tov9UBtf
>>591
早い C++学習してなくて諦めてました

593:591
14/08/31 23:57:03.92 pPCOz4VV
>>591 はb25デコード強制でちょっと良くないねってことで、
recpt1準拠のオプションに対応してみました。

usage: ./sample [--b25 [--round N] [--strip] [--EMM]] [-b bondriver] [-s space_no] [-c channel_no] ( [-t sec] [-o filename] )
--b25: Decrypt using BCAS card
--round N: Specify round number
--strip: Strip null stream
--EMM: Instruct EMM operation

URLリンク(www1.axfc.net)

594:568
14/09/01 00:16:30.09 PCe7o4Q1
有難うございます
既に今日だけで2つも課題(注意事項)が解決しました
BSだけは不明なため、申し訳ないですが各自でお試しください

595:591
14/09/01 00:47:49.14 a7hMx0Xw
>>593にミスがありました!
パッチ後の77行目、write を ::write に書き換えてください。(*ノェノ)

if (dbuf.size > 0) return write(fd, dbuf.data, dbuf.size);


if (dbuf.size > 0) return ::write(fd, dbuf.data, dbuf.size);

596:login:Penguin
14/09/01 01:01:21.97 BNTqI31W
元々のpatchの76行目を修正…でいいんですよね?

597:login:Penguin
14/09/01 03:26:06.65 O9repODI
何が入っているかわからんから
コードを理解してからやること。

598:591
14/09/01 10:38:32.04 a7hMx0Xw
>>596
はい。

すみません。
patchの56行目も同様のミスありました。
if (!valid) return write(fd, buf, count);


if (!valid) return ::write(fd, buf, count);


鬱だ氏のう(´A`)

599:login:Penguin
14/09/01 13:44:04.90 dFvWFsJ3
こういうのはpastebinでやろうや

URLリンク(pastebin.com)
スレ内で出てたパッチの修正済み

600:591
14/09/01 17:42:50.72 a7hMx0Xw
writeで書き込まれるバイト数が指定バイト未満になる場合が考慮されていなかった不具合を修正しました。
度々申し訳ないです。m(__)m
URLリンク(pastebin.com)

601:login:Penguin
14/09/01 17:59:55.44 a7hMx0Xw
毎度(ry
URLリンク(pastebin.com)

602:login:Penguin
14/09/01 19:22:22.10 RUZKEFrJ
>>601
これをBonDriverProxyに組み込んだら、
鯖のBCASだけで行けるのかな。
録画鯖にBCASつけてる人はクライアントはどうしてるんだろ。共有してんのかな。

603:login:Penguin
14/09/02 14:47:23.78 XL1oxIjN
>>601
@@ -75,7 +75,7 @@
ssize_t write(int fd, void *buf, size_t count)
{
if (!valid)
- return ::write(fd, buf, count);
+ return write_full(fd, buf, count);

sbuf.data = static_cast<uint8_t*>(buf);
sbuf.size = count;

604:login:Penguin
14/09/02 17:33:14.10 XL1oxIjN
ここまでのsample.cppへのパッチ + BonDriverProxy.cppへのパッチ
URLリンク(pastebin.com)

usage: ./BonDriverProxy [--b25 [--round N] [--strip] [--EMM]] address port (packet_fifo_size tspacket_bufsize)
e.g. $ ./BonDriverProxy 192.168.0.100 1192

--b25を有効にするときは、
デコード済みのストリームが外部ネットに漏れないよう十分配慮してください。

605:login:Penguin
14/09/02 23:39:48.14 XL1oxIjN
URLリンク(pastebin.com)
・ b25::set_b_cas_cardでエラーになる対策
・ b25::putが失敗した後ハマる対策
>>604のパッチを適用後にパッチしてください。

視聴中にチャンネル切換すると稀にストリームが滞る事があるようです。
#b25->putがARIB_STD_B25_ERROR_NO_PMT_IN_HEAD_32Mを返してる。
放っておけばそのうち流れだすので、とりあえず放置(;´∀`)

606:login:Penguin
14/09/02 23:59:03.15 XL1oxIjN
すみません。こっちで URLリンク(pastebin.com)

607:login:Penguin
14/09/03 06:35:33.40 ZY4L+Z2d
> -#define FILE_OFFSET_BITS 64
> +#define _FILE_OFFSET_BITS 64

…(;´Д`)
失礼しました
sample.cppの方も直しておきますね
と言うか、sampleがちゃんとサンプルとして機能してるみたいで良い感じですね
細かい事言えばpIBon->CloseTuner()後でも、pIBon->GetTsStream()でdwRemain(アプリによる読み出し待ちバッファ数)が
1以下である保証は無いです
#元のsample.cppがdwRemainが0になるまでループさせてるのはそれが理由です

608:login:Penguin
14/09/03 06:52:51.56 ZY4L+Z2d
>>604-606
サーバでのスクランブル解除はカードの処理能力がボトルネックになる場合があるから注意…
と思ってたんですが、今libarib25をナナメ読みした限りでは、あるサービスに対して最初のECMで購入済みか
チェックして、未購入だった場合は以降のECMはカードに投げない様にしてくれてるみたいですね
#win環境で一般的に使われてるB25Decoder.dllではやってなかったと思います
これならあんまり心配する必要は無さそう
#20チューナー同時稼働とかでない限り

ただその辺りも含めて、libarib25は内部的に色々と現在のTSストリームの状態を保持しているので、
チャンネル変更の際にはそれらの情報の破棄が必要でしょう

> 視聴中にチャンネル切換すると稀にストリームが滞る事があるようです。

の現象も、その内部情報破棄を行っていない事が原因だと推測します
対応としては、チャンネル変更のタイミングでb25->reset()を呼べば良いと思います
そうすればb25->put()やb25->get()でコケる事も無くなるかと

実装的には、b25を配信スレッドのローカル変数からcProxyServerのメンバ変数にして、m_pposなどと
同じ様な形で持つのが良いんじゃないでしょうか
b25の取得、release()及びreset()も、m_pposの場所に準じる感じで
#そこでなら排他ロックも掛かってるので

609:login:Penguin
14/09/03 07:04:53.15 ZY4L+Z2d
そう言えばこう言う話もある様ですが、
URLリンク(twitter.com)
これが普通に取り込まれて利用可能になったとしたら一つの目安となりますね
#本来的には、そんな事考えないで良いように法律の方でハッキリと線引きしておいて欲しいものですが…

610:login:Penguin
14/09/03 09:03:42.03 sZbKOuDA
ぐっとB25関係が進展したみたいですね。

Windows の BonDriver_HDP2とかはB25デコード後のTSが直接出てきた様な
記憶があるので、BonDriver側(BonDriver_LinuxPT.cpp)でデコード済みのを
返すというのは筋が悪いのですかね?

そうできたら、それより上にあるBonDriverProxy、sampleも特に変更しないで
良さそうな気がしてるのですが。

611:login:Penguin
14/09/03 10:43:10.73 vjzT1Nr4
>>609
その人は日本人ではないし、バイナリの配布も日本のサーバーを使わないと思うのだが。

612:login:Penguin
14/09/03 16:03:26.39 Z1VCVlkc
>>609
字幕パッチが取り込まれたり、ここにきてVLCのISDB対応が増えてるのはなんでだ?
SkyDriveに置いてあるOSX用独自ビルド、ここ半年のものでデュアルモノラルの分離が上手くいかない..

613:login:Penguin
14/09/03 17:11:31.39 qNJLyKdr
>>612
南米やアフリカで、ISDB規格が奮闘してるからではないかと。

614:login:Penguin
14/09/03 20:20:08.29 ZY4L+Z2d
>>610
個人的には録画あるいは視聴機能でやるのが一番シンプルで理に適ってるかな、とは思ってますが、
あえてサーバ側でやるなら、サーバ部分(BonDriverProxy)よりもドライバ部分(BonDriver_LinuxPT)に組み込む方が好みですね
ただ、正しく機能してる限りどこでやろうが結果は(そんなに)変わらないので、これはあくまでも当方の好みの問題です

実装は>>608に書いたサーバ部分でのモノとほぼ同様になると思いますが、b25をメンバじゃなくてグローバルで持てば
それで良さそうですね

>>611
そうなんですが、BLACKCASの様な実例もありますので…
配布にしても、公式サイトからはパッと見わからないだけで、実際は日本のミラー経由でダウンロードしてる事も
多いんじゃないでしょうか

615:login:Penguin
14/09/03 20:24:21.72 ZY4L+Z2d
>>586
> チャンネル設定を[0始まりのBonDriverProxy用]と[実chと合わせたchinachu用]の2つを定義

これちょっと驚きましたヽ(;´ー`)ノ考えてみれば確かに可能…
ただ、やっぱりChinachu側で設定するのが本来の形かなとは思います
S側でチャンネル数が多くなるとカブッてくるとこもありそうですしね

Chinachuを使った事ないので実際に可能かどうか良く知らないのですが、ソースをちょっと眺めた感じでは、
config.jsonのchannelsのchannelをBonDriverとしてのチャンネル番号に編集すれば行けそうに思いました

616:login:Penguin
14/09/03 21:01:00.41 JJSBj14D
VLCってフランス製だっけ?
フランスはアフリカ方面の移民が多いからかもね

617:login:Penguin
14/09/03 21:01:32.76 JJSBj14D
>>613
VLCってフランス製だっけ?
フランスはアフリカ方面の移民が多いからかもね

618:605
14/09/03 23:02:24.44 ZgkNyMVF
>>608
アドバイスありがとうございます!

> 対応としては、チャンネル変更のタイミングでb25->reset()を呼べば良いと思います

実装してみたのですが、b25->put()でコケることがあります。
ioctl(fd, SET_CHANNEL)が反映されたストリームを保障できれば良さそうですがどうしたものか(;´∀`)
# b25->reset()のタイミングでPurgeTsStreamも試みたのですが、改善せず


BonDriver_LinuxPT.cppにもb25を組み中です
STOP_REC → 空read → SET_CHANNEL → b25->reset() → START_REC
とすることで上手く動いているようです。たまーにコケますが(;´∀`)

619:login:Penguin
14/09/03 23:16:47.79 ZgkNyMVF
現状のを晒しておきます。
>>606からのパッチです。URLリンク(pastebin.com)

620:568
14/09/04 08:08:21.22 pIWfyEJi
>>615
本来はそれがベストなんですが、
BonDriverProxy以外の混在利用を考慮してChinachu側の
channnels設定はそのままにしました

BonDriverProxy OnlyでしたらChinachu側弄ったほうが楽ですね

621:login:Penguin
14/09/04 13:28:01.85 /tUehKy7
>>612
たまにはmplayerのことも思い出してあげて下さい ( >> 39 )

622:login:Penguin
14/09/04 17:15:39.11 D15wE/JR
b25パッチ、安定してきました。

本家最新(16c770ecf355e0155f49eb5a52766d30e6afe7d1)からの差分です。
URLリンク(pastebin.com)

環境変数 B25 を定義した状態でmakeするとデコーダあり版をビルドできます。
 $ B25=1 make


ドライバ(BonDriver_LinuxPT)でデコーダ有効にするには、confに
 #B25=1

を追記。(パッチ後のBonDriver_LinuxPT.confを参照)


BonDriverProxy, sampleは recpt1のb25関連オプションに準拠
 usage: ./sample [--b25 [--round N] [--strip] [--EMM]] ~略
 usage: ./BonDriverProxy [--b25 [--round N] [--strip] [--EMM]] ~略

623:login:Penguin
14/09/04 19:02:48.45 D15wE/JR
微修正
URLリンク(pastebin.com)

624:login:Penguin
14/09/04 20:32:53.92 vbqHHR+q
>>622-623
URLリンク(gist.github.com)
使ってくれないかな?
patch自体をgitで管理できるし
リビジョン間のdiffも見れるし。

625:login:Penguin
14/09/04 21:10:43.19 D15wE/JR
>>622-623をまとめたやつ
URLリンク(gist.github.com)

今後はここにpushすればいい?
垢作らないと更新できなさそうだけど(;´∀`)

626:login:Penguin
14/09/04 21:27:21.46 vbqHHR+q
>>625
垢作らないとダメなのか。
それじゃ使えないな・・・すまん。

627:login:Penguin
14/09/04 22:32:47.53 kpxJ/orl
>>626
Gmailかなんかで捨てアド取って、ダミー垢つくれば?

628:login:Penguin
14/09/04 23:30:51.11 FSjilAqd
epgrec_20111001.tar.gz をそのまま使ってると、
録画ファイルを削除してもサムネイルファイルが削除されずに残ってしまう件、

cancelReservation.php 下の方で、

@unlink($path);
@unlink($path.".jpg");

という箇所を、

@unlink($path);
@unlink(INSTALL_PATH."/".$settings->thumbs."/".basename($path).".jpg");

に書き換えたらサムネイルもきちんと削除されるようになったので、
とても今さら感がありますが、ここに記しておきます。

629:625
14/09/04 23:48:06.17 D15wE/JR
垢作ってforkしてみました。今後はこちらをフォローしていだければと。
URLリンク(gist.github.com)

>>607
>細かい事言えばpIBon->CloseTuner()後でも、pIBon->GetTsStream()でdwRemain(アプリによる読み出し待ちバッファ数)が
>1以下である保証は無いです
>#元のsample.cppがdwRemainが0になるまでループさせてるのはそれが理由です

↑を対策したものに更新しました。
#間違ってコード削っちゃってました

630:login:Penguin
14/09/05 01:15:51.00 xh94W/Rp
>>629
ありがとう!

631:login:Penguin
14/09/05 06:38:37.05 YWm7Cq3O
>>618
タイミングを逃した感がありますが、以前のバージョンに付いてです(;´Д`)
SET_CHANNELだけではデバドラ内のバッファがクリアされないみたいですね
こうなってくるとサーバモジュールだけで何とかするのは無理で、ドライバモジュール側で対策する必要がある感じですね
PT3のデバドラでは気持ち対応しようとしてるみたいですが…
STOP_REC -> START_RECはPT3のデバドラでは有効そうですが、PT1/2のデバドラでは効果無さそうな?(自信なし)

PT3で(ですよね?)STOP_REC -> b25->reset() -> START_RECで基本うまく行ってるのに、
> たまーにコケますが(;´∀`)
となってしまうのは、多分cBonDriverLinuxPT::TsReader()及びcBonDriverLinuxPT::TsSplitterのposをゼロに戻してないからかなと

しかし、ナナメ読みから流し読みくらいにレベルを上げてlibarib25読んでみたら、ストリーム変更への自動追従の仕組みも
ちゃんと入ってるみたいなんですが、どこでコケてるんでしょうね
調べてみるのも面白いかもしれません

632:login:Penguin
14/09/05 06:47:41.88 YWm7Cq3O
そんでもって、現状最新版での、面倒な事考えずにb25->put()し続けて急にb25->get()でバッファが
返って来なくなったらb25->reset()と言うのはシンプルで良いですねヽ(´ー`)ノ
真面目に完璧に対応しようとしたら、デバドラにパッチ当てるか、いったんデバイス閉じて開き直すとかの
微妙な形にするか、あるいはlibarib25のコケてる理由を特定して対応するか、みたいな感じになりそうなので、
この方法はかなりバランス良いナイスな実装だと思います

なお、>>629適用後のBonDriverProxy.cpp、448行辺りと498行辺りで、m_b25もコピーして下さいね
でないと、クライアント1接続 -> クライアント2が1とドライバ共有で接続 -> クライアント1切断 -> クライアント2切断
と言う流れでリークしちゃいます

気になったのはそれくらいでしょうか
confのパースも「=」が離れてても良くなってて素晴らしい…
#実は気になってたんですが、まあ良いかと放置してました(;´Д`)失礼しました

633:login:Penguin
14/09/05 19:00:47.72 AZWHso9+
>>632
> なお、>>629適用後のBonDriverProxy.cpp、448行辺りと498行辺りで、m_b25もコピーして下さいね
> でないと、クライアント1接続 -> クライアント2が1とドライバ共有で接続 -> クライアント1切断 -> クライアント2切断
> と言う流れでリークしちゃいます

対処しました。

本家様のレビューがあると安心ですね(*´∀`)

634:login:Penguin
14/09/06 01:41:41.05 FexPwWIJ
>>586を応用してsid指定で録画出来るようにしたいんだけど、sampleってチャンネルが3桁の数字には対応してないのかな?
例えばこういう感じにconfで設定して(USESERVICEID=1)

BS日テレ 141 6 0 141
BS日テレ 2 6 0 141

sample -b (BonDriver) -s 0 -c 141 でも sample -b (BonDriver) -s 0 -c 2 でも取得出来るようにしたい
現状は後者のみ動いて前者は0バイトのファイルが作成される

635:login:Penguin
14/09/06 01:50:18.50 FexPwWIJ
自己解決
BonDriver_LinuxPT.hのMAX_CHを適当に増やした所録画出来ました

636:login:Penguin
14/09/06 17:22:09.15 eO/pxnZ3
最新のパッチ当てた状態、オプション有効にして
sample実行するとPacket Queue OVERFLOW : size[0]
がでまくった上にプロセスが止まらないorz

637:login:Penguin
14/09/06 18:45:30.88 eO/pxnZ3
>>636
BonDriverProxy自体のソースが更新されててパッチ
あたってなかっただけでしたorz
申し訳ない

638:login:Penguin
14/09/06 20:48:29.03 zseocNOz
confパース部分のパッチです。 URLリンク(pastebin.com)
=は詰めて記述すれば済む話なので必要性は無いんですけど
本家でマージしていただければ幸いです。

639:629
14/09/07 06:18:05.44 ufRLo5FT
b25 patch for BonDriverProxy_Linux rev.4
B-CASカードが無い状態でストリームを流すとクラッシュするバグを修正しました。
デコード中のB-CASカード抜き差しに対応しました。

640:login:Penguin
14/09/07 06:33:59.10 9WNSn1qS
>>638
GitHubの方には反映してなかったんですが、ローカルでは>>632書いてから同じ事をやってしまっております…
#個人的な好みで若干型や関数/変数名を変更してますが
せっかくパッチ書いていただいたのにスミマセン(;´Д`)

641:login:Penguin
14/09/07 06:36:21.79 9WNSn1qS
それはともかく、libarib25の動き眺めてたら、チャンネル変更しなくても普通に番組の切り替えタイミング(PATの更新とか)に
get()結果のバッファサイズがゼロになる事もあるみたいですね
#厳密には、次のget()までにput()されたバッファの合計サイズに依存します
こう言う場合にreset()かけてしまうとドロップする事になるので、連続何回そうなったらreset()かける的な、
閾値みたいなのを設けた方が良いかなと思いました
上述の通り、put()するバッファサイズ依存なので、閾値はユーザが設定出来るようにしておくとかでしょうか…

642:login:Penguin
14/09/07 06:43:45.54 9WNSn1qS
あと、libarib25はPATの更新があった際に、当該PATをダブって出力しちゃうんですね
TVTest(と言うかBonTsEngine)では連続性指標のエラーになるので、1パケットドロップしてる様に表示されます
実際はデータが落ちてるわけではないので別に深刻な問題ではないのですが、個人的には気になるので対応してみました
当方と同じく気になる人は、
URLリンク(github.com)
で言うと、2054-2055行目のproc_pat()とgoto LASTの間に、
curr += unit;
を入れるとこの挙動はなくなります

ついでに言うと、2063行目も意味的にはsbuf.headじゃなくてsbuf.poolでしょうね
#こちらは最終的な出力結果に影響を与えるわけではなく、単にまるもさんの意図はこうだったんだろうな、と言う話です

643:login:Penguin
14/09/07 13:16:41.37 ufRLo5FT
>>640
いえいえwありがとうございます!

b25 patch for BonDriverProxy_Linux rev.5
>>641
resetするまでのしきい値を設けました。(現状は3回まで許容)
オプションで変更できたほうが良いかなとも思ったのですが取り急ぎ

644:login:Penguin
14/09/08 07:30:13.76 9KuKI2Lg
>>643
> オプションで変更できたほうが良いかなとも思ったのですが取り急ぎ

バッファサイズが小さな場合に大丈夫ならバッファサイズが大きな場合でも大丈夫なので、
小さめのバッファでビットレートの高いストリームやサービス数の多いストリームでも確実に大丈夫な回数を
指定しておけばそれで用は足りるかもしれませんね

回数を大きくしても、チャンネル変更時に>>605の問題↓
> 視聴中にチャンネル切換すると稀にストリームが滞る事があるようです。
> #b25->putがARIB_STD_B25_ERROR_NO_PMT_IN_HEAD_32Mを返してる。
が起こった場合にfail-safeが発動するまでの時間が延びる以外の問題は無いと思うので、多少大きめの値でも良いんじゃないかと

例えば、バッファのサイズをクライアントモジュールのデフォルト値である188*1024として、
問題が発生したストリームのビットレートを15Mbpsだとすると、仮に10回見送っても、
(188*1024*8*10)/(15*1024*1024)=約0.98で、オーバヘッドを考えても最長約1秒でreset()かかる計算です
#当然、ドライバモジュールの様にバッファの小さな(188*256)場合や、ストリームのビットレートが
#もっと高い場合にはもっと早めにreset()かかるでしょう
個人的にはこれくらいなら十分許容範囲かなと思います
#そもそも滅多に発生しない問題な気もしますし…

645:login:Penguin
14/09/08 07:42:44.54 9KuKI2Lg
それから、その問題の発生するそもそもの原因を考えてみたんですが、
以下の様なパターンで発生しそうな気がします
---
チャンネル変更

PAT更新検出

次回以降のput()ではfind_pmt()でPMT探しを始める

変更後のチャンネルで番組切り替わり、あるいは再度のチャンネル変更などでPAT再更新

find_pmt()ではそれを検出しないので、もう流れて来ない旧PATで示されたPMTを探し続ける

ARIB_STD_B25_ERROR_NO_PMT_IN_HEAD_32M
---
PAT/PMTの送出頻度は100msに1回以上と規定されているので、タイミングはシビアですが…
ただ、PMTが発見されても今度はfind_ecm()で同じ状態になるので、
こちらは結構有り得るんじゃないかなと思います

で、試しに上記の状況を再現するTSファイルを作成してb25に食わせたら、
やはりARIB_STD_B25_ERROR_NO_PMT_IN_HEAD_32Mで終了しました

対応としては、libarib25にパッチ当てる形になりますが、
URLリンク(pastebin.com)
な感じかなと思います
>>642の件も含んでます
上述のTSファイルをこのパッチ当てたlibarib25を使用するb25に食わせると、
意図通りの出力が行われるのを確認しています

646:login:Penguin
14/09/08 21:13:39.99 HcnwnBd6
閾値の件、了解しました。ありがとうございます。
ドライバのバッファサイズ(188*256)で現在観測中です。

>>645
ARIB_STD_B25_ERROR_NO_ECM_IN_HEAD_32MでコケてたTSも食わせてみましたが、
エラー無しです。ヽ(=´▽`=)ノ

647:login:Penguin
14/09/09 03:12:06.64 yZ6ry4LB
>>645
デコード出来ない

648:login:Penguin
14/09/09 21:16:21.74 mah88T5D
>>647
recpt1とB25からならデコードできてるけど、そっちでもダメ?
自分はlibarib25のパッチと関係なく、sampleからはデコードできないorz

あとWindows側のProxyの方で使用するBonDriverは何使えばいいんだろ
とりあえずBonDriver_pipe指定しているけど初期化に失敗するって出る

649:login:Penguin
14/09/10 07:25:05.47 dfnWCajE
もうちょっとだけ変えて、各種異常系に対応するパッチにしてみました
URLリンク(pastebin.com)
正常なデータに対する処理は、後述の箇所以外は前回のパッチと変わりません
#処理結果に影響しないビミョーな変更した部分はあります
##行末空白消したらdiffの出力がエラい事になってしまいました(;´Д`)

前回のパッチで、追加した部分でPAT更新を検知した場合、そのPAT自体は削除していたのですが、
よく考えたらこの場合は残した方が良いかと思ったので、残すようにしました
#削除しても、適切にTSを扱えるソフトならその次のPATを見つけるはずなので、
#どちらでも大して変わらないかもしれませんが…

>>647
どちらかと言うと、TSとしては一応正常だけど扱いがややこしいデータに対応する為のパッチで、
ごく普通の(変なタイミングでPATの更新が発生したりはしない)TSストリームの扱いに関しては
元のコードと(ほぼ)同じなので、このパッチでデコードできなくなるような理由は無いと思うんですが…

650:login:Penguin
14/09/10 07:38:25.75 dfnWCajE
>>648
基本的には、win環境で使えるチューナ使用の為のBonDriverを想定してます
当方ptTimerを使用しているので、BonDriver_ptmr.dllを使う事が多いです
他には、BonDriver_PT.dllやBonDriver_PT3.dllで動作確認とれてます

BonDriver_Pipeに関しては、ファイル読み込み担当のTvtPlayと名前付きパイプで通信しようとするので、
dllのみリモートで読み込む形になるBonDriverProxyでは機能しないでしょうね
基本的にTVTest+TvtPlayからの直接ロードのみを想定したBonDriverなのだと思います
リモートのファイルをTvtPlayで扱いたいなら普通にファイル共有で扱えますしね

651:login:Penguin
14/09/10 12:16:01.87 h/4bPT67
b25 patch for BonDriverProxy_Linux rev.6
* resetするまでのしきい値を8へ増やしました。
* BonDriver_LinuxPT デコード処理をfifo排他ロックの外に移動しました。

libarib25パッチのおかげで、当方の付け焼刃的対策は不要となりました。(感謝!)
一応まだ残してありますが、気になる方は、decode.cppの12行、30行をコメントアウトしてください。

652:login:Penguin
14/09/10 12:25:53.26 h/4bPT67
>>648
> 自分はlibarib25のパッチと関係なく、sampleからはデコードできないorz

ただ普通にmakeするとデコーダなし版となりますので、
$ make B25=1
としてみてください。

$ ldd sample
の結果に
 libarib25.so.0 => /usr/local/lib/libarib25.so.0
が有ればデコーダあり版です。

--b25オプションもお忘れなく。

653:login:Penguin
14/09/10 22:01:53.65 HBWVCRFn
>>652
ありがとうございます。
その辺は以下のとおり抜かりはないのですが、Makefileを変更しています。
具体的には-fPICオプションを追加いています。
理由はCentOS7でビルドすると-fPICオプションを要求されるためです。
これが原因でしょうかね・・・やっぱり。

$ ldd /usr/local/bin/bdpl/sample
linux-vdso.so.1 => (0x00007fffa39fe000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007fd9183b5000)
libarib25.so.0 => /usr/local/lib/libarib25.so.0 (0x00007fd9181a9000)
libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007fd917ea1000)
libm.so.6 => /lib64/libm.so.6 (0x00007fd917b9f000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007fd917989000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fd91776c000)
libc.so.6 => /lib64/libc.so.6 (0x00007fd9173ab000)
/lib64/ld-linux-x86-64.so.2 (0x00007fd9185c2000)

654:login:Penguin
14/09/10 23:44:33.56 5qzvJwkG
pcscliteいるんじゃね?

655:login:Penguin
14/09/11 00:07:37.65 iOdF7k0i
そう言うことなら諦めるかな…

656:login:Penguin
14/09/11 02:31:27.63 NUNJGGEc
$ ./sample -b $PWD/BonDriver_LinuxPT.so -t10 -s0 -c0 -o /dev/null

CreateBonDriver error: pIBon[(nil)] pIBon2[(nil)]
でハマったことがあったんだけど、

BonDriver_LinuxPT.so.conf が無かっただけというオチでした。

657:login:Penguin
14/09/11 14:56:21.94 1PhEHEVX
>>653
straceの結果を晒してみるとか。

>>654
柔糟

658:login:Penguin
14/09/14 02:59:48.87 K0oELrZz
recpt1@linux についての質問です。

CentOS 6.5にてrecpt1を長年使っていますが、
最近、recpt1やその他のプロセスがsystimeを
100~400%消費して、ほぼ固まってしまうようになりました。
1~10時間に1回ほどおこります。
nfsやsambaでアクセスしたときによく起こる気がしますが、
必ず起きるわけではないので気のせいかもしれません。

pt1_drv・recpt1 は pt1-c8688d7d6382
ハードは、i7-3770KにPT2 を2枚使っています。
心当たりのある方、ご助言お願い致します。

659:login:Penguin
14/09/14 16:00:55.00 n4ioxrWT
recpt1の最新、c8688d7d6382で録画したTSでは
それまで出ていた字幕が出てこなくなった
かと言ってepgrec unaは最新を使いたいし
解決方法はないものか

660:login:Penguin
14/09/14 16:04:48.84 TMCcFLS7
やはり録画環境ではWindowsに一歩二歩劣るな…

661:login:Penguin
14/09/14 17:15:09.94 9Azm8z+x
>>659
>>438-439

662:login:Penguin
14/09/14 19:37:17.32 n4ioxrWT
>>661
ありがとう。ビンゴでした!

recpt1-http.diff のパッチを当てて
tssplitter-apnd.diff を当てなければ
問題なし。

663:629
14/09/15 07:40:19.48 fRq1FtDk
b25 patch for BonDriverProxy_Linux rev.8

b25->get()の空バッファ連続数を数えてb25->reset()する方法を廃止し、
チャンネル変更したら遅延リセットを仕掛ける方法に変更しました。
#閾値=8では足りないケースがありました。スミマセン…

664:login:Penguin
14/09/15 19:31:03.59 u6m1Lwho
BonDriverProxy_Linuxを使ってるんだけど、何か勝手にプロセスが終了する…。
ログはこんな感じ
Sep 15 05:03:21 (サーバ名) kernel: BonDriverProxy[7667]: segfault at ffffffff00000008 ip 00007f9b16ee1f82 sp 00007f9b16c65bf0 error 4 in libc-2.12.so[7f9b16e6c000+18a000]

環境はCentOS 6.5でPX-W3PEで運用

665:login:Penguin
14/09/15 22:00:39.10 MUwzt1RE
>>664
おおう、SIGSEGV(;´Д`)
-gオプション付けてコンパイルしなおしてからcore残すようにして動かしてみて、
また発生したらgdbでバックトレースしてみてもらえますでしょうか…

666:login:Penguin
14/09/15 22:33:54.46 s0wJO8Cm
ここにfoltia ALを一定の期間サスペンドさせる方法が載ってる
URLリンク(airwhite.net)

もう一歩進めて、予約状況に合わせた終了・復帰をできるようにしたいです。
エンコードスクリプトの最後で
SQLでポスグレにアクセスして、次回録画開始時間を拾い、
それで再開時間を算出すればいいかなぁ

667:login:Penguin
14/09/19 20:42:59.53 vOYD3QP1
>>664
もしかして、てのを修正しました
#でも、1サービス1チャンネルモードで使用している時にしか影響しない問題だったので、
>>664さんがそのモードで使用していなかった場合は関係ない事になりますが

668:login:Penguin
14/09/19 20:46:54.21 vOYD3QP1
あと、いつぞや言っていたBonDriver_DVBを今更ながらつくってみました
GitHubのdevelopブランチの方にあげてるので暇な人は試してみていただければ…
#ただし動作確認はpt3_dvbでしかやっていません

669:login:Penguin
14/09/20 01:45:01.73 ZxbdrSSi
コンパイル通らない…新し目のカーネルじゃないとダメかな

BonDriver_DVB.cpp:601:17: error: ‘DTV_STREAM_ID’ was not declared in this scope

cat /etc/debian_version && uname -r
7.6
3.2.0-4-686-pae

670:login:Penguin
14/09/20 02:15:33.40 ZxbdrSSi
b25 patch for BonDriverProxy_Linux rev.9
BonDriver_DVBへの追加
#まだ当方でコンパイル通らない為、動作テストしてません(;´∀`)

671:login:Penguin
14/09/20 04:10:51.76 ZxbdrSSi
コンパイル通りました。pt2で動作確認。b25デコードもおk

BonDriver共有ツール総合
スレリンク(avi板:508番)

#ifndef DTV_STREAM_ID
# if defined(DTV_ISDBS_TS_ID)
# define DTV_STREAM_ID DTV_ISDBS_TS_ID
# elif defined(DTV_ISDBS_TS_ID_LEGACY)
# define DTV_STREAM_ID DTV_ISDBS_TS_ID_LEGACY
# else
# error
# endif
#endif

672:login:Penguin
14/09/20 06:30:31.15 ZxbdrSSi
重箱の隅ですが(;´∀`)
util/test.cpp
-#define FILE_OFFSET_BITS 64
+#define _FILE_OFFSET_BITS 64

673:login:Penguin
14/09/20 11:14:07.15 /wCqLEzE
testは名前変えてほしい。(´・ω・`)

674:login:Penguin
14/09/20 15:50:47.55 FTFEBESz
>>667
ありがとうございます。症状はあの後は出ていませんが、1サービス1チャンネルモードで運用していたので多分それだと思います。

675:login:Penguin
14/09/20 19:24:43.81 oCHzE0lG
>>671
おお、動作確認していただけましたか
ならその内にmasterの方にマージしますね

> 重箱の隅ですが(;´∀`)

失礼しました(;´Д`)sampleの時に気付いとけよって話ですね

676:login:Penguin
14/09/20 19:27:43.18 oCHzE0lG
>>673
所詮やっつけアプリで、殆どsample2みたいな物ですから(;´Д`)

>>674
おお、それなら原因を排除できた可能性はありそうですね
発生確率はデバドラのつくりによって変わると思われる問題だったのですが、
PX-W3PEで運用と言う事なので、確度もそこそこ高そうです

677:login:Penguin
14/09/20 20:45:52.68 ZxbdrSSi
BonDriver_DVB(earth_pt1)+TvTestですが、シグナルレベルが0dBのままですね。
視聴に問題がなかったのと、DVB初利用なのでそんなもんかと思ってたんですが
TsReader() ioctl(FE_READ_SIGNAL_STRENGTH) error: adapter0
でした。

678:login:Penguin
14/09/20 21:06:20.22 ZxbdrSSi
>DVB初利用なので
僕がDVBを使うのが初めてで、という意味です。#言葉足らずでスミマセン
DVBってシグナルレベル取得APIが無いのかな?とw

679:login:Penguin
14/09/20 21:28:58.29 qMZ361UH
>> 668

いいですね。とりあえずPT3以外で動かして見たので報告です。

Ubuntu 14.04.1 LTS
3.13.0-35-generic
BonDriverProxy
BonDriver_DVB.so
TvTest 0.7.23

・Friio白 (ISDB_T)
SetChannel() ioctl(FE_SET_PROPERTY) error: adapter4
とエラーが出力されて表示されません。

FriioはDTV_STREAM_IDに0を指定するとエラーになった記憶があるので
ISDB_T(地上波)に対してDTV_STREAM_IDを指定しない様にすれば良いかと
思います。PTXの場合もこっちでOKだったはずです。

prop[0].cmd = DTV_FREQUENCY;
prop[0].u.data = f;
prop[1].cmd = DTV_TUNE;

props.props = prop;
props.num = 2;

680:login:Penguin
14/09/20 21:30:35.21 qMZ361UH
>> 668,677

続きです。

・PT2 DVB
個人的には映るのならシグナルレベルはどうでもよいと思っていますが。

TsReader() ioctl(FE_READ_SIGNAL_STRENGTH) error: adapter0

シグナルレベルが取れていない様です。自分の調べた所では、シグナル
レベルを取得する方法がドライバによってまちまちでした。

FE_READ_SIGNAL_STRENGTH (Friio白)
FE_READ_SNR (PT1,2,3)
DTV_STAT_CNR (PT3 DVB V5 以上)

おまけにどういう単位で返すかがドライバ依存なので、まともなシグナル
レベルを取得するためにはドライバ側を修正しないといけないという印象
でした。例えば、FE_READ_SNRで取得した場合、PT3はハードウェアから
得られた生値だと思いますが、PT2ではCNRを計算して返している様です。
ただ実際に出力させると何かよくわからない値なのですが…。

681:login:Penguin
14/09/21 02:02:07.75 8glTzj28
>>679
> FriioはDTV_STREAM_IDに0を指定するとエラーになった記憶があるので
> ISDB_T(地上波)に対してDTV_STREAM_IDを指定しない様にすれば良いかと
> 思います。PTXの場合もこっちでOKだったはずです。

ありがとうございます
対応してみました

682:login:Penguin
14/09/21 02:04:10.07 8glTzj28
> シグナルレベルが取れていない様です。自分の調べた所では、シグナル
> レベルを取得する方法がドライバによってまちまちでした。
~~~
> おまけにどういう単位で返すかがドライバ依存なので、まともなシグナル
> レベルを取得するためにはドライバ側を修正しないといけないという印象
> でした

そうなんですよねー
当方が調べた結果もそんな感じでした
とりあえずFE_READ_SIGNAL_STRENGTH使ったのは、テストしたpt3_dvb(fd90fa5a16d07981b19d5e868ad9f463cee77989)の
内部実装が単にchardev版のラッパになってたので、生の値である事と、表示値の互換性が期待できるなと思ったからです
#↓このcastはちょっと無いなと思いましたが(;´Д`)
---
static int pt3_fe_s_read_signal_strength(struct dvb_frontend *fe, u16 *cn)
{
struct pt3_fe_s_state *state = fe->demodulator_priv;
return pt3_tc_read_cn_s(state->adap, NULL, (u32 *)cn);
}
---

683:login:Penguin
14/09/21 02:07:24.91 8glTzj28
…が、その後もうちょっと調べてみたらその次のバージョンではFE_READ_SIGNAL_STRENGTHに対してCNRを計算して
返すようになり、今のバージョンではFE_READ_SIGNAL_STRENGTHは削除されて、その処理はそのままFE_READ_SNRで
使用されるようになってますね…

意味的な正しさで言えば、シグナルレベルとして取得した生の値がどのような意味を持つかはHWによって異なる可能性も
ありそうですから、共通インタフェースでの実装としてはドライバ内でCNRを計算して返すのはもっともな姿勢かなとは思います
#そう言う意味では、現状のBonDriver_DVBの実装では仮にFE_READ_SIGNAL_STRENGTHでシグナルレベルが取得できても、
#意味のある値になるのはPT1/PT2/PT3だけかもしれませんね

しかし、v4lのAPIマニュアルからして、FE_READ_SNRで得られるdBの精度は書かれていませんし、FE_GET/SET_PROPERTYの方に
書かれてると思ったら、1/1000なのか1/10000なのかハッキリしません(;´Д`)
#1/10000の場合、int16_tでは3.27dB位までしか測れなくなるので、1/1000が正しいんじゃないかとは思いますが…

とりあえず1/1000が正しいと仮定して、FE_READ_SNRを使うモードを付けてみました
PT1/PT2を使ってる方や、pt3_dvbでも最近のを使ってる方は、BonDriver_DVB.cppのアタマの方の、
//#define USE_READ_SNR
のコメントを外してみると、何らかの値が得られるようになるかもしれません

684:login:Penguin
14/09/21 02:25:47.40 zlop0RNo
confで指定できれば良いですね

685:login:Penguin
14/09/21 08:15:08.73 gZdOl1Ws
>>668

URLリンク(github.com)
URLリンク(github.com)

自分がなぜそうしたのか記憶が曖昧なのですが…。
dvr0デバイスをオープンする際にはO_NONBLOCK をくっつけてたと思います。

dvr0 からデータが来なかった場合、readがブロックするからだったような
記憶があるのですが、今見ると正常ならlen=0とかなさそうなので意味不明な
ことを言ってるのかもしれません。

手元にPX-S1UD、Friio黒、MonsterTV HD もあるので動作確認できたら良いな
と思ってるのですが、カーネルモジュールのビルドが難儀ですね。Friio黒、
MonsterTV HDは2senのソースが古いので自分には無理だとしか思えないです。
PX-S1UDはカーネル3.15からデフォルトで有効の様ですが、ubuntu14.01の
3.13では再ビルドが必要ですね。考え方が安易過ぎますが、以前、IDだけの
変更なんだしバイナリ直接いじって既存の使わないデバイスID置き換えたら
良いよねとか思ってやってみたらどダメだったのですよね。

URLリンク(cgi20.plala.or.jp)
URLリンク(lxr.free-electrons.com)

Ubuntu14.01でPX-S1UD使えてる人っています?

686:login:Penguin
14/09/21 09:45:10.55 8glTzj28
>>684
たしかに使う立場を考えるとそっちの方が便利ですね
confの#USEREADSNRで変更できるようにしました

>>685
O_NONBLOCKを付けてないのは、つくり的にブロックされても構わないようにしているので意図してそうしています
標準でサポートされてない場合は、モノを持っててもそれを試す環境づくりが結構面倒ですよね…

687:684
14/09/21 10:52:10.93 hbHUwz2C
>>686
ありがとう

688:login:Penguin
14/09/21 11:32:44.72 gZdOl1Ws
>>681,683,686

Friio白で表示されました。
シグナルレベルも以下からダウンロードしたWindowsのBonDriver3.1と
ほぼ同じ値です。

URLリンク(www.friio.com)


作業しながら思ったことをだらだらと書いておきます。

Friio白の場合、DVBのシグナルレベルはFE_READ_SIGNAL_STRENGTHでのみ
取得可能ですので#USEREADSNR=0でOKです。FriioDVBドライバのソース眺
めましたがFE_READ_SIGNAL_STRENGTHで返しているのはハードウェアの生値
の様ですしチップも東芝でPTXと同じなのでCNRの計算式も共通なのかなという
印象です。

後、Linuxは関係ありませんが、#USESERVICEID=0の場合、#ISDB_TのVHF帯等の
チャンネル1-C63を削除して13-62を0からリナンバリングしないとTVTestで
チャンネルスキャンに失敗するのですが自分の環境特有の話でしょうか?
待ち時間を最大の10秒とかにしてもです。

チャンネル1-C63を削除したくなければ、TVTestのチャンネルファイルの方を
手動で作成すれば良いので特に困ってはいないのですが。

689:login:Penguin
14/09/21 12:58:05.39 bwPJwNB2
DVBの開発者の間でも以前RSSIやCNRの値の報告の仕方がバラバラであることが問題になって、
DVB API v5では DVT_STAT_SIGNAL_STRENGTH DTV_STAT_CNRなどの測定値には
単位をつけるようになってる。 一般的なのは0.001dB(m) (FE_SCALE_DECIBEL)
PT1やFriioのDVBドライバは新しいのに対応して改修されていないけど
今レビュー中のPT3は対応してるよ (RSSIとCNR)

あとFriiioはRSSIでCNRを返してるという間違いがそのままになってる

690:login:Penguin
14/09/21 14:37:32.75 8glTzj28
pt3_dvbの最新入れてFE_READ_SNRの動作の確認しようとしたら変な値返してくるので、
もう一回ちゃんとソース確認してみると、FE_READ_SNRでシグナルレベルを返してきてました(;´Д`)
> …が、その後もうちょっと調べてみたらその次のバージョンではFE_READ_SIGNAL_STRENGTHに対してCNRを計算して
> 返すようになり
は、デバッグログの出力時にそれやってるのの見間違いだった様です
しかし、
> 今のバージョンではFE_READ_SIGNAL_STRENGTHは削除されて、その処理はそのままFE_READ_SNRで
> 使用されるようになってますね…
はその通りなので、結果的にFE_READ_SNRでシグナルレベルを返すと言う状態になってる様です
つまり、>>680さんの書かれてた事がやっぱり正解でした

こうなるとおかしいのは明らかにpt3_dvb側なので、とりあえず、
URLリンク(github.com)
の400行目辺りと509行目辺りに、
---
.read_signal_strength = tc90522_read_snr,
---
を追加して、シグナルレベルを取得できるようにして使う感じでしょうか
#関数名はread_snrですが、シグナルレベル取得の関数です…

691:login:Penguin
14/09/21 14:40:10.31 8glTzj28
また、他のDVBドライバがどうかは知らないのですが、pt3_dvbはdemuxerのfd閉じる時に他のadapterにも
影響するようで、例えばadapter0とadapter2を両方使ってる時にadapter0のdemux0をclose()すると
adapter2側でドロップが発生する様です

これらの状況を考えると、PT3を使うなら少なくとも現状ではchardev版の方が良さそうな気はしますね

692:login:Penguin
14/09/21 14:55:16.35 bwPJwNB2
ちなみに >>689 であげてたPT3のドライバってのは pt3_dvbとは別の
URLリンク(www.spinics.net) (のフォローアップ)
のことです

FE_READ_SIGNTAL_STRENGTHのioctlを使うよりも DTV_GET_PROPERTYを使って DTV_STAT_SIGNAL_STRENGTH(かDTV_STAT_CNR)プロパティを読むようにするのがAPIv5のやり方 FE_READ_SIGNAL_STRENGTHの方は古いAPIなので
各ドライバ独自の形式で返してくる & 値がu16なので負値を返せない
(RSSI[dBm]は通常マイナスの値となるはず?) という問題があるよ
URLリンク(linuxtv.org)

693:login:Penguin
14/09/21 18:57:12.22 8glTzj28
>>688
使えたようで良かったです
チャンネルスキャンの件に関しては、TVTest側でどう判定してるのか調べてみないとちょっとわからないですねー

>>689>>692
まだまだインタフェース固め自体が過渡期って感じなんでしょうか
linuxを普通にデスクトップマシンとして使ってる人やっぱり少ないでしょうし、
あんまりモンクが出てこなさそうなのも一因でしょうか…

>>692で教えていただいたパッチ当てて使ってみたら、>>691の問題は発生しませんでした
これはやはり、pt3_dvbの固有の問題みたいですね
DTV_STAT_CNRでちゃんとCNRが返って来るのもソース/実行結果両方から確認できました

あと、>>692の後者のリンクは読んでたんですが、DTV_STAT_CNRの項目に
---
FE_SCALE_DECIBEL - Signal/Noise ratio is in 0.0001 dB units.
---
てあるのは、やっぱり桁間違いですよね?
#DTV_STAT_CNRで返す場合は__s64なので1/10000でも表せる最大値の問題は無くなりますが…

694:login:Penguin
14/09/21 19:01:58.65 8glTzj28
今後の方向はDTV_STAT_CNRだと教えていただいたのでそちらに一本化したいところですが、
やはりまだ対応してないドライバが多いと言う事で、結局CNR取得方法の選択肢を増やしました(;´Д`)
confの設定名が、#GETCNRMODEに変わっています
0 : FE_READ_SIGNAL_STRENGTH / 1 : FE_READ_SNR / 2 : DTV_STAT_CNR
です
すみませんが、以前のconfの#USEREADSNRをこれに置き換えてください

695:login:Penguin
14/09/21 19:06:51.75 8glTzj28
あと、pt3_dvbは>>691の問題がありますし、ソース読んでても気になる点がちょくちょくあるので、
個人的にはPT3でDVBドライバ使うなら>>692のリンク先の物をお勧めします
#無事本家にマージされると良いのですが…

696:login:Penguin
14/09/21 20:16:44.50 bwPJwNB2
>>693
statの報告については たしかに最近になって新インターフェースがv5に追加されてる
利用者がすくないせいで 最近になってアプリサイドから問題提起された感じじゃないのかな
だいたいlinuxのデスクトップ自体のシェアが1..2%で
その中でさらにDTVを見たい &ソース見て問題点を挙げる/改修する人の数は...

あとFE_SCALE_DECIBELの説明は桁間違いのはず;) 他のドライバも1/1000 dBで返してるので

697:login:Penguin
14/09/21 23:22:09.96 IdcCM2hP
TsSplitterの処理は全く同じなら統合したいねぇ。

698:login:Penguin
14/09/21 23:22:23.11 1RikBqg5
>666
わざわざDBにアクセスせずとも、atq で次回録画時間がわかったので、
URLリンク(airwhite.net)
・・・を書き換えてみました。

URLリンク(pastebin.com)

foltia AL 4.0.2で一応動作確認
at キューに入ってる直近の日時まで75分以上差があればサスペンドします。
EPG更新を考慮して予定の1時間前には復帰します。

foltia ユーザでの実行を想定してます。
中でsudo しているので /etc/sudoers への NOPASSWD 設定が必要です。

このシェルをどのタイミングで起動するかが課題です。

流れ無視して申し訳ないです。

699:login:Penguin
14/09/21 23:59:17.48 gZdOl1Ws
>>694

BonDriverProxy + BonDriver_DVB.so + PX-S1UD が Ubuntu 14.01 で動きました。

URLリンク(blog.lwlv.net)

ドライバのビルドは上記の手順ほぼそのままでOKでした。

ただ、微妙に不安定な感じで、電源ON時にきちんと認識してくれないことが多いです。
ドライバ、PC、PX-S1UDどれの問題なのかは未確認です。

#GETCNRMODE=2でCNRが取れます。ドライバソース眺めても返している様ですし。
TVTestの表示が30dBぐらいで同じアンテナ線につないだBonDriver_LinuxPT(PT3)
でもそのぐらいです。WindowsのBonDriverは70-80とか表示するのですが何を
返しているのでしょうね?CNR*2だと合わないですが。

SetChannel() timeout: adapter4

PT3と比べるとチャンネル変更が遅く感じます。なにかもっさりした感じです。
チャンネル変更時にBonDriver_DVBがたまにtimeoutしたと上のエラーを表示します。
ただ、そういう場合でもTVTestのチャンネル変更は成功して映像は表示されます。

URLリンク(github.com)

チャンネル変更が成功したかどうかを 250ms * 4 で最大1秒待っているのを * 8 の
2秒程度にするとtimeoutのエラーは表示されなくなりました。250ms * 4 は PT1DVB
の数値(tune.c)かな?と思いますがチューナーによってこの辺も微妙に違うのですね。

700:login:Penguin
14/09/22 03:35:08.27 RCw937p9
基本的な質問になるけど、CASを刺してない場合にストリームがヌルになって何も見れない
(後でb25使おうにも使いようがない)っていう
去年くらいのfuse_b25のクソ仕様は継承されてるのですかね?
この問題が無ければ、挑戦してみたいんだけど。
recpt1でやってます。

701:login:Penguin
14/09/22 19:23:09.90 DJmrXEBd
>>688
TVTestのチャンネルスキャンのタイムアウトは、TVTest内でのデッドロック由来みたいでした
TVTestはロックを取得してからイベントキューにチャンネル変更のリクエストを放り込みますが、
イベント処理スレッドでは、そのリクエストを処理する前に同じロックの取得待ちが発生する場合があります
こうなるとスキャンの待ち時間に関係なく必ずタイムアウトになるので、結果チャンネルスキャン失敗となるようです
TVTestのビルドスレは開発者の方も見てるみたいなので、報告しておきました

>>699
おお、よかった
チャンネル変更時の挙動は、チューナだけでなくドライバとかによっても異なりますね
PT3のchardev版では、受信できない周波数へのioctl(SET_CHANNEL)を行うと8秒ほど返って来なくなるので、
チャンネルスキャンにかなり時間がかかったりします
そう言う意味では、DVB版はチューナに合わせて調整しやすくて良いかもしれませんね

702:login:Penguin
14/09/23 21:08:12.24 4laAyCHM
>698
foltia AL の予約時間はatq で、
録画有無はrecpt1プロセスの有無で、
変換有無はffmpegプロセスの有無で判定できる。
後の課題は映像配信中かどうかの判定。
これさえできればcronで定期的にこのスクリプトを走らせればsuspend運用が可能になるはず。
(必要なときの電源ONはWoLを想定)

DLNAで配信してるか否かは localhost:8200 にhttpアクセスすればわかるけど、
ApacheでWeb配信しているかどうかが判定できない・・・。
netstat で httpの ESTABLISH を見ればいいと思ったけど、
Webプレーヤーで視聴中でも表示されないですねぇ。。。

なんかいいアイデアありませんかね?

703:login:Penguin
14/09/23 22:12:40.53 Nn7+SBVJ
個人的には、
一定時間sleepの前後で ifconfig eth0 の in と out を足して
一定以下なら rtcwake するのを動かしてる

再起動時には毎回手動だけど、vnc 上で

704:login:Penguin
14/09/23 22:21:28.22 4laAyCHM
>703
具体的にどんなコード書いてるか教えていただけないでしょうかm(__)m
再起動がVNCってのは intel vPro 付きのマシンでやってるってことですかね?

705:login:Penguin
14/09/23 23:30:54.94 Zj70CTbe
/proc/net/devを読むのはどうでしょう?
rootじゃなくても良いし…
-r--r--r-- 1 root root 0 Sep 23 23:28 /proc/net/dev

grep eth0 /proc/net/dev | sed 's/ \+/\t/g' | cut -f11

706:login:Penguin
14/09/24 02:00:15.45 MOmElMpN
/proc/diskstats でディスクの活動をチェックするのも良いかな

707:login:Penguin
14/09/24 02:04:13.28 /s6jH7eY
mod_statusでわからんか

708:login:Penguin
14/09/25 09:03:47.25 vw+3DDLO
みんなありがとう~
>703
rtcwake は知らなかった。 元スクリプトもそうだけど、
sudo sh -c "echo~ とやってて sh に対しての sudoers 設定が必要でした
 sh を NOPASSWD実行させるのはセキュリティ的にアレと思ってたけど、これなら良いですね

>707
foltia AL の CentOS6.5のApache2.2 には標準で読み込まれてるので
 ディレクティブ設定すればstatus取れました。
 でも、tcpdump してみてわかったけど、Web Playerは常時ストリーミング転送するわけじゃなくて
 一定期間ごとに直近映像ブロックをhttpで転送してコネクションを切っちゃうので
 有意な値を取れませんでした。。。

>705,706
 助言いただいたように、eth0 の L2レイヤのデータ転送量とディスク活動量をみて
 「なんとなく判断する」のが当面の解決策ですね。ありがとうございます。
 「使用中」と判断するしきい値をどうするかがtry&error ですね。

 >703 の事例を是非参考にさせていただきたく。。。
 

709:login:Penguin
14/09/28 01:17:03.47 kGukxwIm
Raspberry PiでPX-S1UDを
URLリンク(deepntechnical.blogspot.jp)
これを参考にドライバを入れました
そこにBondriver proxy_linuxを実行したところチャンネル指定時に
SetChannel() timeout: adapter0
と表示され映像が映りません。
何が原因かわかったら教えていただきたいです。

710:login:Penguin
14/09/28 02:42:54.45 UKXPJ+IB
エスパー期待されても困るよ。
straceやdmesgの結果くらいは出して欲しい。

711:login:Penguin
14/09/28 09:27:31.12 r3Z8zE+X
BonDriverProxy + PX-S1UD + Raspberry Pi (Raspbian)+TVTest
の構成で昨日から作業してやって今手元で動いてる。ほぼ同じ構成ってことで。

uname -a
Linux mysv504 3.12.28+ #709 PREEMPT Mon Sep 8 15:28:00 BST 2014 armv6l GNU/Linux

そのエラーはチェンネル変更に失敗したら出る。
自分がやったけどファームの入れ忘れでも出る。
もちろんチャンネル番号が間違ってても出る

dmes | grep firmware で以下のエラーが出ていたらファームの入れ忘れ。
[ 5.452979] smscore_load_firmware_from_file: line: 1168: failed to open firmware file "isdbt_rio.inp"

ファームを入れたら再起動する。
どこからダウンロードするかとかダウンロード時の注意(wgetで失敗する)とか
どこに入れるんだとかは>>699のURLか以下が参考になる。ファームは32,64bitの
両方のディレクトリに入っているけどどっちでも同じ。
URLリンク(gametricks.blog40.fc2.com)

Raspbian(Debian)はDVB関係が古くて#GETCNRMODE=2でCNRは取得できない。
#GETCNRMODE=1でもほぼゼロしかならない。#GETCNRMODE=0は値が異常。
なので、CNRを取得する方法はなさそう。

というか Raspbian のカーネル3.12.28+で自分でビルドしたドライバをmodprobe
するとカーネルが落ちるんだけど問題ない?結局上のURLからたどれたsmsusb.koを
直接書き換える方法で使ってる。

スレリンク(jisaku板:829番)

712:login:Penguin
14/09/28 09:50:14.80 r3Z8zE+X
>> dmes | grep firmware で以下のエラーが出ていたらファームの入れ忘れ。
dmesg | grep firmware

713:login:Penguin
14/09/28 12:29:54.62 smu24UAt
>>711
ファームの入れ忘れでした…
ありがとうございました!

714:login:Penguin
14/09/28 12:50:43.03 r3Z8zE+X
自分で書いておいてなんですが。

> Raspbian(Debian)はDVB関係が古くて#GETCNRMODE=2でCNRは取得できない。
BonDriver_DVB.cpp のコンパイルエラーは /usr/include/linux/dvb/frontend.h が
Debianだと古くstruct dtv_property に struct dtv_fe_stats st メンバがないのが原因
なので、存在するファイル(例えば、Ubuntuとからファイルを持ってきて)を代わりに
includeすればコンパイル可能で値も取得できました。ただ、Ubuntuの場合と値が明らかに
違うので正しいかは不明です。

> #GETCNRMODE=1でもほぼゼロしかならない。
URLリンク(lxr.free-electrons.com)
他のドライバでもこうなのかなあ?
URLリンク(github.com)
1/1000をやめると確かに値は帰ってきますね。

>#GETCNRMODE=0は値が異常。
URLリンク(github.com)
サポートされていないとsignal=0になるようなので
URLリンク(github.com)
signal>0 のガードを入れておくのが良いかなあと。

715:login:Penguin
14/09/28 13:01:32.83 r3Z8zE+X
>サポートされていないとsignal=0になるようなので
日本語が意味不明ですね。ioctl<0にならなくてsignal=0で帰ってくる
場合がある様だということです。

716:login:Penguin
14/09/28 15:35:26.51 znqq1d0S
PT3と本家のrecpt1最新版で録画してるのですが、
録画時間を超えてもrecpt1が終了せずチューナーを占有されて一部録画に失敗しました。
終了しなかったrecpt1の出力ファイルの最終更新は予定の録画終了時刻だったので、
終了しようとした形跡はあるようです。
どなたか原因わかる方いらっしゃいませんか。

717:login:Penguin
14/09/28 23:56:34.27 Weh/2lnJ
>>714
> #GETCNRMODE=1でもほぼゼロしかならない。

ちょうど先週話題になった件ですね
FE_READ_SNRで取得できる値はドライバ毎に好きにやってて、精度が統一されていないようです
URLリンク(lxr.free-electrons.com)
では、0.1dBって書いてありますね
なので、BonDriver_DVB.cppで1000で割ってるのを10に変えるとそれなりの値になるかもしれません

現状では、#GETCNRMODEを2で使えるドライバでない限り、BonDriver_DVBが返す値は変な値になる
可能性がある、て事ですね
逆に、自分が使用しているチューナ用のドライバのソースから、返してきてる単位/精度がわかるなら、
BonDriver_DVB.cppの該当箇所をそれ用にいじって使うのが一番確実でしょうね

718:login:Penguin
14/09/29 07:09:29.84 DL/mCJ0i
>>717

>なので、BonDriver_DVB.cppで1000で割ってるのを10に変えるとそれなりの値になるかもしれません
1/10で>>714で書いた#GETCNRMODE=2を有効にした場合と一致しました。

>ただ、Ubuntuの場合と値が明らかに違うので正しいかは不明です。
再確認したらそれなりに似た値でした。違うチャンネルで値を比較してそう思い込んでいました。
あまり電波状態の良くないアンテナ入力なのでチャンネル差が結構あるようです。

現時点のDebianでPX-S1UDを使う場合は、BonDriver_DVB.cppの以下を 1000 から 10 修正して
#GETCNRMODE=1 で使うのが良さそうですね。Ubuntuなら#GETCNRMODE=2でOKです。
自分で使うのは設定ファイルで倍率(1/10=0.1)みたいな感じで読むようにしとくかなあと思っています。
なんかいまいちな解決方法ですが

URLリンク(github.com)

719:login:Penguin
14/09/29 12:01:34.26 uB5gD6UG
chinachuのライブ視聴(m2ts無変換のxspf)なんだけど
avconvが落ちて再生始まらないのはなんだろう?
SDは概ね再生出来るっぽくHD/FHDは大抵コケるっぽい(´・ω・`)
ちなみに録画したものは問題なく再生出来てる

720:login:Penguin
14/09/29 16:52:29.57 7oyx3tq2
ほとんどの録画ソフトはスポーツ中継や特番なんかの放送時間延長には対応してないようだけど、
その番組の後の番組の時間変更(くり下げ、くり上げ)も対応してないのかな?

721:login:Penguin
14/09/29 17:53:07.86 kH+LeVtI
Windows系のフリーの録画ソフトはむしろ大抵延長対応してる
ここはchinachuのわりと致命的な欠点

722:login:Penguin
14/09/29 18:30:59.88 YY/0p21J
やはり録画環境ではWindowsに一歩二歩劣るな…

723:login:Penguin
14/09/29 18:42:37.71 +otmu0ib
録画機をwindowsからlinuxに移行しようかと思ってたが、この問題があるから諦めた。

724:login:Penguin
14/09/29 19:42:46.69 HBTrRVUB
もういっそ全録で対抗しちくり
番組ごとに別ファイルで記録してくやつ

しょぼいスクリプトしか書けないが全録ソフトできたらプロジェクトの支援する
B25触らなければ純然たる合法ソフトだし(で、誰か、がコソーリ…w

725:login:Penguin
14/09/29 23:31:43.42 5wGIfjXB
いま開発中の、次期バージョンChinachu"usushio"で
放送時間延長とかに対応するって見た覚えが・・・。

ライブ視聴も、現在の実装方法とは違う新たな方法で実現するらしい。

726:login:Penguin
14/09/29 23:38:58.07 8FKhSn8O
epgrec UNAが対応してるよ
おかげで力士のケツを見なくて済んだw
あと MythTVもじゃないかな

他にも探せばあるんじゃないかな

727:login:Penguin
14/09/30 11:42:17.67 Xn4Wh5en
dvb_apps の録画スクリプトは一応対応してるだろ

728:login:Penguin
14/09/30 11:55:48.13 iwduFy7p
GV-USB2使えるようにならねえかなあ

729:login:Penguin
14/10/01 23:28:07.91 mSFbOiq9
BonDriver_LinuxPTでPX-W3U3も動作するのか確認してみました。
PX-W3U3はUSB接続の4チューナーモデルです。

$ cat /etc/redhat-release
CentOS release 6.5 (Final)
$ uname -a
Linux mysv502 2.6.32-431.29.2.el6.x86_64 #1 SMP
Tue Sep 9 21:36:05 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

・PX-W3U3に付属のACアダプタを接続しないとチューナーを半分しか
認識しません。まあこれはそういうものなのでしょうね。

・本家ドライバってどうやって使うのでしょうか?
URLリンク(www.plex-net.co.jp)
これに入っているas11usbdtv.koをinsmodすると/dev/as11usbdtv0
/dev/as11usbdtv1の2個しかデバイスファイルができません。
BonDriver_LinuxPTが想定しているデバイスファイル名とは違うので
修正が必要ですが修正して確認する気になれませんでしたので省略します。

以下、動作確認という名目でfoltiaからドライバファイル(pxw3u3.ko)を
借りてきて確認した結果です。

・デバイスファイルは/dev/pxw3u30-/dev/pxw3u33の4個作成されます。
・BonDriverProxy + TVTestでTVTest側でチャンネルを切り替えると
映像が表示される場合はあるのですが、フリーズする場合があります。
発生条件は明確ではないのですがチャンネル変更している内に突然という
感じです。1回目の変更でフリーズする場合もあります。フリーズすると
Pingにも応答しません。電源OFFするしかない状態です。何が原因かよく
分かりませんがうまく動作してくれないようです。

730:login:Penguin
14/10/02 01:55:32.81 cIllcodc
>>728
Linuxじゃts抜きが出来るようなタイプじゃないと無理やろ

731:login:Penguin
14/10/02 02:27:28.79 oJZcKZhT
>>729
ついでにfoltiaのrecpt1で動作確認してみたら?
もしそれで大丈夫なら、ドライバの制限としてSTART_RECしてない時でないとSET_CHANNELできないとかの可能性はあるかもね
マニュアルある訳じゃないからいろいろ試さないと実際どうなのかはわからないだろうけど

ただ、できないだけならともかくOSごと固まるのは、どう考えてもクソドライバ乙じゃないかなぁ

732:login:Penguin
14/10/03 00:45:19.36 bJNcwhax
>>731

> ついでにfoltiaのrecpt1で動作確認してみたら?
確かにそうですね。再確認してみました。

・foltiaのrecpt1での確認
foltiaのrecpt1を使ってチャンネル変更、30秒録画を繰り返す
スクリプトを書いて実行してみました。特に問題なく動作します。
もちろん、OSもフリーズしません。

# recpt1
pt1dev=/dev/pxw3u30
chnos="101 103 141 151 161 171 181"
sec=30
rec=pt1
for ch in ${chnos}
do
log=${rec}_${ch}.trace
ts=${rec}_${ch}.ts
strace -o ${log} recpt1 --device ${pt1dev} ${ch} ${sec} ${ts}
done

・BonDriverProxyのsampleでの確認
同様にsampleでもチャンネル変更、30秒録画を繰り返すスクリプトを
書いて実行してみましたがこちらも問題なく動作します。

> もしそれで大丈夫なら、ドライバの制限としてSTART_RECしてない時
> でないとSET_CHANNELできないとかの可能性はあるかもね

おお、まさにそういう感じがします。

733:login:Penguin
14/10/03 07:03:45.95 bJNcwhax
>>732の続きです。単純にBonDriver_LinuxPT.cppのSET_CHANNELの前後に
fprintfを追加しWindowsのTVTestからチャンネル変更して確認してみました。

fprintf(stderr, "ioctl(SET_CHANNEL) Start\n");
if (::ioctl(m_fd, SET_CHANNEL, &(g_stChannels[g_Type][dwChannel].freq)) < 0)
{
::fprintf(stderr, "SetChannel() ioctl(SET_CHANNEL) error: %s\n", g_Device);
goto err;
}
fprintf(stderr, "ioctl(SET_CHANNEL) End\n");

ioctl(SET_CHANNEL) Start
ioctl(SET_CHANNEL) End
ioctl(START_REC) Start
ioctl(START_REC) End
ioctl(SET_CHANNEL) Start
ここでフリーズ。

> もしそれで大丈夫なら、ドライバの制限としてSTART_RECしてない時
> でないとSET_CHANNELできないとかの可能性はあるかもね

これです…。
しかし>>729みたいな文章でこの原因を推測できたことが驚きです。

とりあえず、SET_CHANNEL前にSTOP_RECでも入れて状態を見てみれば
良いのかな。

734:login:Penguin
14/10/03 19:03:54.12 Q+yXHr/N
>>733
こんな感じでどうでしょう?
URLリンク(github.com)

735:login:Penguin
14/10/05 12:44:49.40 /R6zBrak
>>734

修正を適用した所、快調に動作しています。

なるほど、TsReaderのスレッド止めてSTOP_RECするのが確実なのですね。
スレッドを止めずにSTOP_RECするだけの修正を自分なりに試していたの
ですがチャンネル変更後しばらくしたら突然フリーズしたりして不安定でした。

対応ありがとうございます。
>>731の書き込みが非常に参考になりました感謝です。

736:login:Penguin
14/10/05 14:02:05.62 bjGIp0S3
セレの4コアだったらエンコードキツイ?
CPUの周波数はどれぐらいあればいいかな?

737:login:Penguin
14/10/05 14:33:07.43 vvB7mzx9
HDD修理出して再インスコしようとしてるんだけど
ChinachuでH265にするメモサイトどこか忘れた
誰か知らない??

738:login:Penguin
14/10/05 21:02:00.04 k7rYE0OR
Chinachuって録画時間の調整ってできますか?
毎回、NHKの番組が尻切れになってしまうので5秒ほど長くしたい

739:login:Penguin
14/10/05 21:16:00.57 YiWRrpw5
>>736
エンコ時間にこだわりなけりゃCPUはなんでもOKとしか・・・

740:login:Penguin
14/10/05 22:12:28.78 R7okN6gm
録画だけならAtomでも問題ない

741:login:Penguin
14/10/06 03:15:35.28 B/4mJ+b9
>>738
githubのwikiにconfig.jsonの仕様書が
あるので読もう

742:login:Penguin
14/10/06 07:13:23.72 HBWXiK3L
まだ使い物にならないみたいだな

743:login:Penguin
14/10/06 11:44:43.65 AQoSxgcQ
わかつきなんとかを思い出して不愉快なネーミング
キュートじゃない…

744:login:Penguin
14/10/06 13:31:49.30 WxUDWqpO
>>742-743
まだまだだね
PPA対応でないのも不便だし

745:login:Penguin
14/10/06 18:04:32.94 L+ondwPz
最初見た時、チャイナちゅか…なんか嫌だな。
と思って避けてたけど、試してみたら思いの外良かった

746:login:Penguin
14/10/06 19:18:06.00 lkHPONQc
まだ時間延伸に対応してないしバグで録画に失敗するようじゃ話にならないけどね

747:login:Penguin
14/10/06 22:36:03.46 ExHJ9qRs
ffplayというかavplayで

〉avplay version 0.8.16-4:0.8.16-0ubuntu0.12.04.1, Copyright (c) 2003-2014 the Libav developers
〉 built on Sep 16 2014 18:33:49 with gcc 4.6.3
〉【新】ガンダムGのレコンギスタ 初回1時間スペシャル #01,#02【字】_10040235_3630.ts: Invalid data found when processing input

というエラーが出るってことは、致命的に録画失敗しているよな?
これどういう状況なんだろう?
ほか、いくつか失敗しているけど10/4深夜以前には無かった。


少し前にB-CASカードリーダーのエラーでワンセグしか再生できなくて
アンテナ線は点検したつもり
今回のものはb25コマンドでも
processing: 0.21% error - failed on ARIB_STD_B25::put() : code=-4
と出るんだけど、それが意味するものはわかんないや。

748:login:Penguin
14/10/06 23:32:48.80 w9ms6akS
>>747
ウチも似た現象が最近起きている。
pcscd関連アプデしてからおかしくなったような。

749:login:Penguin
14/10/06 23:49:16.13 ecIyvYSh
>>747

b25_decode failedと言われるとき

code=-4の場合:データが壊れている(=信号が弱すぎ)ためにデコードできない可能性あり。
checksignalして23db程度しか出ていない場合、配線やアンテナを見直す。

URLリンク(archive.side2.net)

750:login:Penguin
14/10/07 00:12:45.22 i6osU41f
>>747
libarib25に>>649のパッチ当ててみては?

751:login:Penguin
14/10/07 00:15:55.86 DdqDG/NF
Linuxで録画するのも楽じゃないな…

752:747
14/10/07 12:10:19.46 rELLa1S8
いや、シグナルはかなり弱いんだよね。
2年くらいの間、普通に録画できていたんだけど

安アパートのアンテナ設備自体が老朽化しているみたいで
数値は忘れたけど、20db切っている。

結局前回のトラブルは、B-CASカードのほうで
シグナルは弱いまま、また2ヶ月くらい普通に動いていた。


libarib25のパッチは、PC組み直すつもりでいたから
2枚挿しにするつもりで買ってあったPT2で
新規組んでから検討してみます。

B-CASカード読めない状態で録画したtsを
Atom330でb25コマンドで処理すると、すげぇ時間かかんの (;_;)
最低J1900狙いで、秋葉原行ってくる

空きの多いアパートだから
大家もアンテナ改修とか渋るんだろうしなぁ…

753:login:Penguin
14/10/07 13:01:02.50 osxhI4Fg
UAH810でも買いなさいな

754:login:Penguin
14/10/07 15:25:49.53 WGAZdd+h
空きが多いなら>>747は貴重な店子だろ
そこで大家が渋るなら「こんな糞アパート出ていく」って言えば折れるよ

755:login:Penguin
14/10/07 16:21:17.98 7fUFFLhc
「出てって欲しい 高く取れる物件に新築したい」
って思ってるかも

756:login:Penguin
14/10/07 17:48:43.90 2Al9nOX/
アンテナ線が余ってるならそれでスリーブアンテナを作って試してみるといいよ

757:login:Penguin
14/10/07 21:02:59.66 2ls49AqY
オープンソースのマルチメディアフレームワーク「FFmpeg 2.0」が公開 - 窓の杜
URLリンク(www.forest.impress.co.jp)

ここ読むとGPUでのエンコードって可能なの??

758:login:Penguin
14/10/08 11:59:21.66 zlF5Ypkm
支那厨って使いやすいのかな

759:login:Penguin
14/10/08 12:22:56.37 XhFwurAT
録画中心だったらchinachuが一番お勧め。リアルタイム視聴はまだ安定してないけど、ネットワーク越しにwinでもmacでもlinuxでも視聴OKなのもよい。
つか、使ってみりゃいいじゃん。フリーなんだし

760:login:Penguin
14/10/08 12:26:30.15 kPI/r1y4
アニメ特化ならfoltiaAL>Chinachu
キーワード特化ならChinach>foltiaAL
番組表からならChinachu>=epgrec>foltiaAL

ってのが俺の独断と偏見

761:login:Penguin
14/10/09 17:33:06.62 d4GZg+go
chinachu入れてみてまだ数日なんだけど、現時点ではiOSでのライブ視聴が
できないのと、作成したルールから予約リストへの反映がなんか直感的じゃ
ないのがイマイチ。

前者はともかくとして、後者は、結局作ったルールでどの番組にマッチして
どういうスケジュールで録画されるのかがすぐにわからなくて辛い。
それとも使い方が間違ってるんだろうか…?

762:login:Penguin
14/10/09 18:01:10.89 d4GZg+go
chinachu入れてみてまだ数日なんだけど、現時点ではiOSでのライブ視聴が
できないのと、作成したルールから予約リストへの反映がなんか直感的じゃ
ないのがイマイチ。

前者はともかくとして、後者は、結局作ったルールでどの番組にマッチして
どういうスケジュールで録画されるのかがすぐにわからなくて辛い。
それとも使い方が間違ってるんだろうか…?

763:login:Penguin
14/10/09 19:00:21.53 NMWxAa6p
EPGから番組選んで右クリックからルールの作成、が分かりやすいかも。ルールからスケジューラーの実行で予約済みに出てくるんじゃ分かりにくい?
ルール関連で不満があるというのは伝わるけど、イマイチ具体的な不満点が分からん。俺の理解力が足りないんだと思うが

764:login:Penguin
14/10/09 19:33:00.58 UO1PUdqY
ルールを確認する為に、いちいちいスケジューラを実行しないといかんのが面倒ではあるね。
「このルールで検索」ってのが有れば助かるんだけどな。

765:login:Penguin
14/10/09 19:41:20.32 NMWxAa6p
細かいことを気にしない俺は新しいルール作っても面倒なんでスケジューラーの実行もしないでほっとく
んで気がつくとちゃんと予約されてるw
スケジューラー実行のタイミングとかはgithubにある公式のwiki見ればあるんじゃね

766:login:Penguin
14/10/10 13:10:44.63 GZeqRxe1
うわ、書き込みが反映されないからもっかい書いたら二重カキコになってもーた。

なんかおかしいと思って調べてみたら、いつの間にかスケジューラのPIDファイルが
残ったままだった。そりゃ何回クリックしてもスケジューラは実行されないわなorz

ルール作成時のチャンネル名も、局名じゃなくてSIDベースになっててわかりにくい。

今はTvRockを家族と共用してるんだけど、なんとなくchinachuへ移行するのは
家族にとってハードル高そうな感じがするかな。

って、こんな所で文句言ってないで、コード書いてpull request投げろって
話なんだろうけど。

767:login:Penguin
14/10/10 20:16:36.96 aSbaMf5l
うわ、書き込みが反映されないからもっかい書いたら二重カキコになってもーた。

なんかおかしいと思って調べてみたら、いつの間にかスケジューラのPIDファイルが
残ったままだった。そりゃ何回クリックしてもスケジューラは実行されないわなorz

ルール作成時のチャンネル名も、局名じゃなくてSIDベースになっててわかりにくい。

今はTvRockを家族と共用してるんだけど、なんとなくchinachuへ移行するのは
家族にとってハードル高そうな感じがするかな。

って、こんな所で文句言ってないで、コード書いてpull request投げろって
話なんだろうけど。

768:login:Penguin
14/10/10 20:37:37.73 Zg5iM30z
時間差二重投稿
これは流行る悪寒

769:login:Penguin
14/10/10 20:38:22.41 Zg5iM30z
別人かも?

770:login:Penguin
14/10/12 16:08:38.95 sZHmv5Uw
systemdにしてから、recpt1が上手く行かなくなった。デコードされずに生ストリームで録画するようになった。
挙動を調べたら、pcscdの起動が完了する前にB-CASカードを取ろうとしてlibarib25がこけて、生ストリーム吐くモードに移行してた。

しょうがないから、pcscd起動させてからカードが刺さってるかどうか調べるまで一秒待たせてみた。
パッチ↓
動作保証はしない(`・ω・´)
-------------
--- b_cas_card.c.orig 2014-10-12 15:46:34.290926326 +0900
+++ b_cas_card.c 2014-10-12 15:56:53.274764391 +0900
@@ -3,6 +3,7 @@

#include <stdlib.h>
#include <string.h>
+#include <unistd.h>

#include <math.h>

@@ -153,7 +154,8 @@
if(ret != SCARD_S_SUCCESS){
return B_CAS_CARD_ERROR_NO_SMART_CARD_READER;
}
-
+ sleep(1); // Dirty hack.
+
ret = SCardListReaders(prv->mng, NULL, NULL, &amp;len);
if(ret != SCARD_S_SUCCESS){
return B_CAS_CARD_ERROR_NO_SMART_CARD_READER;

771:login:Penguin
14/10/12 23:17:41.47 O788uume
recpt1 たまにこのエラーになるんでかど、直す方法ってある?

b25->put failed
b25_decode failed (code=-5). fall back to encrypted recording.

772:いぼっ
14/10/13 03:41:16.62 qKeJy4Y4
男嫌いでオタクという設定にすれば食いつくんだろスレ
スレリンク(voice板)l50

お前らのんきにイベント行ってる場合じゃないぜ
身を守りたかったら99要チェック
あ?何だ109は?補足情報120 犯罪暴露か?131、132、135、136
こいつなんでこんなに書かれてるんだ?
160、161どうしたもんかね?本人じゃね? 34歳だと?236
おっと良妻賢母の学校か~244 ,247そーなのか~ほー
254このマットてのはグラウンドの住宅に面した金網に脈絡なく汚ねえ立てかけ方されてるやつじゃね?取りに来たやつ悪い奴ってことか。
256,304,326,339ほー 352,355,357マジかよ、こりゃ許せねーなー変○者?
371,373ストー○ーでもあるのか、ほー375,378,406,475ほー435,456,474人事の人大丈夫?

773:login:Penguin
14/10/13 12:32:50.11 /xMjmERj
スレリンク(avi板)
のスレの542さんに、ドライバモジュールのTsSplitterの問題点をレポートしていただきました
放送データの運用方法として、(おそらくレアではあるものの)仕様的には許されるパターンを見落としていたのが原因です
このパターンに遭遇すると、最悪ECM等を削除してしまう事になるので、コンテンツを復号できなくなったりします
(特に1サービス1チャンネルモードで使用している方は)お手数ですが更新お願いします(;´Д`)
URLリンク(github.com)

774:login:Penguin
14/10/13 22:43:59.14 S3wvP1yL
>>771
libarib25に>>770のパッチを当ててビルドしなおして試してみて。

775:login:Penguin
14/10/14 02:10:35.90 +6XljqJ6
>>774
どっちかと言うと>>750だと思う

776:login:Penguin
14/10/14 17:54:53.79 jI+B29yu
recpt1でEMM処理が上手く行った試しがないんだけど、みんな出来てんの?
ちなみにUbuntu12.04です。

777:login:Penguin
14/10/15 01:03:12.49 N7PyqqvM
うまく行ってるかどうかしらんけど、EMMオプションを使って番組表取得するようにdorecord.shを変えたらカードのデータ更新がされるようになった
と思ってる

778:login:Penguin
14/10/19 14:22:26.48 dpigh9zz
chinachu で bcas ソフト使えますか

779:login:Penguin
14/10/20 04:47:00.38 IIqY1fSI
チョット何イッテルカ分カラナイデース

780:login:Penguin
14/10/20 15:07:06.52 dJcUh1zA
たった今chinachu導入してみたけど
スケジューラーって手動でポチポチしてやらないとなんだな
毎週ポチポチは面倒だしcronとかで何とかして世話してみよう

781:login:Penguin
14/10/20 15:11:33.24 IIqY1fSI
EPGから「ルールの作成」

782:login:Penguin
14/10/20 15:34:41.30 IiDJJ9DH
主な機能

・EPGドリブン ←

783:login:Penguin
14/10/20 15:38:59.37 dJcUh1zA
これルール作った後定期的にスケジューラーの実行とか押してやらなくていいのか?
なにか重大な勘違いをしていたな

784:login:Penguin
14/10/20 15:45:09.52 IIqY1fSI
>>783
>>765

785:login:Penguin
14/10/22 22:00:16.90 wvYesKch
ubuntu 14.04 64bit kernel 3.13.0-37 で、pt1_drvのinsmodに失敗する様です。

786:login:Penguin
14/10/23 13:18:09.32 yIjftr4D
dvb版のドライバ無効化してないだけなんじゃないの

787:login:Penguin
14/10/23 14:24:08.42 cn1f0HiU
linuxの録画環境は統一感というか整然としてないな

788:login:Penguin
14/10/23 20:10:05.05 IEjuheIx
recpt1ってBSの有料放送受信するのになんかしてやんないとなのか?
お金は払ってるが映らね・・・

789:login:Penguin
14/10/23 20:16:44.18 zNHm17Ho
契約してBCASカードはどうしてる?
pcsc_scanしたらなんて出る?

790:login:Penguin
14/10/23 20:24:52.33 IEjuheIx
BCASは録画機のカードリーダーに刺しっぱなしです
pcsc_scanは
Japanese Chijou Digital B-CAS Card (pay TV)
とか出てるから動いている・・・と思う

791:login:Penguin
14/10/23 20:28:02.42 zNHm17Ho
契約済みの有料chじゃなく、NHKBSでもダメ?

792:login:Penguin
14/10/23 20:32:00.84 IEjuheIx
NHKはBS1もBSプレミアム、あとその他無料放送などは見れてます

793:login:Penguin
14/10/23 20:37:13.57 zNHm17Ho
それだと、有料チャンネルの契約済み信号をbcasカードが受け取ってないだけ可能性も(契約手続きし終わったばかりなら)
いつ契約手続きした? テレビでは有料チャンネルも視聴できてた?

794:login:Penguin
14/10/23 20:43:31.35 IEjuheIx
手続自体は二年前くらいだったかと
テレビでは見れてました

契約済み信号を受け取るってことは、映らなくても二・三時間くらい受信させてやればいいのかな

795:login:Penguin
14/10/23 20:47:58.56 zNHm17Ho
2年前から視聴できてたなら問題ないはず
何だろう?

796:login:Penguin
14/10/23 20:51:14.65 RFH5Yplo
>BCASは録画機のカードリーダーに刺しっぱなしです

linuxに挿してるカードが別物(非契約)というオチか?

797:login:Penguin
14/10/23 20:59:27.48 IEjuheIx
不安になってカード番号調べたけど
どうやら間違ったものを刺してる訳でもないみたいです

とりあえず
recpt1 --b25 BS07_1 10800 test.ts --device /dev/pt3video1
とかやって放置してみます

798:login:Penguin
14/10/23 21:01:23.26 RFH5Yplo
--EMMオプションも付けないと、契約情報の更新されないので注意ね。

799:login:Penguin
14/10/23 21:32:53.62 1mp8HuSP
何ヶ月も視聴してないと、EMM信号が送られなくなるようだぞ。
契約chに電話して信号送ってもらわないと。

800:login:Penguin
14/10/23 21:37:13.64 FceHZWDS
一晩テレビに刺しとけば受信してまた使えるようになるよ

801:login:Penguin
14/10/23 21:39:14.84 FceHZWDS
なので番組表作成のための受信時にはemmオプションあり、通常の録画時はなしとなるようにdo-record.shを変えて使ってますよ。

802:login:Penguin
14/10/23 22:08:28.20 IEjuheIx
今度からemmオプションつけっぱなしにしようかと思ったんですが、
使い分けるってことはつけっぱだとまずいんですか?

803:login:Penguin
14/10/23 22:19:11.09 RFH5Yplo
使い分けは、録画中のCAS負荷をなるべく抑えたいという意図かと。
個人的には常時ONでもよさそうな気もしますが。
使い分けのほうが安心感はあります。

804:login:Penguin
14/10/24 17:07:46.71 2weC2ZFV
EMMオプションつけて寝てる間にrecpt1走らせっぱなしにしてみたけど映らなかった
どうしたものか

面倒だが >>799の言うとおり電話するしか無いのだろうか
尚元々BCASが刺さっていたテレビはあの世に旅立った模様

805:login:Penguin
14/10/24 18:44:08.47 Lt3B+GxY
>>804
どう走らせたのか気になるが聞かないでおく

806:login:Penguin
14/10/24 18:45:38.48 xY94CKOw
局側はそう言うの慣れてると思うので、電話すればすぐ流れてくるようになると思いますよ

ついでに言うと、libarib25はEMMを実際にカードに投げる前にそれが自分のカード宛ての物なのかを確認するので、
CAS処理でのカードの負荷増になるのは、自カード宛てのEMMが来た場合のみです
よほどすごい使い方(あるいは意図して無視したいとか)でない限りは、EMM処理は常時onでも大丈夫だと思いますよ
EMMの周期って(局や時期によっても違うと思いますが)結構長い事もあるので、EPG取得程度の時間じゃ、
ハズレ引き続けると全然更新されない可能性もありますしね

807:login:Penguin
14/10/24 20:51:02.65 Gl/OlUSi
今過去ログ読み終わった。
結構開発進んでるのねぇ・・・・
昔Windowsでは録画鯖やってたけど(PT3*3枚で)
Linuxで始めるならどれがいいんだろうか?
(OSはCentOS6.5辺りで検討中)

シロート向けのサイトが有れば嬉しいんだけど。

808:login:Penguin
14/10/24 21:53:11.71 K0OFO3hX
どういう録画鯖にしたいのかにもよるしそれだけだと何とも
そもそもどうしてLinuxで始める必要があるの?

809:login:Penguin
14/10/24 21:59:58.34 NTHjz3x1
chinachuあたりから始めてみればいいんじゃね
foltiaの有償版のぞけば基本的にフリーなんだし

810:login:Penguin
14/10/25 01:48:41.79 OW5De62i
Chinachu作者のTwitterに延長対応したって書いてあるけど、まじ?

811:login:Penguin
14/10/25 04:06:43.51 9ccRecWp
これやね
URLリンク(github.com)

812:login:Penguin
14/10/25 04:43:05.17 cs9XIo/v
>>811
録画中の延長を訂正できるんじゃなくて
前の番組から玉突きくらった場合の訂正ができるだけみたい?
「延長対応」といえるのかはともかくアニメに照準合わせてるChinachu的にはこれで十分鴨

813:login:Penguin
14/10/25 05:03:36.14 L1hCw8EY
まだepgdumpを使っているからNHKで失敗する可能性が高い

814:login:Penguin
14/10/25 10:31:00.33 RrxuRbOl
もう一回受信放置してやったら映った
ありがたや

815:login:Penguin
14/10/25 13:49:40.91 nSkD2CqE
只今絶賛構築中。
やっとts出来るトコまで来た。
手順まとめてるけど需要ある?

816:login:Penguin
14/10/25 14:42:18.83 YdfcDNN7
>>813
epgdumpの他っていうとtsParserかな?
epgdumpより情報が多く取れるからchinachuに使えないかなと思ってたところです

817:login:Penguin
14/10/25 14:59:26.25 L1hCw8EY
>>817
延長時のEITの挙動を理解してそれに対応した処理が無ければなに使っても同じ

818:login:Penguin
14/10/25 15:09:20.23 W56wjqp/
>>815
ある!ぜひ!

819:login:Penguin
14/10/25 17:32:14.05 1ocDiSld
Partedで間違えてOS飛ばしたバカです…orz
Blog書きながらやってたのが幸いで
再度構築なう。

まぁ記事の間違い直しが出来たからいいか

820:login:Penguin
14/10/26 14:58:26.69 17p2Sl+A
>>817
いったんファイルに落としてるようじゃ…てことですかね
NHKはEITの挙動が他と違うの?

821:login:Penguin
14/10/26 16:43:06.47 aHeU8u4B
>>820
>NHKはEITの挙動が他と違うの?
そのとうり
臨機応変な番組編成をしているので arib仕様をフル活用している

EITには「今・次」の「全体」の2種類があって通常は内容が同期しているんだが
NHKは、延長などで番組編成を変更すると「今・次」だけ更新して「全体」の方は定期更新時まで放置
特に現番組が延長してると「今・次」の内容も「現放送終了時間未定・次番組そのものが未定」になってしまう
民放の場合は、延長時には現放送の終了時間に仮値をいれて「今・次」と一緒に「全体」も随時更新しているので
利用側は対応が楽チン

他に酷いのだと「変更がある場合、番組開始30秒前にEITを更新しなければいけない」という規定があるが
「間に合わなければその限りではない」というのもありそれを実践してくる

epgdumpがだめなのは EITの「今・次」と「全体」をマージして出力している関係でNHKの番組編成変更に対応するのに
必要な情報が欠落してるから
これは他のパーサーにも当てはまるかも

822:login:Penguin
14/10/26 17:34:20.44 i4EFvmX7
つまり新規にEIT取得アプリを作らなければならないって事?

823:login:Penguin
14/10/26 19:42:18.41 aHeU8u4B
「今・次」と「全体」を分離すればいいだけなので既存のものを改造すればいいよ
問題は分離した形でどう出力するかだけど
理想は、chinachu薄潮みたいにパーサーをフロントエンドに内蔵した上で
EITを常時監視するのがいいんだけどね

あと epgdumpの派生版で対応してるのがあるからそれを使うのも手
ただし出力内容やフォーマットが違ったりするので入れ替えてOKでは済まない

はなし変わるけど chinachuの中の人、NHKは他と挙動が違うの理解してるんかな・・・

824:login:Penguin
14/10/26 20:06:26.63 ggFL0eD+
UTF-8なら番組情報のパーサーを作ろうかなと思えるけど、なんか特殊な文字コード使ってるよね
TSのヘッダを触るのは楽だけど文字コードの変換が面倒で挫折した覚えがある

825:login:Penguin
14/10/26 22:37:52.51 st1hdJhi
>>824
その辺はライブラリ使えば良いだけだよ
aribb24なりTVTestのCAribStringなり(ちなみにepgdumpも元はCAribString)

826:login:Penguin
14/10/26 23:06:54.63 quJ4oihX
んー
色々ハマったけど、出来たような気がする。
早速ルール作成と手動予約。
無料な日もあるのね<某チャンネル

827:820
14/10/27 02:46:43.70 lOUc8dv7
>>823
詳しい解説ありがとうございます
よければchinachu薄潮とepgdump派生版、教えて欲しいです
ググったけど分からなかった…

民生品の録画機とかはEIT常時監視してるんですかね
地上波とBSのチューナーを常に1つ稼働させて、録画するときもそこからの
ストリームで録る、と(チューナー占有しない)
常時じゃなくても予約の時間帯は頑張るようにしたいですね…
四月は君の嘘の初回が世界体操の延長で5分しか録れてなくて、
録画責任者の俺は嫁から叩かれました
なんとかしたい…


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch