yngt78 / recfriio Goto Github PK
View Code? Open in Web Editor NEWThis project forked from stz2012/recfriio
HDUSシリーズ向けの個人fork
This project forked from stz2012/recfriio
HDUSシリーズ向けの個人fork
【recfriio r5 + α(STZ版)】 Linux用Friio録画プログラム(黒凡/白凡共通)です。 こちらは亜流版ですのでご注意下さい。 make でビルドした後、 ./recfriio 録画するチャンネル 録画秒数 出力先ファイル名 で録画されます。 チャンネル番号は以下の通りです。引数なしで実行すると同じリストが出力されます。 13 - 62 : UHF13 - UHF62 K13 - K63 : CATV13 - CATV63 B1 ,BS01_0: BS朝日 C1 ,CS2 : ND2 110CS B2 ,BS01_1: BS-TBS C2 ,CS4 : ND4 110CS B3 ,BS03_0: WOWOWプライム C3 ,CS6 : ND6 110CS B4 ,BS03_1: BSジャパン C4 ,CS8 : ND8 110CS B5 ,BS05_0: WOWOWライブ C5 ,CS10: ND10 110CS B6 ,BS05_1: WOWOWシネマ C6 ,CS12: ND12 110CS B7 ,BS07_0: スターチャンネル2/3 C7 ,CS14: ND14 110CS B8 ,BS07_1: BSアニマックス C8 ,CS16: ND16 110CS B9 ,BS07_2: ディズニーチャンネル C9 ,CS18: ND18 110CS B10,BS09_0: BS11 C10,CS20: ND20 110CS B11,BS09_1: スターチャンネル1 C11,CS22: ND22 110CS B12,BS09_2: TwellV C12,CS24: ND24 110CS B13,BS11_0: FOX bs238 B14,BS11_1: BSスカパー! B15,BS11_2: 放送大学 B16,BS13_0: BS日テレ B17,BS13_1: BSフジ B18,BS15_0: NHK BS1 B19,BS15_1: NHK BSプレミアム B20,BS17_0: 地デジ難視聴1(NHK/NHK-E/CX) B21,BS17_1: 地デジ難視聴2(NTV/TBS/EX/TX) B22,BS19_0: グリーンチャンネル B23,BS19_1: J SPORTS 1 B24,BS19_2: J SPORTS 2 B25,BS21_0: IMAGICA BS B26,BS21_1: J SPORTS 3 B27,BS21_2: J SPORTS 4 B28,BS23_0: BS釣りビジョン B29,BS23_1: 日本映画専門チャンネル B30,BS23_2: D-Life 録画秒数に'-'を指定すると^C等でinterruptされるまで録画します。 出力先ファイル名に'-'を指定すると標準出力にTSを出力します。その場合ログは標準エラー出力に出力されます。 Makefile中の B25 = -DB25 をコメントアウトせずにビルドした場合 まるも氏のARIB STD-B25 仕様確認テストプログラムがリンクされ、B25デコード機能が使用可能になります。 オプション --b25 を指定すると、録画時にB25デコードを行います。 --round N --strip --EMM 等のオプションがあり、ARIB STD-B25 仕様確認テストプログラムと同じように動作します。 --b25オプションを使用しない場合、録画ファイルはMulti2で暗号化された状態で出力されるのでb25等でデコードして下さい。 Makefile中の HDUS = -DHDUS をコメントアウトせずにビルドした場合 MonsterTV HDUS/HDP対応版としてコンパイルされます。 Makefile中の UDP = -DUDP をコメントアウトせずにビルドした場合 UDP送信対応版としてコンパイルされます。 Makefile中の HTTP = -DHTTP をコメントアウトせずにビルドした場合 HTTPサーバ機能搭載版としてコンパイルされます。 recfriio r3 からFriioの初期化時に黒凡/白凡判定を行なうようになった為、flockでの排他の為にファイルを使用します。 デフォルトでは/var/lock/friiodetectが使用されますが、--lockfile ファイル名 で変更が可能です。 変更する場合、全てのrecfriioが同じロックファイルを使用するように注意して下さい。 排他用ファイルに書き込み権限が必要なので、例えばFriioを使用するユーザが全てvideoグループに属している場合、 -rwxrwxr-x 1 mythtv video 0 2008-09-19 06:33 /var/lock/friiodetect のように事前にファイルを作成しておいて下さい。 インターフェースが適当ですが、問題がある場合はソースを修正して下さい。 /dev/bus/usb か、/proc/bus/usb に usbfs があることが必要です。 /dev/bus/usbの存在を確認し、なければ/proc/bus/usbを見に行きます。 Friioに対応するファイルに書き込み権限が必要です。 udevを使用している場合は、91-permissions.rulesが自分の使用している/etc/udev/rules.d/91-permissions.rulesなので 参考にしてudevの設定ファイルを修正して下さい。ディストリビューションによりファイル名等は変わると思います。 下記が追加した部分です。実行ユーザがvideoグループに属している事を前提に書いています。 ==== # friio SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", \ ATTRS{idVendor}=="7a69", ATTRS{idProduct}=="0001", \ MODE="0664", GROUP="video" ==== 必要な物: g++でコンパイル出来る環境 boostライブラリ(http://www.boost.org/) boost::threadとboost::filesystemを使用しています。 GLib2.0 GTK+のライブラリを入れれば入るはずです。 既知の問題: signalの処理を全く入れていない。 LEDの色が変わったままになること以外は問題ないはず。 => TS出力中に SIGTERM, SIGINT, SIGPIPE を受け取った場合録画を終了するようにしました。 USBの通信がタイムアウトした場合の処理を行っていない。 => 多少リカバリーを行うようにしました。 初期化時にタイムアウトした場合は初期化を最初からやり直します。 バルク転送時のタイムアウトは無視します。実装方法に多少問題があり、 タイムアウトが大量に発生した場合対応できません。(バッファオーバーフローになります。) 終了時ににタイムアウトした場合無視して正常終了します。LEDの色が元に戻りません。 boost::threadのライブラリ名が-mt付きの場合と-mt無しの場合がある。 => コンパイルエラーが起こった場合、Makefile内にある-lboost_thread-mtの-mtを外して下さい。 変更点: r5: ロックファイル作成時の権限を全ユーザが書き込み可能なように変更。 エラー防止の為読み込むヘッダファイルを追加。 FIFOバッファ長を10秒から20秒分に変更。 デバイスオープン時のエラーハンドリングの改善。 recfriio側でのsetinterface呼び出し(最近のカーネルでrecfriioが動かなくなっていた事への対処) ライセンスの整理。 r4: --b25を使用した録画中にB25でエラーが発生した場合に B25なしで録画を継続するようにしました。 r3: recfriio/recfriiobsの共通化を行いました。 黒凡白凡判定をカードリーダから凡初期化時に変更しました。 これにより boost::regexとboost::formatがいらなくなりました。 内部を整理し、クラス化しました。 b25デコード機能を追加しました。 recfriiobsのURB送信間隔/最大送信数を強化しました。 タイムアウト処理を強化し、Broken Pipe等の場合もリトライを行うようにしました。 白凡用初期化シーケンスをBonDriver Ver.1.30の物と入れ替えました。 r2以前: 適当すぎた名称を直しました。work -> recfriio タイムアウト処理を入れました。詳細は既知の問題を参照。 録画秒数の計測開始位置を直しました。初期化に時間がかかった場合でも終了時刻が変わらなくなりました。 ライセンス: このプログラムはBonDriver(Meru customize edition) http://2sen.dip.jp:81/cgi-bin/friioup/source/up0239.zip 及び BonDriver Ver.1.20m http://2sen.dip.jp:81/cgi-bin/friioup/source/up0451.zip BonDriver Ver.1.20m 黒チャンネル変更シーケンス修正差分2 http://2sen.dip.jp:81/cgi-bin/friioup/source/up0456.zip BonDriver Ver.1.30 http://2sen.dip.jp/friio/files/BonDriver/BonDriver0130.zip からの派生物になります。 よって上記ソースからの派生部分については大元のBonDriverのライセンスである、 >5.ライセンスについて > ・特に著作権は主張しませんが、下記運用に従うようにお願いします。 > > (1)「BonDriver.dll」をオリジナルのままアプリケーションに付属して配布する場合。 > > アプリケーションのバージョン情報及びドキュメントに著作権表示は必要ありません。 > 「拡張ツール中の人」もしくは「http://2sen.dip.jp/friio/」の記載をしても構いませんが任意です。 > > (2)ソースコードを流用しアプリケーションに組み込むもしくはライブラリとして再構成して配布する場合。 > > 著作権表示については(1)に従いますが、必ず最低でも当該処理のソースコードを公開してください。 が適用されます。 上記以外の部分(おおむねUSBのコマンドに関わらない部分)については Public Domain として提供します。 また、ARIB STD-B25 仕様確認テストプログラムをリンクした場合(デフォルトでリンクします)、 BonDriverのライセンスに加えてARIB STD-B25 仕様確認テストプログラムのライセンスである > ・ソースコードを利用したことによって、特許上のトラブルが発生しても > 茂木 和洋は責任を負わない > ・ソースコードを利用したことによって、プログラムに問題が発生しても > 茂木 和洋は責任を負わない > > 上記 2 条件に同意して作成された二次的著作物に対して、茂木 和洋は > 原著作者に与えられる諸権利を行使しない が適用されます。 ソース中、.traceの付いたファイルを.trace無しのファイル名に変更してビルドする事により エラー発生時のスタックトレース機能が有効になります。 このコードは http://0xcc.net/blog/archives/000073.html からの派生物となります。 ビルドにはlibbfd(binutils-dev)が必要になります。 その他: このプログラムはAS-ISで提供されます。なにか問題が起こっても責任は持てません。 Special Thanks: ・拡張ツール中の人 ・◆N/E9PqspSk / Clworld氏 ・ARIB(資料の無料ダウンロードに対して) ・2chの「Linuxでfriio」スレッドの皆様 ・2chの「Linuxでテレビ総合」スレッドの皆様 動作確認環境: CentOS 6.3 GNU/Linux Linux 2.6.32 SMP i686
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.