meteor Tech Blog

メテオのエンジニアブログです。技術情報を日々発信していきます。

Kyushu Security Conference 2018で配信してきた話

先日、9月29日(土)-30日(日)にKyushu Security Conference 2018が開催された。

kyusec.student-kyushu.org

私は昨年から運営メンバーとして参加し、今年は長崎と熊本のサテライト会場のためにライブ配信を担当した。

元々、仕事ではライブ配信サービスに携わりながらも、実際に配信する経験はあまりなく、とても勉強になった。

今回はRoland VR-4HDを持ち込み、マイクやスピーカー等は会場のものを利用した。

最初はケーブルノイズに悩まされながらも、試行錯誤した結果、ノイズが少し減って良かった。

配信は当初はDiscordでビデオ通話という形で行おうとしたが、どうやら学内ネットワークがDiscordのサーバへ到達が出来ないことが発覚し、YouTube Liveで配信することになった。

YouTube LiveはWebRTCを使うカメラ配信と従来通りのエンコーダ配信の二種類がある。

medium.com

今回はそんなに遅延は考慮していなかったので、OBSを使ったエンコーダ配信を選択した。

VR-4HDはUSB Video Classをサポートしているのでドライバーを入れることもなく、そのまま映像をキャプチャすることができた。

エンコードに関してはYouTubeの公式によると最大6Mbpsがいいとのことだったので、その通りに設定した。

support.google.com

また、最初はVBRエンコードをしていたが、視聴者からブロックノイズが多いとの意見があったのでCBRに変更をした。

そのほか、遅延をなるべく抑えるためにキーフレームを1秒に設定し、Bフレームは使わないようにした。

また、デスクトップPCを持ってこようと思ったが、筐体まるごと持ってくるのは難しかったのでマザーボードと電源とSSDGeForce GTX 960を持ってきた。

GeForce GTX 960を持ってきたのは、NVENCと呼ばれるハードウェアエンコードをしたいと思ったのが理由である。

NVENCはGPUで全部処理してくれるのでとても便利である。

NVENCはnvidia-smiで値を取れるので、Mackerelでエンコード負荷を監視した。

ちなみに、mackerel-agent-pluginsにあるものだとエンコード負荷の部分が取れないので自作した。

その結果、二日間配信していて、特にトラブルもなく無事に終えて良かった。

ネットワーク周りも問題なく、SINETの圧倒的パワーにより助けられた。

ちなみに本会場とのラグは3秒くらいだった。もっと遅延を少なくすることも出来るけど、今回はそんなに頑張らなくても良かったので満足。仕事では0.5秒の遅延の世界を経験しているので、遅延を減らす大変さはとても理解している。

サテライト会場も無事でなによりだった。

 

最後に運営の皆さん、お疲れさまでした。

 

はてなサマーインターン2018でMackerelに圧倒的な成果を出した話

f:id:albacore:20180908103158g:plain

どうも,大学4年生のid:albacore です.

普段は,自然言語処理で感情分析の研究やったり,動画配信サービスで研究開発をしています.

大々的には言ってなかったのですが,はてなサマーインターン2018に参加してきました.

はてなとの出会い

自分の記憶によると,一番最初はうごメモはてなだったと思います.

当時,小学6年生だった私は親からニンテンドーDSiを買ってもらい,うごくメモ帳で遊んでいました.

実際にメモは投稿することはあまりなかったのですが,うごメモ関連のサイト作ってました.そのサイトは当時だと一番勢いがあったと思います.

そこから,人力検索はてなはてなダイアリーなど色々なサービスを使っていきました.

現在ははてなブログはてなブックマークをよく使っています.

はてなインターンへの応募

はてなインターンに応募しようとした動機は,はてなという会社が実際にどういう感じなのか気になっていたのと,過去のはてなインターン参加者から色々話を聞いて,興味を持ち始めました.

応募はフォームから適当に入力して,応募するのに必要な課題をRustでサクっと書いて提出し,Google Hangoutで面接を行いました.

話したことは,はてなインターンに来て何がやりたいかとかよくある質問でした.

その結果,見事合格になって,はてなインターンへ参加することになりました.

事前課題

例年,はてなインターンScalaPerlがメインだと聞いていたので,身構えていたのですが,今年はGoとTypeScriptということで,実際のハードルはそこまで高くなかったです.

自分はGoはお仕事でも書いた経験があるので大丈夫だったのですが,TypeScriptは趣味程度しか触ったことがなくて,事前課題をやりながら改めて学びました.

前半過程

そんなことで,京都に来ました.はてな京都オフィスはインターネットの記事でよく見ていたのですが,実際に行くのは初めてでした.

前半過程では1週間講師の方より,技術的な講義が行われて,最後に課題が出されてそれを自主学習として取り組むという形でした.

