YouTubeでは動画をドラッグ&ドロップするだけでアップロードでき、見たい動画の再生ボタンをクリックするだけでスムーズに動画を再生することができます。今や誰でも知っている世界最大の動画サイトになったYouTubeですが、ユーザーが何気なく行っている「動画の再生」や「動画のアップロード」がどのようにして行われているのかということを、YouTubeのエンジニアがわかりやすく説明したムービーが公開されています。

What Does YouTube Do To Your Video After You Upload It? - YouTube

この2人はGoogleのエンジニアなどに突撃してテクノロジー系のレポート動画をアップロードしているYouTuberのNat and Lo。2人が出演しているこの動画はYouTubeで公開されている多くの動画の1本に過ぎず……



近年のYouTubeにアップロードされる動画の数は、1日にアップロードされる分量だけでも、全部見るのになんと2081年までかかるそうです。



1分間に400時間分のムービーが投稿され、それだけでも映画184本分に相当します。



YouTuberとしての活動1周年を迎えたNat and Loは、YouTubeのオフィスを訪問して世界一有名な動画アップロードサイトとなったYouTubeの仕組みをエンジニアに話してもらったとのこと。



取材内容があまりにも濃かったため、聞いてきた内容を「パート1:動画をアップロードすると何が起きているのか」と「パート2:どうやって動画が再生されているか」に分けて公開されています。



YouTubeにはさまざまなカメラで撮影したファイル形式も解像度もフォーマットもバラバラの動画がアップロードされていきます。



これを再生可能にするのがYouTubeのエンジニアのお仕事なわけですが、YouTubeはグローバルなウェブサイトであるため、世界中に存在するさまざまなユーザーと端末に対応する必要があります。



この問題に対処するため、YouTubeではアップロードされる全ての動画をYouTubeに適した形へ変換しています。



もし全く変換せず元の形のまま配信しても、解像度の高すぎる動画は再生できないなどの問題が発生します。Nat and Loは「そんなことしたら待ち時間ばかりになって端末が溶けちゃうかも」とコメント。Googleのエンジニアは「もし世界中の人がそんな大容量の動画を一斉に再生したら、インターネットは壊滅状態になるかもしれません」と話しています。



インターネットの壊滅を防ぐため、YouTubeはアップロードされる動画を分析して……



動画の「メザニン」と呼ばれる「高画質な動画のコピー」を作っているとのこと。



これをおよそ5秒間隔で細かく分割し……



分割した破片を別々のマシンに送り込んで処理することで、マシンの負担を減らしています。



マシンがメザニンの破片を計算することで、いくつもの圧縮バージョンが生成されるという仕組みになっています。



最後にバラバラに生成された圧縮バージョンをつなぎあわせることで、解像度を変更できるようになるわけです。元動画の解像度にもよりますが、25種類ほど出力されるとのこと。



このような処理が施された結果、4Kでアップロードされた動画はHDTVなら4K画質で再生することができ……



インターネット速度が遅いジャングルの中でも、解像度の低いバージョンを選んで動画を見ることができるようになっています。



そもそも、動画をどうやって圧縮しているのか聞かれたYouTubeエンジニアのリチャードさんは「技術的な話になりますが、『CODEC(コーデック)』という言葉を知っていますか?」と説明。



「『COMPRESSION(圧縮)』と『DECOMPRESSION(解凍)』という2つの言葉から作られた造語です」



YouTubeのコーデック技術は元動画の画質の劣化をほとんど感じさせることなく、ファイルサイズを小さくできるとのこと。



カメラで撮影した元動画には詳細な情報が含まれているため、



コーデックして人間が視覚的に認識できる情報だけに限定するということ。



おおまかに言うと、似たようなピクセルをまとめることで小さくするようなもの。



例えばこの動画の背景はほとんど変化することがなく、手を動かした時などに一部が変化するだけです。変化しない部分をあまり更新しないようにすることで、画質の変化を最小限に収めつつ、ファイルサイズを小さくすることが可能だそうです。



