Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
続・録画サーバーとその後
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Otakan
December 21, 2019
Programming
0
760
続・録画サーバーとその後
Otakan
December 21, 2019
Tweet
Share
More Decks by Otakan
See All by Otakan
録画サーバーとその後
otakan951
1
530
超音波を使ったファイル共有サービスを使ってみた話
otakan951
0
220
Other Decks in Programming
See All in Programming
組織で育むオブザーバビリティ
ryota_hnk
0
180
AWS re:Invent 2025参加 直前 Seattle-Tacoma Airport(SEA)におけるハードウェア紛失インシデントLT
tetutetu214
2
120
Unicodeどうしてる? PHPから見たUnicode対応と他言語での対応についてのお伺い
youkidearitai
PRO
1
2.6k
AIによるイベントストーミング図からのコード生成 / AI-powered code generation from Event Storming diagrams
nrslib
2
1.9k
なぜSQLはAIぽく見えるのか/why does SQL look AI like
florets1
0
480
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
610
OSSとなったswift-buildで Xcodeのビルドを差し替えられるため 自分でXcodeを直せる時代になっている ダイアモンド問題編
yimajo
3
630
[KNOTS 2026登壇資料]AIで拡張‧交差する プロダクト開発のプロセス および携わるメンバーの役割
hisatake
0
290
AI時代のキャリアプラン「技術の引力」からの脱出と「問い」へのいざない / tech-gravity
minodriven
21
7.4k
FOSDEM 2026: STUNMESH-go: Building P2P WireGuard Mesh Without Self-Hosted Infrastructure
tjjh89017
0
180
プロダクトオーナーから見たSOC2 _SOC2ゆるミートアップ#2
kekekenta
0
220
MDN Web Docs に日本語翻訳でコントリビュート
ohmori_yusuke
0
650
Featured
See All Featured
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
0
140
Fireside Chat
paigeccino
41
3.8k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
170
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
0
2.4k
Statistics for Hackers
jakevdp
799
230k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
2.1k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
120
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
54
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
450
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
62
50k
Heart Work Chapter 1 - Part 1
lfama
PRO
5
35k
The untapped power of vector embeddings
frankvandijk
1
1.6k
Transcript
続・録画サーバーとその後 東海道らぐ 2019年12月オフな集まり in 名古屋 @メリーアヒルヤキ(フレンドリーファイア) @Otakan951
おたかんだよ @
[email protected]
https://otakan.jp
近況1 • mstdn.maud.io Advent Calendar 2019に参加しました • 13日目 VA-APIを使ってVP9エンコードを試してみた話 https://blog.otakan.jp/2019/12/12/vp9-encode/
近況2 • RTX 2070 Super買いました(ASUS DUAL-RTX2070S-8G-EVO) ドスパラで購入。ブラックフライデーセールとか 電子マネー還元とか組み合わせて ¥51,237 DUAL-RTX2070Sは価格.comで見ると6万円ほど。
RTX 2070 SUPERの最安値は56,000円ほど きーすとに買わされた レイトレはまだ使ってません。Minecraftでもやるか
使っていたGTX 1060 6GBは • ちょうど欲しがっていた友人がいたので投げた
東海道らぐ 2019年9月オフな集まり in 名古屋 で話した「録画サーバーとその後」 https://speakerdeck.com/otakan951/lu-hua-sabatosofalsehou
• 無線LAN子機を買わず、ルータがある部屋の隣部屋にサーバー を設置して有線LANで接続することに • サーバーを設置した部屋には地デジしか通っていないので、 BS/CSはリビングまでアンテナ線を伸ばすことに 地デジ リビング TV 分配器
BS/CS サーバー設置部屋
• なぜか地デジの受信感度がとても低く、Eテレ以外はまともに 視聴できない問題 • 仕方ないのでアンテナブースターを設置 →テレビ愛知以外は映った 地デジ リビング TV 分配器
BS/CS サーバー設置部屋
• テレビ愛知って結構アニメの放送やってるじゃん????? • 室内アンテナを試してみる • テレビ愛知は映ったが、アンテナの位置が動いたり近くを誰か が通ると受信できなくなる 地デジ リビング TV
分配器 BS/CS サーバー設置部屋
• BS/CSのためにリビングまで繋げているんだから、地デジもリ ビングからもってくればいいんじゃないの? • 全局安定して映った 地デジ リビング TV 分配器 BS/CS
分波器 分配器 混合器 サーバー設置部屋 地デジ BS/CS
実際に買ったもの • PRIMERGY TX1310 M3 – 年末セールで安かった富士通鯖 • PX-W3PE4 –
Plex製Wチューナー • ACR39-NTTCom – BCASカード読み取るやつ • WD Blue HDD – 6TB • アンテナケーブル • 分配器/混合器/分波器 • USB-007C – USB2.0 ピンヘッダにするケーブル • U20L3C – アンテナブースター • US120A – 室内アンテナ 下3つは結局必要なかった
半年後… • HDDの使用容量が50%ほどになった • 後で慌てるよりは早めに用意しておきたい • 価格優先でWD Blueを買ったが、やはり不安なので次はRed くらいのものを用意したい •
できれば今使っているHDD(6TB)よりも大容量なものを
WD Elements Desktop 8TB • Amazon Primeセールで ¥21,000→¥17,688 • 中身はエンタープライズ向けHDD
Ultrastar DC HC510の廉価版らしい • Ultrastar DC HC510の価格は8TB で¥45,000~ くらい? • 殻割りして中身のHDDをサーバーに入れたい →3.3V問題が起きるらしい
とりあえず何もせず接続してみる 何もしていないのに認識した
親「最近録画パソコンの(ファン)音がうるさい気がする」 私「そういえば温度監視とかやってないな」 それから1週間後くらい • 一応は録画の新規予約通知、録画 開始、録画終了、TSファイルの ドロップ有無をDiscordで通知す るようにしてある • 温度やHDD空き容量、S.M.R.T、
エンコ結果なんかを監視・通知し てくれるやつ作りたいなぁ
録画データ分割問題 WDのHDDを追加したとき くらいから、録画開始から 3分間くらいの間、データ がバラバラになる問題発生 謎
問題の状況 • 録画開始から3分間くらい、録画停止と録画開始を1~3回 繰り返す • ほぼ特定の番組で発生するが、放送局や時間帯の違いはあ まり関係なさそう • ドロップチェックとかには引っかからない •
問題が発生するときに、何か高い負荷が掛かってるわけで もない • EPGStationやMirakurunのエラーログに載ってない
システム構成 EPGStation Mirakurun ffmpeg MySQL PX-W3PE4 (チューナー) arib25 px4_drv recpt1
• EPGStation…録画管理ソフト • Mirakurun…デジタル放送番組用のチューナーサーバー • recpt1…録画コマンド • arib25…B25デコーダ(放送データの復号化) • px4_drv…PLEX系チューナー用の非公式Linuxドライバ • PM2…Node.jsアプリケーションのプロセスマネージャー ※ICカードリーダーとかは省略 PM2 ここから新しく話す内容
recpt1 • 元々はPT1/PT2/PT3を使うための録画ツール $ recpt1 --b25 --strip 23 10 test.ts
--device /dev/px4video2 • 一応ネットワークストリームもできるらしい • チューナーデバイスを制御し復号されたMPEG-2 TSを出力す るだけで非常に低レイヤー • 実際の番組視聴には、排他処理などの高度なチューナー制御が 必要
Mirakurun • Chinachu Air 向けデジタル放送番組用のチューナーサーバー • クライアントとしてはChinachu Air やEPGStation、TV Testなど
• LAN 環境内においてチューナーを柔軟に共有できる • チューナーの排他制御やマルチストリーム配信など高度なチュー ナープロセス管理機能を提供 • チューナーの優先度管理 • EPG パーサー(JSON 形式で保存し、REST APIで提供)
EPGStation • 放送番組の視聴・録画・管理 • 基本的にWebUIで操作 • 番組表の表示 • 番組検索 •
番組予約 • 手動予約、ルールによる自動予約、競合・重複の警告 • 番組視聴 • ライブ視聴、録画番組の視聴 • 録画番組管理 • 自動エンコード、ドロップチェック、番組削除 • APIもある
そういえばアップデートしてない • HDD追加したときにapt updateやった • EPGStationだけは定期的にアップデートしてた • Mirakurunやpx4_drvは完全にほったらかし状態だった • px4_drvを最新版にする
→何も変わらない • Mirakurunを最新版にする →データがバラバラにならなくなった!
録画データ破損問題発生 • データはバラバラにならなくなったが、今まで録画停止してし まっていたところでデータの欠損が発生 • バラバラにならなくなっただけで、何も解決してないな?? • データ破損でエンコード止まってしまうのでたちが悪い • 相変わらずログにエラーは無い
• 何故かドロップチェックでエラー検出されるのに、通知は飛ん でこない • 再生するまで気が付かず、治ったものと思っていた…
ドロップチェックの結果(一部) • 録画開始から10秒後、2分50秒後でドロップが発生(SAO-A WoU 第3話) • 録画開始から5秒後、10秒後、15秒後、20秒後、25秒後、30秒後 ときれいにドロップ発生 (SAO-A WoU
第4話) • 録画開始から10秒後にドロップが発生(慎重勇者 3話) • 録画開始から10秒後、30秒後にドロップが発生(アフサラ 3話) • SAOだけはドロップ量が突出して多かった ドロップ発生時間になんか法則性があるような、無いような…
とりあえずMirakurunに注目した • px4_drvは何見れば良いのか検討付かなかったので • なんとなく録画開始時にPM2からログを見てみた $ sudo pm2 logs [id]
TSFilter is overflowing the buffer… • TSFilterがバッファのオーバーフローを起こして録画が中断 • EPGStationはリトライするが再度あふれると、録画失敗を 繰り返して細切れになる
• バッファサイズはhighWaterMarkという変数で定義されて いて初期値は24MB • /usr/local/etc/mirakurun/server.ymlで値を変えられる • 268,435,456(256MB)に設定 • highWaterMark: 268435456
TSFilter is overflowing the buffer… • 地デジ2ch、BS2chの4ch同時録画したとき、バッファが膨張する と最大使用量は1GBに • mirakurunの最大プロセスサイズは512MBに設定されているので、
これも変える必要あり • PCのメモリ搭載量と相談 • Ver 2.8.0より前は256MBだった • /usr/lib/node_modules/mirakurun/processes.jsonで変えられる • 1024MBに設定 • node_args" : "--max_old_space_size=1024"
その後… • バッファサイズ変えたら視聴できないレベルでデータ破損が発生するこ とはなくなった • でも一部の番組は少しドロップ発生してる(SAOとか) • 様子見つつバッファサイズ調整中 どうしてログファイルに記録されなかったのか Log
Levelのことを完全に忘れていました →Log level設定してもエラーでない…
ありがとうございました