ブックマーク / ygoto3.com (5)

  • フロントエンドエンジニアのための生放送と RTMP 通信基礎

    前回「フロントエンドエンジニアのための動画ストリーミング技術基礎」では HTTP ベースのストリーミング技術に関して勉強会を実施しました。視聴者に映像を届けるためのストリーミング技術に関してのお話でした。 記事は、AbemaTV の生放送番組で撮影機材から送られた映像がエンコーダーを介してリアルタイムに放送する部分について勉強会を実施した際の資料です。 生放送における動画データの通信 AbemaTV では生放送で撮影した動画データのやりとりに RTMP というプロトコルを利用しています。 RTMP とは RTMP は Real-Time Message Protocol の略で、その名前の通りリアルタイムにコミュニケーションを行うためのプロトコルです。Web 業界では Photoshop などでお馴染の Adobe Systems 社が開発しています。Adobe Flash Player

    フロントエンドエンジニアのための生放送と RTMP 通信基礎
    kkeisuke
    kkeisuke 2016/10/11
  • フロントエンドエンジニアのための動画ストリーミング技術基礎

    動画はデータ容量が大きい 画像と違い、動画コンテンツはデータ容量がとても大きいため、データをダウンロードして再生するまでに待ち時間が発生します。 動画のデータ容量が大きい理由はとても単純で、動画は画像データが集合したものだからです。静止画像を人間の目が滑らかに感じられる速さで切り替えて表示することで絵を動かすという表現を実現しています(よくパラパラマンガに例えられますが、そんな感じです)。この人間の目が滑らかに感じる速さというのが 1 秒間に 30 枚だったり 24 枚を切り替えることになります。29.97 (≒30) fps とか 24 fps とかの数字を耳にしたことがあるかと思いますが、24 fps の場合は 1 秒間(s)の間(p)に 24 フレーム(f)を切り替えることを意味します。 データを全て自分の端末にダウンロードしてから再生しようとすると、かなり長い待ち時間が発生してしま

    フロントエンドエンジニアのための動画ストリーミング技術基礎
    kkeisuke
    kkeisuke 2016/09/30
  • AngularJS の Controller / Service / Directive / Filter 役割のポイント

    会社内で AngularJS の Working Group を作り活動している中で、よく上がる質問の1つが AngularJS における Controller / Service / Directive / Filter に書く処理をどう分けたらいいのか、でした。 記事では、Controller / Service / Directive / Filter の役割のポイントを整理したいと思います。 基ポイント 他の MVC デザインパターンと同様、ビジネスロジックとプレゼンテーションロジックを分離することが基です。 ビジネスロジックを Service が担当し、Controller でそれを紐付けてテンプレートに共有します。プレゼンテーションロジックは Directive と Filter が担当し、DOM 操作処理やデータ整形処理をテンプレートに共有します。 Controller

    kkeisuke
    kkeisuke 2016/07/29
  • Atomic Design を実案件に導入 - UI コンポーネントの粒度を明確化した結果と副産物

    ここ半年開発していた動画サービスをベータ版ながらリリースしました(正式リリースは 4 月)。そのサービスの開発において、以前投稿した Atomic Design を採用しました。記事では Atomic Design を実案件に導入した結果と感想を書いていきます。 Atomic Design の基的な概念に関して知りたい方は Brad Frost 氏の原文、もしくは私の以前の記事↓を参照できます。 最近よくクリエイターが移住するカナダで Atomic Design を学ぶ Atomic Design を導入して正解 結論から書くと、今回 Atomic Design を導入したことは正解でした。コンポーネントの粒度を論理的に説明できるガイドラインとして十分すぎるほどの役割を果たしてくれました。 このガイドラインがあることで、デザインに関してさほど関心がない人(たとえばデザインよりもエンジニ

    Atomic Design を実案件に導入 - UI コンポーネントの粒度を明確化した結果と副産物
    kkeisuke
    kkeisuke 2016/06/08
  • ygoto3.com

    現在開発担当している AbemaTV で、昨年末にパナソニックさんのスマートテレビ VIERA 向けにアプリケーションをリリースしました。AbemaTV リモコンボタンで AbemaTV にアクセスできます。今回このアプリケーションの UI を開発するにあたって、新しいデザインワークフローを導入しました。 記事では、 Story-Assured Design というデザインワークフローを、現在プロダクト開発で直面しているデザインの課題とともに紹介します。 Story-Assured Design とは? Story-Assured Design はその名前が示しているように、ユーザーストーリーを保証することを目的とした UI デザインのワークフローです。UI デザインを3つのステップに分けて行います。 ストーリーデザイン デザインの構造化 視覚情報デザイン 一番重要なユーザーストーリーの

    kkeisuke
    kkeisuke 2013/12/25
    angular.bootstrap 手動で起動。ng-hideなどで隠れるはずの要素が一瞬表示されてしまう angular.css ng-bind。エスケープ処理をしない ngSanitize ng-bind-html
  • 1