イベントの詳細
動画アーカイブ
RTMP のはなし - RTMP 1.0 の仕様とコンセプト by 芝田 将 (AbemaTV) c-bata AbemaTVでの利用個所
Encoder -> Wowza 間に利用している
チャンクストリーム
RTMPは複数のストリームを扱うことができる
データはチャンクに分割して送る
キーフレーム送るだけで100msとかかかる場合もあるので分割
実際に実装したもの
SHOWROOMの泥臭い負荷対策 by 志水理哉 (SHOWROOM) バックグラウンド:アプリケーションエンジニア
機材知識がない有名人(や一般の方)
1-2分カクつくと不安になる
低遅延にしたい
こういう選択もあるのか! kadoyau.icon
負荷対策
情報をコントロールして一気に人を集まらないようにする(オートスケール)
間に合わないことも
予測してマニュアルでスケールアウトさせる
△「あの人が出るから同接X万人」
◯「今日誕生日だから人が来る」「未公開情報が出るから人が来る」
副次的な情報が重要
副次的な情報とは
突発的配信も分かり次第シェア
まとめサイトのチェック
内部スケジュール
WebRTC
低遅延(0.2s)
CDNでばらまけない
大きな遅延(>1m)
ブラウザでは受診のみ
WebRTCとHLSのいいとこどり
HW Enc
H.264だとラズパイにも乗ってる
MPEG2-TSでのカプセル化
つくっている余裕がなかった
つくろうとしていたシステムの概要紹介
早くてメモれずkadoyau.icon
配信現場のアレコレなければ作る! by 加賀誠人 (Project92) 現場の泥臭い話
現場の色々な問題
ライブハウス
カメラの置き場がない
一回決めると調整できない
ワンオペ配信なのに一番前の人が喋っちゃう
夜景を背景にするとカメラマンが映り込む
ズーム -> 延長用ケーブル
複数カメラはどのリモコン?
とはいってもまずは延長しようとした
75Ωの同軸が3本あるので
まとめて無線化してみた
自作モジュールでのズームのデモ
電源入れて20秒ぐらいで利用できた? kadoyau.icon
春節でなかなか入ってこない
スイッチャとしても使える
自作アプリ(画像に情報を表示するデモ)
HLSでライブ配信すると遅延が出る
ニコ生は4-8秒
Fleshは2秒
提案手法
わかりやすいイラストやのアニメーション
録画した分だけTSファイルに書く
ファイルができてないのにダウンロード
実質RTMP
問題点
CDNが使えない
うまくやればchunked encodingをためるCDNが使えるかも?
そんなものある?
もう一個なんか行ってたけど書きそびれた kadoyau.icon
デモ
遅延0.5秒 + ネットワーク遅延
生放送に特化したnodeのライブラリ
デモ
CoreM3の貧弱なPCでも3mの動画が20秒ぐらいでエンコーディング
詳しい状況はスライド kadoyau.icon
実際に運用したら
HLSサーバの処理能力が1.3倍になった
超低遅延HLS、わたしもやりました
ブラウザで動く点で前の発表に負けたー><
8年前、なけなしのお金でつくったサービス
お金がなかった
儲からなかった
pixivが社内でサーバ積んでる話を見てマネた
初期サーバー群の構成
in 8G 外側16GB
NTT神田基地局からおこられた
さくらからおこられた
最終的にDCつくった
お金がないという制約の中で、 モバイルに特化した低遅延サービスをつくった
「1Mbpsはモバイル回線にはまだ早い」
100kbpsで人は幸せになれる
SBの回線だけ特殊
mpegtsやるなら188byteに隙間作るな
188byteごとに送られて(?)あまりがpaddingされる
gzipかからない
1byteでも効率化できるように188byteに近いかと置くか見て動的に調整
「Nal Unit Type 12はサーバで削れ
RTMPは自由にデータ流す
filer data 0xFFとかも流れる
無駄なので削る
Still画像は無駄にエンコするな
画像だけで配信するラジオ配信
キャッシュして使いまわす!
当時の自分は何もわからなかったので勉強から始めた
コンテナの中のデータはどんなものなのかを話す
メディアストリーム
デコードに必要な情報
コーデック
映像
フレーム単位で扱う
音声
パラメータ
ストリーム
タイムスタンプ+エンコードされたデータ
あるある
キーフレームから始まってない
カクつく
composition time offset
まとめ
難しくない
メディアストリームをやりとりするだけなら
ビットレート改善で転送量を減らしたおはなし by @meteor (ピクシブ株式会社) 6名で開発
pixiv Sketch LIVE
配信制限中
SoraのRTP転送機能をつかってWebRTCのストリームをトランスコードしてHLSで配信 遅延は6-9秒
WebRTCでUDPで送るとパケロス
ビットレート高すぎ問題
以前のエンコ設定
NVENCを使ってGPUで変換
モバイル 480p
PC 1080p
どうしたか
VBR 2passにした
CRFを0->18にした
x264エンコーディングガイドに書いてあったのでそうした