テレビのアニメはどこから来る? / 第17話

第17話:イトは、全部を再起動せず「同じ動画」を三つの道で試した|なぜ途中で止まる?

ピコルート第17話。bufferが空になり、画面が停止。イトはTVもrouterも全部再起動する案を退け、同じ動画をWi-Fi二台と有線一台で比べ、今回詰まった道を一つずつ絞ります。

バッファ切れ再生待機比較による切り分けWi-Fiと有線10分更新

透明なtrayに、最後の一箱が残っていた。

映写機は、その箱を引き込む。

bufferは空になった。

遠いlaneの向こうで、008だけが橙色に点滅している。

画面の人物が、振り向きかけた姿勢で止まった。

音も消える。

丸い読み込み印が、静止したframeの上で回り始めた。

イト

来なかった。最後の一箱を使い切ったから?

ピコ

いま再生したい位置の、すぐ先を見て

ユイ

続きのdataがありません

復旧確認まで、あと二十秒。

イトの右手は、赤いmaster resetのcoverへ伸びた。

TVも、appも、routerも、Wi-Fiも。

全部いったん止めてやり直せば、どれかは直る。

どれが詰まったかは、その後で考えればいい。

bufferの底で、時間が止まる

ピコが、停止位置を一本の白い線で照らした。

線の左には、再生済みのframeがある。

右には、何もない。

008がまだbufferへ追加されていないからだ。

W3C Media Source Extensionsのbuffer監視では、現在の再生位置を含むbuffered rangeがその位置で終わり、直後を覆うrangeがない場合、media elementはHAVE_CURRENT_DATAへ移り、timelineを先へ進めるdataがないため再生を一時停止する。

WHATWG HTML Standardのwaiting eventも、次のframeがまだ利用できず、後で届くと見込まれるためplaybackが止まった状態を扱う。

画面が壊れたから、必ず止まるのではない。

serverが落ちたから、ともまだ決められない。

いま観察できるのは一つだけだ。

再生位置の直後に必要なdataがなく、playerが続きを進められない。

マコト

止まった現象と、届かなかった理由は分けるんだね

イト

bufferが空なのは見える。でも、なぜ008が来ないかはまだ見えない

残り十八秒。

全部を変えると、答えまで消える

master resetの下に、四本のcableが集まった。

TV。

app。

router。

network。

一度にresetすれば、運よく再生が戻るかもしれない。

けれど、四つの状態が同時に変わる。

直っても、どれが効いたか分からない。

直らなくても、四つのどこを次に見るべきか分からない。

しかもappの起動とrouterの再接続を待つ間、停止中のrequestとbufferの状態は消える。

ピコが、reset coverの横に三枚のcardを置いた。

  1. TV、app、router、Wi-Fiを一度に再起動する
  2. 遠い配信serverの遅れだと決めて、そのまま待つ
  3. 停止状態を残し、同じstreamを端末と経路だけ変えて比べる

一つ目は、原因の手がかりごとresetする。

二つ目は、serverだという証拠がまだない。

三つ目は、比較の回数だけ時間を使う。

ただし、結果の違いが出た場所から、詰まりの範囲を狭められる。

ピコ

二十秒で、何を直す? 何を残す?

ユイ

同じところと、変えるところを一つずつ決めましょう

残り十六秒。

イトはmaster resetから手を離し、赤いcoverを閉じた。

停止したTVとrequestは、そのまま残す。

「同じ動画で比べる」

一本目:別の端末、同じWi-Fi

イトはphoneを取り出した。

TVと同じWi-Fiへつながっている。

同じ時刻、同じstreamの同じ続きへrequestを送る。

GET /video/finale/segment-008

phoneのrequestも、橙色になった。

bufferは増えない。

画面には、同じ読み込み印。

TVだけでなく、別の端末でも同じWi-Fi経路では遅れた。

これだけでphoneとTVに同じ故障がないとは証明できない。

それでも「TV一台だけの問題」という範囲は、前より弱くなった。

イト

端末を変えても、同じWi-Fiだと来ない

マコト

変えたのは端末。残したのはstreamと無線の道だね

残り十二秒。

二本目:同じrouter、違う入口

次にイトはlaptopを、一本のEthernet cableで同じrouterへつないだ。

配信serviceも、streamも、要求するsegmentも変えない。

家の外へ出るrouterは同じ。

変えるのは、端末からrouterまでをWi-Fiで渡るか、cableで渡るかだ。

三台のrequestを、ほぼ同時に並べる。

TV      → Wi-Fi → router → segment-008
phone   → Wi-Fi → router → segment-008
laptop  → cable → router → segment-008

laptopのlaneだけが青く点いた。

008が届く。

TVとphoneの無線laneには、まだ橙色の待ちが残る。

