投稿

ラベル(田所)が付いた投稿を表示しています

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...

ZELMAN ZM-VE350のセットアップでハマったこと | ライタス株式会社

イメージ
こんにちわ。 10月より新入社員として入社しました 田所 と申します。 IT系の知識は基本的にはないと思っていただいて、 初心者向けな内容のインフラ周りで学んだことのアウトプット として日々発信していけたらと思います。 よろしくお願いいたします👦 さて、さっそくですが、今回は以前にもブログでとりあげられていました こいつです。 ZalmanのZM-VE350 以前のレビュー記事は↓こちらからどうぞ https://blog.litus.co.jp/2016/02/zelman-zm-ve350.html USB接続のHDD、SSDとして使用もできますし、ドライブの中にISOファイルを突っ込んでおけば こいつのボタンをぽちぽちしてISOファイルを選択すれば光学ディスクとして使用できるというのでOSのインストール等にとても重宝するインフラエンジニアにはとても助かるアイテムです!! ざっくりとセットアップの手順を記載しますと、 用意したSATA I/II/III接続のHDDかSSDを装着 USB接続すると電源がはいる(ドライブして認識される) ドライブをフォーマットする ドライブの中に「_iso」フォルダを作成する 「_iso」フォルダの中にisoファイルを入れる(複数可能) 本体のボタンからMode Select → Dual ModeかVCD Modeにする 本体のボタンから「_iso」にあるisoファイルを選択できるようになるので使用したいisoファイルを選択 といった流れで使用何点か詰まってしまった点があったのでピックアップして対処方法を残しておきます。 1.USB接続してもドライブ認識されない ZMV-VE350からなにも進まないやん..... 結果これについてはデスクトップPC等に接続するといけました。 単純に電力不足のようです。 セルフパワータイプのUSBハブを使用したら使用しているノートPCでも使えました。(私が使用した商品詳細は こちら ) 2.「_iso」の中にisoをいれても「no iso file」と表示されisoファイルを選択できない。 これにしばらく悩んだのですが、結論として フォーマットの方法に問題がありました。 公式HP にも記載があったのですが、 MBRディスク/NTFSフォーマット を見逃してました👨 どうやら GPT でフォー...