UX For Video Streaming
ブログ記事 特に技術記事によく当てはまると思うのですけど, 既に世の中に公開されている情報を自分の言葉で再構成して公開する必要ってあるのか? って思うわけですよ。検索した人ならわかると思いますが、同じような量産記事が無限に検索結果に引っかかった経験はありませんか? 「xxxxインストールしてみた」や「20xx年 必読10選」みたいな。けど、私の結論としては自分が満足ならそれでいいのではないでしょうか? チラシ裏に書けよという意見もわかりますが、インターネットにルールなんてないのだから。
検索エンジンよ。もっと賢くなって欲しい。(他力本願)
はじめに
快適な視聴体験・目指すべき視聴体験とは何だろうか。
生配信, リアルタイム配信 であれば, ptpt しない つまり再生中に再読み込みが起きないことが理想である。 つまり, 画質を犠牲にしてでも途切れずに視聴できた方が良い と私は思う。
この「途切れずに視聴できる」= 「Playback stallsが少ない」 だと思われる。
このような、求める視聴体験(視聴者が求めるサービス品質)を何かしらの基準(キメかもしれない)で定めたい。その後にQoE metric に分解した後, SLI, SLOを策定まで落とし込みたい。
そうすることによって, QoEをモニタリングでき、それがストリーミングUXの向上につながっていく。
そこで, いくつかインターネットの大海を散策してみた。
用語説明
QoE の各指標についてはApple HLSの発表/資料を参考にした。
KPI
├startup time: 視聴者が再生の開始を待つ時間
├stall count: 再生ストール回数;
├stall duration: 再生ストール時間; 視聴時間における再生ストール時間の割合
├ Indicated bitrate: 再生中の画質の値と捉えれる
└ Error: 再生失敗; 全体の再生試行回数における失敗回数
介入できる指標に落とさないと意味がない。では雑にみていく。
Waiting for playback to start(Startup time; JoinTime)
再生開始までの時間。プレイヤーの再生開始処理を呼ばれてから、コンテンツの最初のフレームが表示されるまでにかかった時間
Re-buffering
視聴者の1セッションにおけるバッファリング時間。
バッファリングとは, 映像の再生開始前などに数秒映像データをスマホ, パソコンに溜め込んでいく技術.
Playback stalls(stall count)
Waiting for playback to resume (stall duration)
再生ストール: 再生中における, 映像セグメントの消費スピードが映像セグメントが受信されるまでのスピードより早くなると発生する。発生すると, セグメントが再び充分に受信されるまで再生されなくなる。この回数をstall count, 再び再生されるまでの時間をstall duration。
Indicated bitrate
Error
再生される前に発生するエラー. もしくは再生中に発生するエラー.
エラーの原因は様々... 配信, ネットワーク問題, オーサリングエラー
調べていて思ったこと
理想の視聴体験は, 再生開始したら、エラーなど起きずに映像が即再生され、再生ストールなんて発生せずに常に、高品質な映像・音声を快適に視聴することである。そんなのは無理だ。
ネット回線が弱かったら品質下げるか再生ストールを発生させてしまう。視聴環境なんて視聴者によって待ち待ちだ。
そういえば, Netflix も勢力的にStreaming QoEの記事を書いていたことを思い出し, 記事を読む。
Internet TV service の重要な要素: Streaming QoE
└ 目標は, 映画や番組をゆっくりと楽しんだり, 中断やエラーのないシームレスな体験を楽しんだりできること.
ユーザの視聴体験品質を正確に測る一番の方法はアンケートなどの主観テストだが莫大な費用と時間がかかる。そのため、定量的に測れるKPIが必要なのだ。
Netflix が記事に書いていた「視聴体験」と「事業KPI (継続率や視聴時間)」とどういう関係があるかの影響を調べることによってインパクト算出ができたりとUXと事業の関係が数字から見えてくる。
QoE が高い, 再生開始までが速い場合, Re-bufferingが少ない といったQoE metricが事業KPIに影響を与えているか。
→ Netflixをより多く視聴しているか?, 有料継続しているか
または、QoE metric同士のtrade-off による視聴者への影響を調べることもできる。視聴者は画質の低い & 再生開始の高速化 を望むのか, 画質の良い & 再生開始が遅れるか. どちらを好むか 等
視聴者の環境によっては再生が難しい場合もある。なので、どこまでをケアしてどこまでは難しいとするか。どういう線引きで行なっていくか。
UXって難しいなと改めて思いました丸
Netflixの記事にも、一律して「再生開始後の初期セグメントの品質を犠牲にして, 再生遅延を大幅に削減する変更は, 回線弱者には好まれるかもしれないが, 大多数の回線強者には嫌われる可能性がある」と書いてあったように、UX一つとっても視聴体験 またはサービス体験が変わってくる。
まだ読んでない。
Buffer sizing and Video QoE Measurements at Netflix (2020.2.10)
Bruce Spang
https://brucespang.com/papers/netflix-buffer-sizing.pdf
まとめ
AppleとNetflixの事例を斜めで見ていった。そこから、次のようなことを見ていけば良いのかと私なりに考えてみました。
・再生開始から1フレーム目が表示されるまでの時間
・画質・音質
・再生ストールの頻度及び再生復帰までの時間
・ドロップフレーム, リップシンクの頻度
・再生エラー(再生されない)
当然上記項目の要因はさらに別の要因に繋がってるので改善していくためにはそれらを関連づけてあげる必要があります。
指標をモニタリングしていくことによってストリーミングにおけるユーザ体験を向上させていけそうですね。
最高のストリーミングをやっていきましょう。
この記事が気に入ったらサポートをしてみませんか?