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

第88話:イトは、配信終了した第3話をルーターで戻そうとした|動画があるのに見られない?

ピコルート第88話。storageに第3話はあるのに、再生できない。イトは共有routerを落としたあと、asset、配信期間、視聴権限、再生sessionを分けます。

episode catalogavailability windowviewer entitlementplayback session10分更新

第87話の動画棚の奥に、作品ごとの大きな書架があった。

series。

season。

episode。

同じ作品の第1話、第2話、第3話が、順番に並んでいる。

図書室の実演を終えたマコトと、今度は第3話のwatch partyを始める予定だ。

開始時刻は、二十時。

時計は、二十時一分を指していた。

イトが第3話のcardを押す。

再生screenは開かない。

episode catalog record  1
video asset ready       1
availability now        0
playback session        0

storageの奥には、第3話のvideo assetがまだある。

「dataがあるなら、またnetworkだ」

イトはshared routerのpower leverを落とした。

ユイが見ていた第1話まで止まる。

routerを上げ直しても、第3話は戻らなかった。

assetがあることと、今見られること

第3話のavailability windowは、二十時ちょうどに閉じていた。

時計は、その一分後だ。

watch party開始まで、あと百二十秒。

予定していた第3話を無断で迂回しない。

shared networkをもう止めない。

いま許可されている内容で、会を始めるか中止するかを決める。

ユイ

第1話はrouterを戻したら再生できました。第3話だけが戻りません

イト

asset readyを、ぼくが再生できるという意味にしてた

マコト

予定どおりの第3話は見たい。でも、期限をnetwork故障には変えられないね

video assetは、encoded videoやaudioを配信用に準備したdataだ。

catalog recordは、そのassetを作品、season、episode number、title、thumbnailへ結び付ける。

availability policyは、いつ、どのregion、どのplanやprofile conditionで候補にできるかを決める。

viewer entitlementは、current viewerがその条件を満たすかを判定する。

全部を通ったあとで、playback sessionやmanifestを発行する。

catalog
  -> current availability
  -> viewer entitlement
  -> playback session
  -> manifest / media segments
  -> player render

上の一段がgreenでも、下の全てがgreenとは限らない。

反対に、policyで止めたものをrouter restartでgreenにはできない。

三つの戻し方

イトは、expiredになった第3話cardの前へ三枚のroute cardを置いた。

イト

A。shared routerをもう一度restartし、全員の再生を巻き込む

イト

B。storageに見えるhidden asset URLを直接playerへ入れる

イト

C。networkを維持し、current policyを通るepisodeからauthorized sessionを作る

Aは、healthyな通信まで止めてもavailabilityを変えない。

Bは、storage locationをview permissionの代わりにしている。

Cなら、見られない第3話を見られるふりにせず、watch party自体を始める選択が残る。

Picoはcardへ触れない。

routerのgreen linkと、第3話のexpired gateを別々のcyan lightで照らしている。

イトがrouter resetを閉じた

イトはAのrouter-reset coverを、自分の左手で閉じた。

Bのhidden-asset bypass chuteもlockした。

Cのcurrent-availability gateを、右手で開いた。

イトが共有ルーターの再起動カバーを閉じ、配信終了した第3話を止めたまま、現在視聴できる第2話の再生経路を開く
assetの存在で期限を迂回せず、current availabilityとviewer entitlementを通るepisodeを選ぶ。

予定していた第3話は、選択肢から外れたままだ。

代わりに、前回の内容をまとめた第2話のrecap版を選ぶ。

episode              e02-recap
asset ready          1
availability current 1
viewer entitled      1
playback session     issued

「第3話は見られない。今日はrecapへ変える」

イトは、マコトへ変更を伝えた。

予定どおりに見せるふりをしない。

sessionのあとに、再生材料を選ぶ

authorized playback sessionは、playerへmanifestの入口を渡した。

今回のmanifestには、同じ映像の三つのvideo variantがある。

high、middle、lowは、bitrateやresolutionが違う。

playerはnetwork throughput、buffer、device conditionを見て、止まりにくいvariantから始める。

一度選んだ画質へ固定するとは限らない。

video variants    3
audio renditions  2
subtitle tracks   2

audioとsubtitleは、映像の別renditionとして選べるfixtureにした。

全serviceが同じmanifest形式やtrack構成を使うという意味ではない。

今回は日本語audioと日本語subtitleを選ぶ。

playerはmanifestが示す短いmedia segmentsを順にrequestし、bufferへ入れる。

manifest取得をepisode watchedへ昇格させない。

first segmentがdecodeされ、screenへframeが出て、audio clockとsubtitle cueがそろって初めて再生開始だ。

第3話を落としたまま、第2話を始めた

test switchで、middle variantのsecond segmentだけを遅らせた。

playerはbufferが減る前に、次のrequestをlow variantへ切り替える。

同じtime rangeを二重に再生しない。

episode 3 availability       0
episode 3 playback session   0
episode 2 session issued     1
manifest fetched             1
first frame rendered         1
audio selected               1
subtitle selected            1
duplicate time range played  0

screenにrecapが映った。

watch partyは、予定から九十秒遅れて始まる。

第3話は出ない。

みんなが待っていた新しいsceneも見られない。

成功は、失ったepisodeを消さなかった。

マコト

第3話じゃないことを最初に伝えよう。それでも前の話を一緒に見られる

イト

networkを直したふりで期限を越えず、見られるものへ変えた

ユイ

今度は私の再生も止まりませんでした

resume位置も、視聴完了ではない

recapの途中、マコトの端末が十秒だけsleepした。

playerは十分快進んだ位置を、viewer accountのresume recordへ送る。

episode id       e02-recap
position         10:23
session accepted 1
synced            1

次に同じaccountで開けば、この位置を候補にできる。

別account、offline state、sync failureなら同じにならない場合がある。

position 10:23は、人が内容を理解した証明でも、episode completionでもない。

再生状態の一つとして残す。

「見られない」を、routerへ戻し過ぎない

一話だけ見られないとき、イトはshared networkを最初に落とさなくなった。

まずcatalogにepisodeがあり、current availabilityへ入っているかを見る。

次にaccount、plan、region、profile conditionでviewer entitlementを確認する。

そこを通ってsessionが出たら、manifest、segment、decode、renderを追う。

policyで止まったなら、router restartやhidden URLで迂回しない。

networkで止まったなら、権限を買い直して直そうとしない。

止まった段を一つに決め、そこより下だけを調べる。

番組表を、開始前へ巻き戻そうとした

recapが終わると、作品棚の壁が左右へ開いた。

奥には、時刻が縦に流れる大きな番組表がある。

二十時三十分。

live programの枠が、まだ暗い。

イトはon-demand episodeと同じように、playback positionを00:00へ置いた。

screenは始まらない。

program has not started。

episodeは選べても、liveの未来時刻を先に再生することはできない。

イトはseek leverから手を離し、動いている現在時刻を見た。

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

イトは、番組表を巻き戻して放送前へ進む?|インターネットTVの時刻

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

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

アニメ配信の仕組み|作品の1話が端末に届くまでを読む