Interview

身についたのは「事業に貢献する技術」
新卒Androidエンジニアによる動画配信コスト削減

インターネット産業の変化にあわせて様々な事業を提供している当社では、多様な技術領域において若手エンジニアが日々活躍しています。
FEATUReSでは彼らの活躍を連載形式でご紹介します。

第4回目は、株式会社AbemaTV(以下、AbemaTV)に所属しAndroidを担当する入社2年目の仙波 拓です。

「AbemaTV」を通してユーザーに最高の動画体験を届けたい。
その思いを実現するために、自身の技術力を高め、事業貢献を果たすと話す仙波。
失敗を乗り越え再挑戦することで実現した「動画配信コストの削減」を振り返るとともに、
仙波の考える「事業に貢献する技術」についてお届けします。

Profile

  • 仙波 拓
    株式会社AbemaTV 開発本部 Androidエンジニア
    2017年 サイバーエージェント新卒入社。株式会社AbemaTVで内定者アルバイトの後、そのままAbemaTVに配属。Androidアプリの動画周りの改善や開発に関わる。

AbemaTVで大切なことは
「やりたいこと」の言語化

ー AbemaTVは入社前から開発に関わっていますね。

2016年の9月、内定者の時に大学の夏休みを利用して音楽ストリーミングサービス「AWA」のサーバサイドエンジニアとして、長期インターンに来ていました。神戸に住んでいたのでその時期だけ会社のシェアハウスに住みながら、東京のオフィスに通っていました。

「AWA」でのインターンが楽しかったしもっとコードを書いておきたかったので、卒業前の時期にも東京でインターンをしたいと人事担当者に伝えました。大学の教授には自分の想いを伝えて、特別にリモートで卒論執筆を許可してもらいました。

当時はどこに行っても活躍できるエンジニアを目指していたので、AbemaTVでのAndroidチームをインターン先に希望しました。2017年1月の事で、その頃AbemaTVでは縦画面対応のプロジェクトが進められていて、僕もそこに加わりました。

当時Androidチームは8人いて、僕も含めその内の半分ほどが縦画面化にとり組み2017年4月には縦型対応バージョンを無事にリリースすることができました。

ー AbemaTVの開発現場で学生として何を学びましたか?

仙波:学生目線だと「インターン先でどんなことをやらせてもらえるのか」を気にしがちですが、何をやれるかは自分次第なんだと気づきました。というのも、AbemaTVでは自分がやりたいことをきちんと言葉で説明できて、目標設定をしっかり決めて実行できる人であれば、自分がやりたいことをやらせてもらえる環境だったからです。

ー やりたいことはどうやって見つけるのですか?

「技術的にこんなことをやってみたい」という視点から一つ視野をあげて「プロダクトが抱えるこんな課題を技術で解決してみたい」という視点にするのが最初の一歩だと思います。

プロダクトが抱える課題は様々で、中には実現にはハードルが高いものがあったりします。それは「技術的にこんなことをやってみたい」という視点だと気づきもしない難易度だったりします。だからこそ、プロダクトが抱える課題は技術的にもやりがいがあって楽しいです。

もちろん、なぜその課題に自分が携わりたいのか、現状はどうなっていて、自分は技術的にどう解決したいのかを考えて、上司やチームメンバーに伝わるように言語化して説明できるようにしておく必要があると思います。

ー その「やりたいこと」とは具体的にはなんでしょうか?

僕は今まで主にAndroidしかやって来なかったのですが、Androidの領域から飛び出して事業に対して貢献していきたいという思いがあります。ユーザーに対して最高の動画体験を届けるためにできることはないか毎日考えています。

Android以外の知識がAndroid開発に求められた

ー Androidのエンジニアリングで、どんな技術が求められるのですか?

一般的なAndroidアプリであれば、基本的にはAndroid frameworkやAndroid特有のLifecycle、サーバー間通信などの知識が求められますが、「AbemaTV」のような動画配信サービスになると、さらに映像や動画配信に関する知識が必要になります。

例えば、MPEG-DASHやHLSといった動画配信プロトコルや、fragmented MP4やTSといったファイル形式などの知識です。また、コンテンツを不正利用から保護するためにDRMの知識も必要になってきます。

ー 動画配信と暗号化はプロダクトが抱える課題にどうつながるのでしょうか?

例えばDRMでは使用する暗号化方式に従ってライセンス料が発生する場合があります。DRMにはいくつか種類があってGoogleのWidevine, MicrosoftのPlayReady, AppleのFairPlayなどがあり、AbemaTVのAndroidではPlayReadyを使ってDRMに対応していたためMicrosoftに対してライセンス料が発生していました。以前からAbemaTVではこのDRM暗号化方式をWidevineに変える事によってライセンス料をゼロにしたいという事業的な要望がありました。

