無料放送のデスクランブルはうまくいきました。会社のPCにフルセグが映って満足です。画面が綺麗になったお陰か、仕事中についテレビに目が行ってしまい危険です……。
デスクランブルの実装に速度的な工夫は皆無ですが、PCで実行しているので性能は余裕です。CPU利用率はCore i7 1コア12%程度、地上波の全番組(10番組で十分)を同時処理してもお釣りが来ます。
CPU性能とは別の問題があって、3番組以上同時にデスクランブルしようとすると、B-CASカードorカードリーダーが変な動きをして死にます。エラーも何も出ないので、理由が良くわかりません…。
Facebookにて「B-CASカード内のマイコンかバスの性能限界が2番組では?」と教えていただきました。となるとB-CAS 2枚差しに対応したら、4番組まで処理できそうですね。
データ転送は何か考えた方が良さそうです。今は素朴にMPEG2-TSをUDPに載せて垂れ流していますが、ネットワークへの負荷がハンパじゃありません。1番組で20Mbps強、帯域を浪費します。
プログラム番号を指定して、どのPMTを通すか決め、要らないPIDのパケットは捨てるフィルタを入れた方が良さそうです。家ならば、ギガビットイーサネット前提にした力尽くの解決でも良いです。Wi-Fiだと厳しいかな……。
かれこれ1週間くらいで作れましたが、知識ゼロから書き始めたらこんなにうまく行かなかったでしょう。スムーズに進んだ要因は2つかな?
1つ目は昔買ったEarthsoft PT2です。PT2は有志の方によりLinuxドライバが開発されました。お陰でLinux PCがあれば、スクランブル掛かったMPEG2-TSが簡単に取得できました。
会社の開発ボード+先日作ったドライバでもMPEG2-TSは取得できますが、会社から取得したデータを持って帰ってくる方法が無いんですよね。
2つ目は昔のコードです。MULTI2復号/暗号や、デスクランブル処理は、以前Javaで書いたことがあって、そこから流用しました。一番難しい部分を瞬殺できたのは大きかったです。
細かい中身を忘れてたせいなのか、自分で納得して書いたコードだと確信できるのに、どうしてこれで動くのかちょっと悩んだりする、不思議な体験をしました。
いやはや、昔の自分はほぼ他人ですね。
メモ: 技術系の話はFacebookから転記しておくことにした。加筆あり。
< | 2018 | > | ||||
<< | < | 05 | > | >> | ||
日 | 月 | 火 | 水 | 木 | 金 | 土 |
- | - | 1 | 2 | 3 | 4 | 5 |
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 | - | - |
合計:
本日:
管理者: Katsuhiro Suzuki(katsuhiro( a t )katsuster.net)
This is Simple Diary 1.0
Copyright(C) Katsuhiro Suzuki 2006-2023.
Powered by PHP 8.2.15.
using GD bundled (2.1.0 compatible)(png support.)