投稿

ラベル(ストリーミングサーバー)が付いた投稿を表示しています

Dockerコンテナ化させたHLSのwebストリーミング配信環境構築(さくらのクラウド,Centos, Nginx,FFmpeg,docker) | ライタス株式会社

イメージ
こんにちわ。 10月より新入社員として入社しました田所です。 今回もストリーミングサーバーネタです! 今回は前回構築したffmpegとnginxを使ったHLSでwebストリーミング配信環境をDockerでコンテナにまとめて、 どこでも簡単に環境を構築できるようにしちゃいます(^^♪ 前回の記事↓ https://blog.litus.co.jp/2020/11/hlsflashplayerwebcentos-nginxffmpeg.html さて、今回もコンテナ化するにあたってアーキテクト図を書きます! 参考記事↓ https://blog.soushi.me/entry/2017/02/17/135834/ 基本は前回のcentos上で構築したもののと同じにするのですが、下記の通りコンテナならではの構成に若干変更しました。 RTMP→HLS変換するコンテナとweb配信するコンテナで分割 二つのコンテナをdocker-composeでまとめて起動、停止可能 hls配信に必要なm3u8ファイル等はdockerボリューム上に置き、コンテナ間で共有させる なんだかモダンでかっこいい!!(笑) 今回はローカル環境にDockerを入れてローカル上で構築を確認できたら、まるっと本番に移します。 というわけで本日の作業は環境構築含め以下の内容で進めていきます Docker for windowsをインストール(起動確認まで) Dockerfile、docker-compose.yml等必要なファイルを作成 ローカルでイメージをビルド→コンテナ起動→確認 さくらのクラウド(CentOS)上で起動→確認 1.Docker for windowsをインストール ※Windows10 Pro 64bitでのDockerインストールした手順について記述しています。 参考記事↓ https://www.public.ne.jp/2020/06/02/%E3%80%90docker%E3%80%91%E7%AC%AC9%E5%9B%9E%E3%80%80windows-10-pro-%E3%81%B8-docker-desktop-for-windows-%E3%82%92%E3%8...

HLSでFlashPlayerを使用しないwebストリーミング配信環境の構築(さくらのクラウド,Centos, Nginx,FFmpeg) | ライタス株式会社

イメージ
こんにちわ。 10月より新入社員として入社しました田所です。 前回記事にしました、さくらのクラウド上で構築したストリーミングサーバーを更に進化させていきたい思います!! 前回のストリーミングサーバーの構築記事↓ https://blog.litus.co.jp/2020/10/centosnginx.html 前回構築したストーリングサーバーでは再生するにはFlashPlayerが必要でした。 FlashPlayerは2020年にサポート終了することもありますし、Chromeでは再生するにはいちいち許可したりする必要があり、なるだけ使用は避けたい、というところで終了しました。 なので今回はこの RTMPを使用したストリーミングサーバーを生かしつつ、FlashPlayerを使用しないでストリーミング配信できる環境に進化させます! 具体的には HLS (HTTP Live Streaming) というプロトコルを使用します。 ↓参考記事 https://engineer.dena.com/posts/2018.12/knowledge-for-livestreaming .m3u8っていう拡張子のデータに映像を記録したプレイリストがはいってるわけですね。 なるほど、なるほど。この.m3u8の配信映像データがあれば、いい感じにwebで動画を再生できるというわけ 例のごとく前例はもちろんたくさんありました。 FFmpeg というライブラリを使います。 こいつをNginxと組み合わせることで PCからRTMP配信→Nginx経由でFFmpegに.m3u8のデータを生成してもらう→.m3u8データを再生するJavaScriptコードが入ったHTMLを配置(Nginxのwebサーバー) って感じです。 というわけで今回もイメージを作成↓ 基本は前回のさくらのクラウドの環境をそのまま使って FFmpegをインストール nginx.conf書き換え(FFmpegを実行する旨等記載) htmlファイルの書き換え これらの追加作業をするだけです。 今回の参考にさせていただいた記事 https://qiita.com/khagi/items/b99f5a36846d9ab65daa https://qiita...

さくらのクラウドにCentOS、Nginxを使い、ストリーミングサーバーを構築してライブ配信したい | ライタス株式会社

イメージ
こんにちわ。 10月より新入社員として入社しました田所です。 入社して1か月が経とうとしています。 まだまだ分からないことだらけで参っております。 さて、今回も初学者の私目線で業務で学んだことをまとめていきます😘 今回やりたいことは記事のタイトルの通りで さくらのクラウドを使って CentOSに Nginxを入れて OBSでPCの画面を配信 ってだけです。 PCの画面をwebページで配信して閲覧できる様にします。 Youtubeの非公開とか限定公開のライブ配信みたいな感じです。 と、いうわけでざっくりですがアーキテクト図に落とし込んでみました。 絵に書くとなんかわかった気になれます(知らんけど) 今回RTMPという通信プロトコルで配信します。 RTMPの基礎的知識は↓で学びました https://ygoto3.com/posts/live-streaming-and-rtmp-for-frontend-engineers/ ※RTMPはTCPらしいです。(知らんかった) ひとつずつ確実に消化していきます!! ※今回は実施しませんが、キャプチャボードを使って別の端末画面(PCのBIOSやゲーム等)をキャプチャして配信もできます(また記事にします) ではいきましょう!! 1.サーバー(さくらのクラウド)を立てる AWSなら触ったことあるんですが(実はAWS SAA持ち)、さくらのサーバーは一切使ったことなかったのでここもまとめておきます。 基本的にAWSでイメージすれば特に問題なくクリアできました。 ↓こちらを参考にしました↓ https://mebee.info/2019/11/09/post-3567/ さくらのクラウドのコンソール画面から「サーバー」→上にある「追加」を押す そしてサーバーのスペックを決めていきます 今回は以下のようにしました(抜粋) 仮想コア: 2 メモリ: 4GB SSD: 20GB OS: CentOS7.7 今回はSSHでサーバーに入り込む際に公開鍵認証を行うことにします。 やり方は↓の公式に詳細があるのでこの通りに行います。 https://manu...