技術的にはそんなに難しいことはあんまりなかったのですが,フロントエンド周りはあまり触った経験がなく,とても勉強になりました.

また,前半の後半にははてなの歴史についてやコミュニティについての話があり,ウェブサービスを10年以上続けるのは本当に大変なことだと実感しました. 

後半過程

後半は実際にチーム配属を行い,チームで開発を行うという感じでした.

前半過程の最後にチーム分けが行われ,私はMackerelチームに配属されることになりました.

Mackerelは,個人的にも使ってるサービスで,とてもお世話になっているサービスでしたので,Mackerelに携わることができると聞いて,本当に嬉しかったです.

Mackerelチームでは,僕とインターン生の id:NoahOrberg と一緒に新規機能の開発を行いました.

Mackerelでは本体がScalaで書かれており,クライアント含め周辺のツールはGoで書かれています.

今回は私はScalaが書きたかったので,Mackerel本体にどんどん機能追加をしていきました.Scalaは趣味程度で書いたことはあったのですが,実際に業務で触るのは初めてなので,最初は慎重に実装をしていました.

後半になると,だんだん慣れていき,自分でIssue作ってたくさんPull Requestを投げて,レビューしてもらい,マージするという日々を送っていました.最終的にはインターン期間中にチームの中では一番コミットしたみたいです.

わからないことがあれば,メンターの id:susisu さんに丁寧に教えてもらいながら,開発を行なっていました.とても丁寧にレビューしてくれて,感謝しています.

また,配属されて初日にロールAPIid:NoahOrberg と一緒に実装して,配属されて3日後には最速リリースしたのはとても気持ちよかったです.

その他,Mackerelでは多数の機能開発を行いました.特にオーガニゼーション一覧は一番大きい機能開発でした.id:NoahOrbergとデザイナーの id:takuwolog さんと一緒にUIを考えたりしながら開発したのはとても良い経験でした.

また,開発中に id:itchyny さんや id:astj さんや id:Songmu さんをはじめ,多くの方にレビューやアドバイスをして頂きありがとうございました!

その結果は以下のブログよりご覧ください!

mackerel.io

はてなについて

はてなは思っていた通り,結構自由な会社で,とても働きやすい環境だと思いました.

毎日まかないランチが出て,外に行かずとも社内で食べられることは驚きました.

自販機にある飲み物も無料なので,毎日レッドブルばかり飲んでいたら体調崩したので,気をつけましょう,

また,はてなの社員もYAPCやbuildersconで見たことのある人たちがたくさんいて,とても刺激になりました.自分もいつか登壇したいです!

私もこれまで色々なところでエンジニアバイトやインターンに参加してきましたが,はてなはその中ではトップレベルくらいに働きやすい環境だと思っています.

その他

当時からうごメモを使っていたので,うごメモに関する話が聞けて最高だった.

はてなインターンは毎年Slackが誕生するのですが,あまり活発的ではなかったので絵文字を1200個インポートしたら結構使われていて絵文字は最高だった.

Kyoto.なんか #4 に初参加したけど,インターンOBが多くてビックリしました.LTでリップシンク周りのことを話したけど,次回も発表したい.

Kyoto.なんかの翌日は,id:E_ntyoと二人で鴨川デルタで青春を過ごしました.最高だった.

その翌週は id:nanto_vi さんによる京都観光が行われました.普段は寺院などには行かないので,とても面白かった.

また,自分はアイドルマスターオタクですが,社内には自分を遥かに超えるプロデューサーがいてとてもよかった.気づいたらインターンSlackに #doryo(プロデューサーが集まるチャンネル)が出来ていて,最高だった.

その他,インターン期間中にはてなダイアリーの終了のお知らせと大型台風に二度直撃するというイベントに遭遇できてすごかった.

感想

人生で一番楽しい夏を過ごすことができました.

メンターやMackerelチームの皆さん,はてなインターンを支えて頂いた皆さん,本当にありがとうございました!

インターン生の皆さんもありがとうございました.また暇なときにご飯でも行きましょう!

最後に,はてなインターンに参加して思ったことが,ここまで親切で丁寧なインターンはないです.皆さんもぜひ参加しましょう!

京都観光

以下は京都観光です.

 

 

 

 

 

 最後に社内で神崎蘭子さんと撮った写真をあげておきます.

f:id:albacore:20180908105530p:plain

合わせて読みたい

e-ntyo.hatenablog.com

tomoyaf.hatenablog.com

yaamaa-memo.hatenablog.com

turtar-fms.hatenablog.com

noahorberg.hatenablog.com

みなさんこんにちは,メテオです.

medium.com

はてなブログからMediumに移行し,Mediumからはてなブログに舞い戻ったメテオです.

好きな食べ物はハンバーグ,好きなプログラミング言語はRustです.

最近はScalaにも興味持ち始めています.

どうぞよろしくお願いします.