最先端の技術を持ったエンジニアが集うU-NEXTの中でも、メディアテクノロジー分野のエキスパートにお話を伺いました。20年のキャリアを誇る専門家から見た、通信・メディア業界の過去と現在、そして、U-NEXTが描き出す未来像とは――。(このインタビューは2016年10月に収録されました。) 取材・文 / 佐治 和弘 撮影 / 藤田 慎一郎
単純な動画再生よりも快適なユーザー体験が求められている
ジャブリさんは、いつからU-NEXTで働いているんですか?
去年の11月からなので、ほぼ1年近く勤めています。キャリアを通じてメディアテクノロジーを扱う会社に在籍していましたから、今の分野には20年くらい居ることになりますね。
通信・メディア業界の変遷を間近で見てきたわけですね。
はい。初期のメディアテクノロジーは、本当に狭い分野でした。当時はインターネットに接続したPCで文字や画像を見るのが主流で、動画を再生する機会は限られていました。PCの性能もインターネットの接続速度も貧弱でしたから。そこから現在にかけて、どんどん分野が広がっていきました。例えば、インターネットを通じて、動画のような処理に負荷がかかる上にファイル容量も大きなメディアを当たり前のように再生するようになりましたね。ただファイルをダウンロードして再生するだけであれば関連する技術はファイル転送と動画再生程度の比較的狭い技術領域で完結しますが、実際は快適なユーザー体験(UX)まで強く求められるようになってきました。
もう少し具体的に伺ってもよいでしょうか?
例を挙げると、長時間待たずにダウンロードしながら動画を再生できる、通信速度が変化しても途中で再生が停止しない、高画質な動画を低容量で再生する、といった技術がメディアテクノロジーの一環に加わりました。さらには、視聴者が観たい作品を快適に探し出せるUIの技術や、本人が意識するよりも早く好みの作品を提案するレコメンド技術も私たちのようなメディアプラットフォームに無くてはならない技術になってきました。レコメンドの進化については、最先端の機械学習やAIの技術が深く関与しています。
広い領域に関わることで、サービスへの貢献を実感できる
移り変わりの激しい業界ですから、追随していくのは大変だったのでは。
そうですね。エンジニアのワークスタイルもずいぶん変わったと思います。比較してみると、設計者が全面的にシステムを見ていることは変わりませんが、昔は各エンジニアのチーム間でもっと高い壁がありました。例えば、サーバーのバックエンドエンジニア、クライアントのエンジニア、UIのエンジニアと、機能別にはっきりとチームが分かれていて、お互いの仕事の範囲をしっかり守って開発をおこなっていたのです。でも今では、サービスを提供する側にもより新しい機能を短期間でリリースすることが求められるようになってきて、チーム間の連携がますます重要になっています。
ともかく自分の仕事だけをやり遂げればいいという時代ではなくなった、と。
その通りです。U-NEXTでも、このような課題に対応するためにアジャイル方式を取り入れて、開発者同士やプロダクトオーナーとのコミュニケーションを活発に保って、新機能をスムーズかつ迅速にリリースできるように心がけています。配信市場で競争力を持つために重要なポイントです。 新しい技術面に加えて、それをしっかり活かせる組織体制が必要ということですね。アジャイルを導入され始めたのはいつ頃になるのでしょうか。 私がU-NEXTへ加入した頃に始めたので、期間で言うと1年よりも少し短いくらいですね。
導入後、コミュニケーションの取り方が変わった以外に、何か実感するものはありましたか?
以前はテストと開発を別々に行っていましたが、今は継続的インテグレーションを実現していて、開発者の業務フローにテストの実施やインフラとの連携も含まれています。例えば以前はリリースするパッケージが一つのチームで作られ、その後にテストがおこなわれていました。今では、なるべく早い段階で本番に近い環境でのテストを実施するようにしています。そのためにDockerを使ってパッケージを定期的に作れるようにしました。その環境に合わせて、サーバーエンジニアとインフラエンジニアだけではなく、クライアントのエンジニアも必要な技術力を持つようになり、スムーズにチームで提携して、2週間区切りで機能ができ上がるようになっています。より広い領域に関与することで、自分がこの製品に貢献したという実感も大きくなりました。
自社開発だからこそ良いものができる
メディアテクノロジーの面白さや可能性はどのようなところですか?
メディアテクノロジーは、文字・音声・画像・映像など、様々な情報をどう扱うかという分野です。動画でいうと、以前は放送局が放送波を通じてテレビで作品を流すことやDVDやBlu-rayのような物理メディアを利用した再生がほぼ全てでしたが、今はインターネットでの配信もできるようになっていますよね。配信において、コンテンツのデータをサーバーから取り出すとき、端末に配信するとき、PCやiOS、Androidで再生するときのそれぞれで、ストレスのない再生をするために、様々な技術が使われています。再生する技術自体はiOSやAndroidではAPIが公開されていますが、それをうまく扱うのにも能力や技術が必要です。
技術力でサービスの品質に差が出る?
大きな差が出ます。「インターネット経由で取得した動画を端末で再生する」という機能に絞って、必要な技術要素を考えてみましょう。4K動画(フルハイビジョンをさらに越える高精細な画質の規格)やHDR(ハイダイナミックレンジ合成。明るさの表現領域を拡大することでより現実世界に近い映像表現を可能にする規格)のようなより高品位な映像規格が実用化していきますが、U-NEXTで取り扱うためには、まずメディアフォーマット自体を私たちで選択する必要があります。最先端の分野なので、たくさんの可能性から品質やコスト、今後の普及速度や規模など総合的に判断して採用フォーマットを決めます。
まずは、フォーマットの決定が第一歩なのですね。
素材となる動画ファイルをそのフォーマットへ変換したら、海賊版の被害にあわないようセキュリティ(著作権管理技術 / DRM)をかけます。インターネットの通信速度はベストエフォート方式で、再生する端末が得られる通信速度はそのときになってみないとわからないので、速度に応じて最適な画質が転送されるABR(アダプティブ・ビットレート。可能な限り高品質なコンテンツをなめらかに視聴できる技術)を用いるため、複数の画質・解像度のファイルを作品ごとに用意します。さらに、CDN(コンテンツ・デリバリー・ネットワーク。ウェブコンテンツを配信するのに最適化されたネットワーク)を使ってインターネット上で利用者に近い位置へファイルを配置し、再生の待ち時間短縮と安定性を両立させます。再生プレーヤーも早送りやシーク(目的の場所を簡単に探せる機能)のような機能の取捨選択、ボタンの配置や大きさにより使い勝手が左右されます。
ABRについてもう少し詳しく教えてください。画質をどのように調整しているのですか?
端末がネットワークの状態を監視して、安定して再生できるビットレートを次々と予測しています。予測のためにはフィードバックコントロールなどの理論の理解が必要です。ネットワークのスピードが落ちてきたら、対応するビットレートを迅速に選んでサーバーへリクエストし、カクつきが起きないようにする。一方で、またネットワークのスピードが上がると、なるべく早く高いビットレートへスイッチするようになっています。
それはU-NEXT独自の技術なのですか?
Googleがバックアップしているオープンソースのプレーヤーもある程度のアダプティブ・ストリーミングに対応しているのですが、その画質の切り替えの判断をする部分を私たちの手で調整しています。データ分析も独自開発していて、再生プレーヤーに測定の機能を加えて、実際のユーザーの再生ビットレートや予測したビットレート、カクつきや一時停止などの状況をデータベースへ記録し、状況を改善するための情報源にしています。できあがった仕組みをそのまま利用することも多いと想いますが、U-NEXTは人任せにするよりも自分たちで突き詰めたほうが良いものができると信じています。
インプットして学ぶか、アウトプットしながら学ぶか
U-NEXTのエンジニアの方々は専門性が深いので、役割分担がはっきりしていそうな気がしますが。
そうでもありません。本当に様々な言語や領域の開発が必要なので、それぞれ色んな分野の開発をしています。得意な分野を持っている人が他の人に教えることもあります。「iOSアプリだけ開発する」、「再生のコア技術だけ開発する」ではなく、必要に応じて新しい言語、領域を次々と学ぶようになっています。
メディアテクノロジーの分野の経験がない人が入ってきたとき、U-NEXTではどのようなスタイルでキャッチアップしていますか?
2つの学ぶ型があると思います。勉強会や本・ブログなどからインプットして学ぶか、実際に開発してアウトプットしながら学んでいくか。1つ目の例としては、最近だとES6(JavaScriptの次世代仕様であるECMAScript 2015〔ECMAScript 6〕のこと)をテーマにした社内勉強会を開催しました。こうした勉強会は一人で本を読むよりも、理解が深まる良い機会になりますね。
アウトプット型の学び方というのは?
2つ目の例は、私たちの開発サイクルをお伝えするのがよいかもしれません。私たちはアジャイル開発を採用していて、プランニングミーティングでスプリント期間内に何をするのかを決定しています。タスクは最初誰にもアサインされておらず、「私がこの課題をやります」とそれぞれが宣言して開発する形式をとっているのですが、例えばずっとiOSのアプリ開発だけをやりたかったとしても、ある期間のスプリントにはiOS開発に関係するタスクが全くないかもしれません。Androidアプリの開発をすることになれば、学ばざるを得ないですね。でも達人が近くにいるので、どうしてもわからないところは質問すれば、大抵すぐ解決できます。
コラボレーションはどのようにしていますか。チャットのようなコミュニケーションツールを使っているのでしょうか?
みな近い位置で集まって仕事をしているので何かあればすぐ歩いていって気軽に話し合っています。もちろんチャットツールも使っていますし、2人以上に共有したいと思ったら社内Wikiに書きます。ピアレビューもすごくしっかりやります。書いたコードが誰にも確認されず製品に反映されることはなくて、必ず誰か別のエンジニアが確認します。色々なレビュアーから「こう改善した方がいいんじゃないか」といったコメントがもらえるので、そこから勉強し、より良いコードを書き、信頼性の高いものを作っていけるようになります。
機械学習やAIで、UXサポート技術は急速に進化する
これからの可能性、数年後の未来の話をお伺いできますか。
近い将来ではメディアフォーマットやエンコーディングの技術はいま予測できている範囲からあまり大きくずれないと思います。変化に少し長めの時間が必要な技術なので。またDRMやその暗号解除の方式などもMicrosoftやGoogle、Appleらが成熟したシステムを提供しているので、そこもあまり変わらないのではないかと考えています。一方で、4K、8Kと解像度が上がっていき、利用者の数も増加していくことで、通信インフラやサーバー処理能力を継続的に拡張していかなければなりません。この分野は技術的にも進化が進んでいくでしょう。また、機械学習・AI技術に裏付けされたユーザー体験をサポートする技術は急速に一般化されるのではないかと思いますね。