UbuntuでのQSVエンコードは他の記事でも何度か扱ってきたので、繰り返しの部分も多いが復習も兼ねてまとめておく。まずドライバが2種類あり、Intel公式のIntel Media Server Studioのものを使うか、OSSのmedia-driverを使うか。前者はkernel patchの形を取るためkernelが限定されてしまう。後者はその必要はないが、エンコードの性能が倍くらい劣化する。どちらを取るかは人それぞれだが硬直的なシステムは歪みが歪みを招き続けるので、性能が劣化してでも後者を選択する。ドライバの構築方法は以下。 ... 続きを読む
Tag Archives: 録画サーバ
Ubuntu 18.04 + mirakurun + EPGStation 構築 設定編
前回の流れからQSVのffmpegセットアップを続けようかと思ってたんだけど、よくよく思い返すとmirakurunやEPGStationの設定でも多少のはまりがあったので、その辺りを先にまとめておく。QSVのffmpegやcomskip等は、録画サーバにおいてオプション的な位置付けで、あってもなくても録画サーバそのものは動作する訳だし。mirakurunとEPGStationのインストールが終わった段階で、両者の設定を済ませて、軽く録画処理を動かしておく方が切り分け的にも安全。... 続きを読む
Ubuntu 18.04 + mirakurun + EPGStation 構築 インストール編
録画サーバの構築に手を出し始めたのが3年前。何かしら致命的な問題がある訳ではないものの、サーバを作り変える度に何となく録画サーバの構成も変更してきた。今回はサーバがCentOSからUbuntuになるということで、録画サーバもせっかくなので大きく変更。epgrec UNAからmirakurun+EPGStationに変えてみるつもり。一時期epgrec+mirakurunも試してみたが、自分で修正したコードもつぎはぎだらけだし、UIと実際の振る舞いが乖離してしまっている部分もあって、そろそろ限界に近かった。... 続きを読む
CentOS7 GPUマイニング QSV + GeForce 共存編 (録画サーバ兼用)
前回、初めてのマイニングリグを構築してみた。録画サーバで使うQSV機能に実績のあるZ170チップのマザーボードを選択したので、早速kickstartでCentOS7をインストールしてみる。kickstartの中で、自動でQSVパッチ済みのkernel4.4がインストールされる形になる。Z270チップのマザーボードだとkernel選択画面のあと、何の表示もないまま動作を停止してしまうという事態に陥った。こんな状態なので切り分けもほぼ出来ていないんだけど、他に思い当たるところもなく当たって砕けろ。... 続きを読む
CentOS7 GPUマイニング リグ構築編 (録画サーバ兼用)
前回、ethereum掘ってみてGeForceもGTX1080だけではダメだとわかった。プロセス回してるだけで儲かることも充分わかったので、GPUを一気に水平拡張してみる。標準的なマザーボードの場合、PCIeポートは多くても7個なので、GPU6台まで増やしてみる。残りの1個はチューナーボードに使うからねw そして現在使っている電源ユニットはCorsairのRM1000xなので、全てGTX1080で動かすほどの電源容量はない。既に稼働中のZotac GTX1080 2台と合わせても余裕が出るよう、残りはGTX1070にする。既存の検証機でも2GPUは動かせるのでGTX1070を6台調達する。... 続きを読む
録画サーバ構築 NVENCエンコード Ubuntu 16.04 編
ひっさびさのNVENC検証。ブログを見返すと、1年以上も前に調べて以来。以前はハードウェアエンコードくらいにしかGPUを使う用途がなかったので、エンコード品質がお粗末なことがわかった時点で処分してしまった。GTX750 tiでの検証だった。今回は機械学習やマイニングでも使ってみるつもりなので、GPUにかける予算は奮発するつもり。筐体の大きさもGPUのサイズにあわすので、その点における制約もない。他の用途での利用も考慮してGTX1080にする予定。中でも評判のよさそうなZotac GeForce GTX 1080 AMP Editionに決定した。... 続きを読む
録画サーバ構築 QSVエンコード Ubuntu 16.04 失敗編
構築中のホストはGPUサーバとして使う予定なんだけど、自宅用のサーバで専用ホストなんて立てる余裕はないから、今までCentOSが担ってきた録画サーバとしての機能も移植する予定。録画サーバで問題になるのがハードウェアエンコード。特にQSVエンコードの設定が一番厄介。GPUサーバなんで当然ビデオカードは刺すつもりだから、QSVエンコードでなくてNVENCを使うという手もある。はっきり言ってNVENCの方が設定そのものは楽だし、最新のIntel Media Server Studio 2017 R3でもGeneric Installの対象はubuntu 14.04のままだし。... 続きを読む
録画サーバ構築 QSVエンコード CentOS7.3編
幾つかのハードウェアエンコードを試してきたんだけど、やはりIntelのQSVエンコードが比較にならないくらい美しい。VAAPIを使ってOSの自由度を上げることも考えたんだけど、品質を犠牲にするのは忍びない。最新のIntel Media Server StudioがCentOS7.2をGold OSとしているため、OSの選択が硬直化してしまうことがデメリット。一応、Generic Installという手順もあり、それを使えばOSの選択肢は自由になるはずなので、今回はこのGeneric Install手順を確立したい。... 続きを読む
録画サーバ構築 QSVエンコード VAAPI編
QSVエンコードを再考する。現在はCentOS7.2でIntel MSS 2017を使ってハードウェアエンコードしている。録画処理時に並行してリアルタイムエンコードをしていると、たまにffmpegがハングしてしまう。ハングしたプロセスは割り込み不可となるため、OS再起動以外に消す方法はない。放置していても問題にはならないんだけど、録画処理を行っているlxcコンテナを再起動できなくなったりするのが不便。割り込み不可のプロセスがいる状態でコンテナを再起動すると、停止も起動もできなくなってしまう。... 続きを読む
mirakurun バッファ 枯渇障害 対策編
epgrec UNA + mirakurunによる録画環境で数日に1回くらい録画が失敗する問題。前回、ログの出力内容からmirakurunのTSFilter.jsで問題が起きているところまでわかった。このクラスはstream.Duplexを継承していて、その継承元にbuffered writeのような処理がある模様。素直に考えれば何らかの事情でwriteが進まず、書き込むべきdataがbufferに貯まっていき、いずれoverflowに至ると。根本対策としてはwriteが滞ることの改善、それが無理ならbufferを大きくして枯渇までの時間を稼ぐ。... 続きを読む
mirakurun バッファ 枯渇障害 調査編
安定運用に入ったepgrecだったが、稀に録画が失敗してしまう。頻度は読めないが、多くても1週間に数回とか。定期性がないので、自分の作業が影響したのかと思ってしまって調査を先延ばしにしていた。録画に失敗すると、rivarunとリアルタイムエンコードしているffmpegのプロセスが残り続けるので、おいおい何かのきっかけで気が付く。特にffmpegのプロセスが厄介で、QSVエンコードを使っているせいか、割り込み不可の待機状態に入ってしまいkillできなくなってしまう。... 続きを読む
録画サーバ構築 epgrec UNA リアルタイム エンコーディング
epgrec UNAをmirakurunと連携させて動かすようにした。細部で仕様が合わないところもあるが、番組更新や予約録画など主要処理が動作するようになったのでよしとする。続いて何とかしたかったのが、トランスコーディング処理。現在のepgrec UNAの作りだと時刻通りにTS録画を行い、その後にトランスコード処理としてmp4へのエンコードとcomskipを使ったチャプター追加を行っている。この録画後の処理が長くてうんざりする。ちょうど番組が終わるから見ようと思ってもしばらく見ることが出来ない。... 続きを読む
録画サーバ構築 epgrec UNA+mirakurun環境 epgrec改造編
epgrec UNA + mirakurun の組み合わせで動作させるために、前回mirakurunの調整を行った。チューナーの利用元はepgrec側に統一したいので、mirakurun側での操作を止めることが目的だった。今回はepgrec側でのチューナー操作をrecpt1からrivarunに変更して、別サーバ上のmirakurunでも録画できるようにする。ちょっとややこしいけど、ローカル2本のチューナーとリモート2本のチューナーを透過的に扱う。具体的にはmirakurunのtuners.ymlを以下のように用意する。... 続きを読む
録画サーバ構築 epgrec UNA+mirakurun環境 mirakurun準備編
2台のサーバに2台のPT3で運用する構成を考える。主目的は冗長化でどちらのサーバでも2並列までは録画できるようにする。また、通常運用時は2台のPT3で4並列まで録画できるようにするのが理想だ。ネットワーク越しに2つのPT3を透過的に扱いたいので、チューナーを抽象化してくれるmirakurunはどうしても導入したい。バックエンドがmirakurunだとすると、普通に考えれば録画管理もchinachuに任すのが順当。実際にchinachuも使ってみたんだけど、UI的にはepgrec UNAの方がわかりやすいような。... 続きを読む
録画サーバ構築 PT3 Rev.A @ LXC
今まで仮想サーバ上で動かそうとしていた録画サーバ。チューナーカードをCentOS7でも問題なく動作するPT3に変更したので、今回はCentOS7上のLXCコンテナとして録画サーバを構築する。コンテナの方がストレージ周りをホストOSと共有しやすく、性能的なオーバーヘッドも少ないのでKVMより扱いやすい。ホストOS上そのものに録画サーバを構築してしまうと、自宅インフラが硬直的になってしまうので避けておく。また、ドライバの関係でノードを分けていたチューナーサーバとエンコードサーバも1つのノードとして統合する。... 続きを読む
録画サーバ構築 PT3 Rev.A vs PX-Q3PE 比較 検証編
前回より構築し始めたPT3環境。デバイスの認識に思った以上に時間をかけてしまったが、今はf痛に動くようになったので録画環境を構築していく。PT3の場合、CentOS7でも動くので最終的にはQSV環境と共存させる形でLXCコンテナでの運用を想定している。しかし、今回は旧PX-Q3PE環境との比較のため、仮想環境上にCentOS6を用意して、そこにMirakurun環境を構築する。PX-Q3PEはrivarun経由で別サーバにDisk I/Oしてもノイズが乗ったので、それがPT3でも再現するかどうかがポイント。... 続きを読む
録画サーバ構築 PT3 Rev.A vs PX-Q3PE 比較 構築編
1年近くPX-Q3PEを使いこなそうとしてきたのだけれど、仮想環境においてDisk I/OあるいはNetwork I/Oに弱いよるノイズを回避できないため、現在の環境での利用を断念。QSVが使えるCentOS7に同居させたいという希望もあって、遂にPT3 Rev.Aへの移行を決意。PX-Q3PEの不安定さがチューナーカードとして一般的なものなのか、製品固有なものなのかを評価してみたくもあったので、ちょうどよい機会。PX-Q3PEが若干値上がりしているので、PT3 Rev.Aの中古価格も悪くないレベルかも。チューナー数半減だけど。... 続きを読む
録画サーバ構築 PX-Q3PE + Mirakurun 検証編
コンセプトが非常に素晴らしいMirakurunサーバ、自分の想定している使い方に合わせていくには多少の改造は必要そうだけど、チューナーサーバと録画サーバを分離してくれたことは非常にありがたい。若干、Chinachuで使うことを前提とした構造に思えるので、もっと汎用的な位置付けのものになってくれると尚嬉しい。それでもPX-Q3PEについて言えば、OSを限定するが故に仮想化したいチューナー側と、仮想サーバが苦手とする録画処理を分離できるのだから、最強のソリューションと言っても過言ではない。... 続きを読む
録画サーバ構築 PX-Q3PE + Mirakurun 導入編
いい加減手離れかなあと思っていた録画サーバ。他にも作りたいものはいっぱいあるのに、何故かもやもやがやまず、ついつい触ってしまう。大抵は頭の中で改善される環境がぼんやり思い浮かんでいるのに、それを具体化できていなかったりするから。という訳で、きちんと頭の中の課題を整理してみる。PX-Q3PEはドライバの関係でCentOS6系に限定されるが、我が家では物理OSにCentOS7を使いたい。しかし、PX-Q3PEとKVM上で使うとI/O時にノイズが入ってしまう。どうすればよいか。... 続きを読む
録画サーバ構築 epgrec UNA トランスコード設定
仮想サーバをやめて、やっと安定的な録画体制が築けた。長らく先送りとなっていた、録画後処理の自動化を進めていく。録画し終わったデータはTSファイルとして記録される。これを保管および視聴しやすいデータに自動で作り変えたい。検証してきた処理はCPUのハードウェアエンコードを使ったQSVエンコードとcomskipを使ったCMチャプター処理。また、カーナビ用の動画データもついでに自動生成するが、こちらは更に小さいデータでよいのと、うちのカーナビがチャプターあると正しく動作しないのでチャプターなしで生成する。後処理としては以下のような流れを想定している。... 続きを読む