videoタグを利用したストリーミング配信について

2020 年 2 月 10 日 by egamit

■ストリーミング配信の特徴
PCやスマホなどの端末に動画ファイルを保存することなく、動画を見ることができる
⇒逆に動画ファイルを保存して動画を見るのがダウンロード方式

■Http Live Streaming(HLS)
HTTPプロトコルで動画のストリーミング配信ができる技術。Apple社が提唱
・Flashなどのプラグイン不要でHTML5 Videoタグで再生できる
・PC、スマホなど多くのデバイスで対応

■HLSの構成と仕組み
構成
・一定時間ごとに分割した動画ファイル(tsファイル (Appleは10秒ごとに分割することを推奨))
・上記tsファイルをリスト化したインデックスファイル(m3u8ファイル)

仕組み
(1)PCのブラウザ(HTML5 video)やスマホの動画プレーヤはm3u8ファイルをHTTP経由で取得する。
-> 例えば、HTML5 Videoタグのsrc属性にはm3u8ファイルのURLが設定されている
(2)m3u8ファイルの中身にはtsファイルが順番に記載されているため、HTTP経由で記載されている順番で取得する
(3)取得したtsファイルを動画として再生する
(4)次のtsファイルを取得する

■配信の様子を見てみよう

PCブラウザのGoogle Chromeを使うことを前提にして話を進めます。
まず、以下のURLにアクセスします。
https://flowplayer.com/developers/tools/stream-tester?stream=0

そして、キーボードのF12を押して開発ツールを開きます。
そこからNetworkタブをクリックし、XHRでフィルタをします。この時点でm3u8が取得されていると思います。

次に、ページ中ほどにある動画の再生ボタンをクリックします。すると、tsファイルがリストに表示されます。
このようにしてHLSの配信ではtsファイルを順次取得して映像を再生しています。

ここでお気づきの方もいるかと思いますが、開発ツールのリストにはm3u8が2つあります。これはいったいどういうことでしょうか?
まず、playlist.m3u8の中身を見てみましょう。リストをクリックします。

いろいろ書かれていると思いますが、m3u8ファイルが複数記載されていると思います。

 

これはHLSの特徴であるアダプティブビットレート配信という仕組みなのですが、
視聴する端末のネットワーク帯域に合わせて適切なビットレート(BANDWIDTH)と解像度(RESOLUTION)の動画を選択して再生します。
筆者の環境ではビットレート4Mbps,解像度1920×1080のplaylist_1080.m3u8を選択しました。
そして、playlist_1080.m3u8の中身を見てみると、tsファイルのリストが記載されています。このtsファイルは開発ツールのほうにも表示されています。

ということで、今回はストリーミング配信のHttp Live Streaming(HLS)について簡単ではありますが解説しました。
最後まで閲覧していただきありがとうございました。

様々なデバイスに活躍するFlutterの紹介

2020 年 1 月 19 日 by mishi
「Flutter」をご存知でしょうか?
様々なデバイスに適用できるオープンソースフレームワークで、

「勉強したいんだけど何をやれば良いかわからない。」という方にオススメです。

これからの開発で聞く機会が増えてくると思いますので、参考になればと思います。

(さらに…)

【第2回】Spring Boot ApplicationをCentOS7にデプロイしてみた(準備編)

2020 年 1 月 19 日 by uma

どうも、umaです。

今回は、Apache + Tomcat連携をサンプルのwarファイルを使用して設定していき、理解を深めていきます。

【サンプルwarファイルはこちら】

(さらに…)

【第1回】Spring Boot ApplicationをCentOS7にデプロイしてみた

2020 年 1 月 19 日 by uma

お久しぶりです、umaです。

今回は、ローカルで作成していたアプリケーションをインターネットに公開しよう!ということで行った手順をまとめました。

第一回目は、CentOS上でSpring Boot Applicationを実行するところまでやってみました。

なお、ローカルでSpringBootApplicationを作成する手順はEclipse+SpringBoot+MavenでHelloWorld をご覧ください


(さらに…)

メモリーリーク解析

2019 年 12 月 13 日 by tom

業務で実施したメモリーリーク解析について紹介します。
メモリーリークはプログラムが確保したメモリを解放せず、確保したままになってしまうことで、プログラムが実行されるごとにメモリが確保されていきます。
パフォーマンスモニタなどで発生の現象は確認できますが、問題の個所を特定するには骨が折れます。

今回はリークを発生させるサンプルを作成し、実際に動作させ解析ツールを用いて発生個所を特定してみます。

(さらに…)

パーセプトロンについて

2019 年 12 月 13 日 by bb

こんにちは。今回ご紹介するのは、「パーセプトロン」についてです。
パーセプトロンとは、1957年にアメリカの研究者によって考案されたアルゴリズムのことです。
何故そんな昔のアルゴリズムの紹介を?と思うかもしれません。
このパーセプトロン、実はニューラルネットワーク(ディープラーニング)の起源となるアルゴリズムなんです。
また、2019年秋季の応用情報技術者試験では、このパーセプトロンが午後の記述問題に取り上げられました。

早速見ていきましょう。
パーセプトロンとは、図に表すと以下のようになります。
(さらに…)

Linuxサーバをルータにしてみよう!

2019 年 11 月 1 日 by fuku

こんにちは。fukuです。

今回はある案件で仮想Webサーバを構築した際に本番環境と同様のIPアドレスを設定した状態で
開発用PCから参照できるようにできないかと調べてみました。

本来なら間にルータなどを挟んであげれば別セグメント間でも通信ができるようになるのですが、
ただ、ルータが無い!足りない!といったこともあるので
今回は、間にLinuxサーバをおいてルータの代わりにする方法をご紹介します。
(さらに…)

PythonのExcelライブラリ「openpyxl」の紹介

2019 年 10 月 7 日 by masy

最近業務で使用した「openpyxl」というPythonライブラリを紹介します。

「openpyxl」はPython言語でExcelの読み書きを行うためのオープンソースのライブラリです。
現在も開発が続けられており、2019/09/25にバージョン3.0.0がリリースされています。

 

インストール方法

多くのPythonライブラリと同様にpipでインストールできます。

pip install openpyxl

 

既存のExcelファイルからデータを取得する例

簡単なサンプルとして、Excelファイルからデータを取得してファイルに書き出す例を見てみましょう。
このような単純なプログラムであれば数行のコードで実現できます。
(さらに…)

IISにおける「セッション管理」

2019 年 9 月 17 日 by uma

こんにちは、umaです。

今回は、以前VB.NETでの開発時に起きた、セッション周りでの不具合を忘れぬため。また先輩方にせっかく教えていただいたことをしっかりと残すうえでも、メモ代わりに残します。

Webアプリケーションを実現するHTTPは状態を持たない(ステートレス)なプロトコルです。値を保持するためには、状態をどこかで管理する必要があります。その一つが「セッション管理」です。

IISにおける「セッション管理」

そもそもIISには3つのセッション管理があります。

  1. InProc(インプロセス)モード
  2. StateServer(ステートサーバー)モード
  3. SQL Serverを用いたセッション管理

(さらに…)

PowerDNSの使い方

2019 年 8 月 19 日 by O谷

以前、「PowerDNS」の構築手順をご紹介しましたが、
今回は導入理由や使い方を中心にご紹介いたします。
(さらに…)