ライブストリーミングにおけるx264の遅延(ラグ)とは

Diary Of An x264 Developer ≫ x264: the best low-latency video streaming platform in the world より

B-frame latency (in frames) + Threading latency (in frames) + RC-lookahead (in frames) + Sync-lookahead (in frames) + VBV buffer size (in seconds) + Time to encode one frame (in milliseconds)


公式(x264とffmpegの開発者であるJason Garrett-Glaser氏)の見解より、フレームあたりのbframe,フレームあたりのthreading,フレームあたりのrc-lookahead,フレームあたりのsync-lookahead,VBV_buffer,1フレームあたりのエンコード時間を足したものが遅延になる。この中で馴染みがないのが sync-lookahead

猫科研究所 - x264-changelog-jp r1200-r1299 のx264r1246欄に

lookaheadを別のスレッドに移動し、最適なパフォーマンスのため他のスレッドよりも高い優先度を設定。
lookaheadがエンコーディングのボトルネックとなる事を減らし、多コアのCPU上でlookaheadが強く影響する設定(例えばb-adapt 2)でのパフォーマンスを素晴らしく向上。
バッファサイズは--sync-lookaheadで操作可能で、デフォルトでは自動(threads+bframesバッファサイズ)である。

rc-lookaheadとは別で、lookaheadサイズをうまく使うようになるオプションである。

まとめると遅延は、過去と未来のフレームを参照する bframe、エンコードを並行作業する threding、未来のフレームを先読みする rc-lookahead、急なビットレート変化に対応するためのバッファサイズ、エンコード自体の処理時間で表わされる。

ここで rc-lookahead の値を変えずに配信フレームレートを上げると遅延が少なくなる理由がわかって、1秒間の描写フレームが増えるのに1秒当たりの先読みするフレーム割合が減ったために遅延が減ることになる。

遅延を減らすためにfpsを大きくすれば画質低下とPCの高負荷を引き換えに遅延を小さくすることができるのだが、これはfpsを大きくすることで1フレーム当たりのエンコード時間が減ることによる。同様にthreadingも全体の処理が間に合う場合、つまり低負荷の配信ならthreads:1にしたほうが遅延が少なくなる。言い換えると1人で出来る作業を複数人でやるよりも1人でやるほうが早いことになる。

つまりこれを実践すると
Encoder latency - X264 Encoding Suggestions - MeWiki
Latency - StreamingGuide ? FFmpeg
--tune zerolatency を使うことになり、-rc-lookahead:0, -sync-lookahead:0, -bframe:0, -sliced-threads:1 を併用することになる。しかしこのままでは動きにとても弱いので静止画配信以外にこれだけの設定では向かない。

関連記事
ffmpeg - Look for fastest video encoder with least lag to stream webcam streaming to ipad - Stack Overflow
関連記事

この記事へのコメント

管理人のみ通知 :

トラックバック


ニコニコチャンネル始めました
ニコラボチャンネル
スポンサード リンク
THE IDOLM@STER THE@TER ACTIVITIES 03
THE IDOLM@STER THE@TER ACTIVITIES 03

Fate/EXTELLA REGALIA BOX for PlayStation (R) 4 【初回限定特典】ネロ・クラウディウス、アルトリア・ペンドラゴン衣装「純真のナイトドレス」プロダクトコード付+【Amazon.co.jp限定特典】アルテラ衣装「スイートデビル」プロダクトコード配信 - PS4
Fate/EXTELLA REGALIA BOX for PlayStation (R) 4 【初回限定特典】ネロ・クラウディウス、アルトリア・ペンドラゴン衣装「純真のナイトドレス」プロダクトコード付+【Amazon.co.jp限定特典】アルテラ衣装「スイートデビル」プロダクトコード配信 - PS4

妖怪ウォッチ くったりぬいぐるみだニャン ジバニャン
妖怪ウォッチ くったりぬいぐるみだニャン ジバニャン

Fate/EXTELLA VELBER BOX 【初回限定特典】ネロ・クラウディウス、アルトリア・ペンドラゴン衣装「純真のナイトドレス」プロダクトコード付+【Amazon.co.jp限定特典】アルテラ衣装「スイートデビル」プロダクトコード配信 - PS4
Fate/EXTELLA VELBER BOX 【初回限定特典】ネロ・クラウディウス、アルトリア・ペンドラゴン衣装「純真のナイトドレス」プロダクトコード付+【Amazon.co.jp限定特典】アルテラ衣装「スイートデビル」プロダクトコード配信 - PS4

Fate/EXTELLA REGALIA BOX for PlayStation (R) Vita 【初回限定特典】ネロ・クラウディウス、アルトリア・ペンドラゴン衣装「純真のナイトドレス」プロダクトコード付+【Amazon.co.jp限定特典】アルテラ衣装「スイートデビル」プロダクトコード配信 - PS Vita
Fate/EXTELLA REGALIA BOX for PlayStation (R) Vita 【初回限定特典】ネロ・クラウディウス、アルトリア・ペンドラゴン衣装「純真のナイトドレス」プロダクトコード付+【Amazon.co.jp限定特典】アルテラ衣装「スイートデビル」プロダクトコード配信 - PS Vita

【早期購入特典あり】初音ミクシンフォニー~Miku Symphony 2016~オーケストラ ライブ CD(初音ミクシンフォニー描き下ろしクリアファイル付き(ランダム配布))
【早期購入特典あり】初音ミクシンフォニー~Miku Symphony 2016~オーケストラ ライブ CD(初音ミクシンフォニー描き下ろしクリアファイル付き(ランダム配布))

「うたわれるもの 偽りの仮面&二人の白皇」歌集(初回限定盤)
「うたわれるもの 偽りの仮面&二人の白皇」歌集(初回限定盤)

TVアニメ『ラブライブ!サンシャイン!!』挿入歌シングル「想いよひとつになれ/MIRAI TICKET」
TVアニメ『ラブライブ!サンシャイン!!』挿入歌シングル「想いよひとつになれ/MIRAI TICKET」

『刀剣乱舞-花丸-』 歌詠集 其の三 特装盤
『刀剣乱舞-花丸-』 歌詠集 其の三 特装盤

本好きの下剋上~司書になるためには手段を選んでいられません~第一部 「本がないなら作ればいい3」
本好きの下剋上~司書になるためには手段を選んでいられません~第一部 「本がないなら作ればいい3」

新着記事と追記・編集記事
スポンサード リンク
ブログ内検索
プロフィール

Author:ロベルト
お問い合わせはこちらまで
robelt2525[at]gmail.com

中の人 @nico_lab
ブログ更新用 @blo_nico_lab

詳しいプロフィールはこちら

カテゴリ
アクセスの多い記事
記事アーカイブ

最新コメント
リンク
ニコニコ静画
アニメカテゴリ毎時ランキング
免責事項
当ブログはリンクフリーです。記事によりトラブルが生じた場合でも、当ブログ管理人は一切の責任を負いません。 当ブログに記載されている情報の正誤や利用は、ご自身の判断でお願いします。 紹介したアプリケーションに関する問い合わせは作者に問い合わせてください。ニコニコ動画に関する質問はまずは公式掲示板、2ch、各Q&Aサイトを参照ください。
ブログの読者になる(RSS)
アクセス数