同じ時刻に、同じrouterの外側から同じstreamを有線で受け取れた。

少なくともこの瞬間、配信serviceからrouterを通ってlaptopへ届く道は動いている。

二台のWi-Fi側だけが遅れる差が出た。

「serverが全部止まった」と決めるより、端末からrouterまでの無線区間を先に見る根拠ができた。

ユイ

有線だけ届いた。だから、Wi-Fi区間に違いがあります

ピコ

そう。ただし、まだ『Wi-Fiの何が原因』までは決めない

残り八秒。

止めるのは、一つだけ

イトは無線laneを見た。

TVの横で、使っていないと思っていたtabletが光っている。

写真の大きなbackupを、同じWi-Fiでuploadしていた。

無線の道には、TVのsegment requestだけがいるわけではない。

同じradio channelを使う機器や近くのnetworkなど、Wi-Fiの利用状況は通信の余裕へ影響しうる。AppleのWi-Fi router設定資料も、同じchannelを使うrouterやdeviceによるinterferenceをnetwork環境の要因として挙げている。

ただし、目の前のuploadが今回の停止原因かは、見つけただけでは決まらない。

tabletを再起動する必要もない。

routerの設定を全部変える必要もない。

イトは、大容量uploadだけを一時停止した。

ほかは変えない。

TVから、もう一度008をrequestする。

残り五秒。

橙色だったboxが動いた。

routerを越え、Wi-Fi laneを抜け、TVの空だったbufferへ入る。

buffered rangeが、停止位置の右へ伸びた。

playerがwaitingを抜ける。

画面の人物が、振り向き終えた。

音が戻る。

イトが赤い一括resetから手を離し、同じ動画を試すTVとphoneの詰まったWi-Fi lane、有線laptopの通過laneを比べ、大きなuploadだけを止めた後にsegmentをTVのbufferへ届けている
全部を変えず、同じstreamを経路だけ変えて比べ、差が出た区間へ一つだけ介入する。

今回分かったのは「今回の道」

復旧確認まで、あと一秒。

TVのbufferに、008の続きが加わった。

previewは同じ位置から進んでいる。

今回の観察は、こうつながった。

  1. TVのWi-Fiでは、同じstreamが止まった
  2. phoneの同じWi-Fiでも、同じstreamが止まった
  3. 同じrouterの有線laptopでは、同じstreamが届いた
  4. 大容量uploadだけを止めると、TVのWi-Fiでも届いた

だから、この一件では無線区間の利用状況が停止へ関与した可能性が高い。

「動画が止まる原因は、いつもWi-Fiだ」とは言えない。

別の日ならappかもしれない。

端末処理かもしれない。

回線、配信service、segmentそのものの問題かもしれない。

比較したのは、この時刻の、このstreamの、この経路だ。

イト

原因を当てたんじゃない。違いが出る境目まで、道を狭めたんだ

マコト

一つ止めて、同じ条件でもう一度届くか確かめた。そこまでが今回の結果だね

観客を待たせた時間は、十六秒。

比較requestは三回。

全部resetするより、手数は増えた。

しかし、次に同じ差が出たとき、最初から四つ全部を変えずに済む。

直ったという結果だけでなく、どこまで届いていたかが残った。

三つの大きさが、入口へ並んだ

再生が安定すると、008の後ろに三つの箱が現れた。

どれも同じ次の場面。

一つは大きく、光の粒が細かい。

一つは中くらい。

一つは小さく、軽そうだ。

無線laneは、いまは空いている。

けれどtabletのuploadを再開すれば、また余裕は変わる。

playerの選択台が、三つの箱の前で左右に揺れた。

イト

同じ場面なのに、どうして三つもあるの?

ピコ

道が変わったとき、止まる以外の選択をするためだよ

赤いmaster resetは、最後まで閉じたまま。

その隣で、三つの大きさだけが青く光っている。

次回:playerは、どの箱を選ぶ?

buffered rangeが現在位置で終わり、直後のdataがなければ、再生は先へ進めない。

止まった理由は一つに決めず、同じstreamを端末と経路だけ変えて比べる。

今回、差が出たのはWi-Fi区間だった。

次に現れたのは、同じ場面を入れた大・中・小の箱。

次回、ピコルート第18話。

画質は、誰がいつ切り替える?

画面のむこう側をもっと知る

動画が止まるときのbufferと切り分けを図で整理するなら、動画が止まる原因で確かめられます。

この物語を、解説で深める

第17話で生まれた疑問を、解説記事で少し深く見ていきます。物語で感じた不思議さを残したまま、言葉と仕組みを順番に整理しましょう。

動画が止まる原因|端末・Wi-Fi・回線・配信側を切り分けるを読む