以前からWidevine対応は行っていたのですが、時期的な問題もあり保留された状態になっていました。

ー それを実現するための技術的なハードルの高さはなんだったのですか?

Widevineの動画配信ではファイル形式をfragmented MP4にする必要があったり、ExoPlayerの対応状況などの理由からAbemaTVではMPEG-DASHを採用していました。しかし、MPEG-DASHの配信にもライセンス料が発生するため、当時はコストを極限まで抑えるために、非DRMコンテンツにはHLSを使い、DRMコンテンツを再生する際にはMPEG-DASHに切り替えるようにしていました。

しかし、「AbemaTV」のような24時間動画を配信し続けるサービスにおいて、アプリ側で動的に配信プロトコルを切り替えるのは実装コストも非常に高く、非DRMコンテンツとDRMコンテンツでのデコーダーの切替時に不具合が発生する端末が確認されました。

ー 何が再挑戦の決め手になりましたか?

時間を経て、ExoPlayerがHLSでのWidevine再生に対応したのが大きなきっかけになりました。HLSのみで非DRMとDRMを再生することができれば、以前のように配信プロトコルを併用することなく再生することができます。またコストも以前より更に抑えることができます。しかし、AbemaTV独自の24時間様々なコンテンツが入り組んで配信されるようなサービス形態に置いて、問題なく再生できる保証ありませんでした。そのため事業的にHLS+WideVineで配信を行えるかどうかを判断するために、Androidで「HLS+WideVine」が実現可能かどうかの技術調査から始めました。

ー 動画や暗号化の経験が少ない中、どうやって技術調査を進めたのでしょうか。

RFCのプロトコルや技術仕様を読み込んでAndroid端末で地道に試すことを繰り返しました。特にどのように動画プレイヤーで再生されるかの仕組みを理解することに一番時間を費やしました。

その後、自分でDRMの動画コンテンツを作って配信を行い、単純にHLSでのWidevineコンテンツがAndroid端末で再生できるかどうかを試しました。

HLSでfragmented MP4を再生する部分やプレイリスト内のWideVineに関するパース処理などで再生に失敗する場合があったのですが、内部実装を把握しながらExoPlayerにPullRequestを出したり、AbemaTVのサービスに依存するようなところは一部forkするような形で解決していきました。

身についたのは「事業に貢献する技術」

ー 暗号化の対応で年間数億のコスト削減が見込めるようになりました。この成果を通じて技術者としてどんな成長を実感しましたか?

学生の頃はただプログラムを書いていれば幸せで、おもしろいから技術を勉強して、アプリを完成させることに達成感を感じていました。

新卒で配属された頃も、タスクを割り振ってもらって期限内に終わらせるという開発の仕方をしていました。

しかしサイバーエージェントのエンジニアは技術が大好きというのはもちろん、ユーザーに良いものを届けたいという気持ちを強く持った人が周りにたくさんいます。

「技術でユーザーに価値を届けたい」という姿勢を見ているうちに、いま自分がやっている開発は、会社にとってどんなメリットがあるのか、プロダクトにとってなぜこれを実装しなければいけないのだろうといった、俯瞰した目線に意識が向くようになりました。

自分の技術力も大事ですが、それ以上に事業貢献にどうつながるかを意識するようになりました。それは今回のように、暗号化方式を変えることでコストがカットされ、結果的にAbemaTVの事業に貢献するための技術です。

それは上司から「DRM対応」というタスクをふられるだけでは気づかなかったことです。新卒の頃から一番変わったのは、仕事に対する納得感に目が向くようになったことかもしれません。

ー 納得感とは?

今回のDRM対応で言うと、ただ課題を解決しようとするのではなく、コストがどこにどのくらいかかっているのか聞いたり、昔やろうとして導入うまく行かなかった経緯や、なぜその方法で解決しようとしたのかをヒアリングしました。

そこまで自分で深掘りして、納得いくところまで調査しました。だからWidevine対応をやる意味が納得できました。以前やろうとしたからとか、誰かに言われたから開発するのではなく。

周りのエンジニアも納得感をもって開発することを大切にしている気がします。

ー エンジニアとして、いま目指している方向性を聞かせてください

はっきりとは決まっていませんが、軸をいっぱい増やしたいと思っています。今はAndroid、動画、暗号化とかけ算する軸がいくつか出てきました。他にも興味のある軸はいっぱいあって、例えば仮想通貨やブロックチェーンなど、ワクワクする技術はたくさんあります。

サイバーエージェントは「AbemaTV」からブロックチェーンまで様々な事業を展開しているので、かけ算するための軸と強みを伸ばしやすい会社だと思います。

Page Top