Nat and Loの1人が「じゃあ私がこうやって動いたり踊ったりしたら、コーデックが大変になるってこと?」と尋ねます。



リチャードさんはエンジニアとしての哀愁を漂わせながら「ものすごく大変だよ……」とつぶやきました。



ただしその他全般の技術と同様に、コーデック技術も完璧というわけではありません。そこでYouTubeは動画を比較評価するヒューマンテストをたびたび行っており、アルゴリズムの調整も行っているそうです。



人間が見やすい動画になるようにアルゴリズムを調整することで、光のグラデーションなどに色ムラができてしまう「バンディング」や……



圧縮により生じるブロック状のノイズ「ブロッキング」を改善できるそうです。



これらの処理だけでなく、YouTubeに動画をアップロードすると自動的にサムネイル画像が生成されたり……



音声認識で字幕を自動生成したりと、さまざまな処理がアップロードするだけで行われます。Nat and Loは「スゴイのはこれだけの処理を1秒間に何千本も同時にやってるってこと」と話しています。



パート1のアップロード編はここまでで、続編となる「パート2:どうやって動画が再生されているか」は以下から視聴可能です。

What Actually Happens When You Watch A YouTube Video? - YouTube

Nat and Loは「YouTubeで動画をクリックすると、YouTubeが見たい動画を取ってきてくれる」というようなイメージを持っていたそうです。



実際のところ、昔のYouTubeで再生できるファイルは1つだけだったため、まさにそんな仕組みだったそうです。



しかし、「アップロードされた動画をただ読み込むだけ」だったため、よく読み込み中を表わすマークが表示されていました。



そこでYouTubeが考え出したのが「SLICED BREAD(スライスしたパン)」という作戦でした。



動画を分割して再生しながら続きを少しずつダウンロードしていくという方式で、スライス(動画の続き)を受け取る度に、ネットの状況に合わせてその次に受け取るスライスの大きさを動的に変更していくことで、ストレスなく動画を再生できるようになったわけです。



この配信技術は「アダプティブビットレート(ABR)」として知られています。



つまりいつも何気なくクリックしている動画の再生ボタンを押すと……



YouTubeは即座にユーザーのインターネット状況などを分析します。



条件が良ければ高解像度の動画スライスを読み込み、動画スライスを再生し終えるまでにこれを最後まで繰り返します。



もし動画の再生中に兄弟が帰ってきて大容量のファイルをダウンロードし始めたら、帯域幅が減少してしまいますが……



YouTubeは次のスライスから小さな動画スライスを選択するようになるため、インターネットの状況が悪化してもあまり待たなくて済むようにできています。



エンジニアのリチャードさんは「動画を見ている時に読み込み中になると本当にイライラするよね。だから少しでも待ち時間を減らそうと努力しているんだ」と話しています。



再生をスムーズにするもう1つのアプローチは、「動画ファイルまでの距離を縮める」こととのこと。



「YouTube」という場所に全ての動画が集められているように思えますが、実際はユーザーから物理的に近い場所から配信される仕組みになっているそうです。



これは「コンテンツ配信ネットワーク」と呼ばれています。



YouTubeは世界中のインターネットプロバイダーと提携しており……



世界各地で動画保存用のストレージを提供してもらっているとのこと。



動画はGoogleのサーバーからではなく、ユーザーの近所にあるストレージから再生されます。動画を再生するとYouTubeは最寄りのストレージに「この動画保存してる?」と聞きに行きます。



YouTubeをプロバイダーのストレージまで送り出しているのはブラウザ。



アップロード直後や、地域で誰も再生したことのない動画だと最寄りのストレージに保存されていない場合がありますが……



その時は最寄りのストレージが上位のストレージに動画を保存しているか聞きに行くようになっています。



もし上位のストレージにも保存されていなければ、最終的にGoogleのデータセンターにつながり、下位のストレージに該当の動画が送られるそうです。



Googleのエンジニアは、これを「世界中に根を張る木のようだ」と述べています。