Raspberry Pi 3 + Nginx でつくる Live中継環境

Similar documents
FlashAir TM Tutorial FlashAir のチュートリアル FlashAir でライブ配信 1 用意するもの HLS FlashAir からのブート 環境設定作業 動作確認... 8 FlashAir Developers

ラズパイの USB バスパワーを OFF/ON する方法 2019/03/15 株式会社アートファイネックス 1. 概要 ラズパイを使用し RFID リーダ ライタ (USB 給電タイプ ) を制御する場合 何らかの理由によりリーダ ライタをリセットするために USB ケーブルを抜き差しして電源を切

0_テキストマイニング環境構築_mac

Action Cableで簡易チャットを作ってみた Kazuhiro NISHIYAMA 第 87 回 Ruby 関西勉強会 2019/07/13 株式会社 Ruby 開発 Powered by Rabbit 2.2.1

OpenCV Windows(cygwin) Linux USB PC [1] Inel OpenCV OpenCV 1 Windows Linux OpenCV (a) (b)2 (c) (d) 1: OpenCV 1

Taro-kk5jyによるFldigiインストール

Installation Guide for Linux

目次 1. 動作環境チェック 動作必要環境 Java のインストール Java のインストール Firebird のインストール Firebird のインストール Adobe Reader のインストール

3.Preferred Audio Device に PCM-DSD USB Audio Interface が選択されていることを確認します また Active Audio Device の Native DSD Capability が DSD over PCM standard 1.0 に設定

3.2 Linux root vi(vim) vi emacs emacs 4 Linux Kernel Linux Git 4.1 Git Git Linux Linux Linus Fedora root yum install global(debian Ubuntu apt-get inst

ソフトウェアについて Rev 年 1 月 16 日 このマニュアルでは標準でインストールしているソフトウェアの入手元 インストール方法の概要 インストール場所 についてご案内致します ABySS

目次 1. はじめに 本書対象者 PALRO のアプリケーションについて Ubuntu 8.04LTS の入手について Linux 上での開発環境の構築 事前準備 Ubuntu のインストール..

Taro-ラズパイのインストールと設定

Red Hat Enterprise Linux 6 Portable SUSE Linux Enterprise Server 9 Portable SUSE Linux Enterprise Server 10 Portable SUSE Linux Enterprise Server 11 P

Raspberry Pi 3(Raspbian) での Actian Zen Edge 使用 株式会社エージーテック 2018 年 7 月 5 日

Raspberry Pi で WEB カメラを使用 会津大学 RT ミドルウェア講習会 2017 The University of Aizu

Microsoft Word - USB60F_Raspi_ doc

# mv httpd tar.gz /usr/local/src /usr/local/src # tar zxvf httpd tar.gz make #./configure # make # make install Apache # /usr/local/apac

HeartCoreインストールマニュアル(PHP版)

HeartCore(PHP 版 ) インストール手順について説明いたします なお 本資料は 例として下記内容を前提として説明しております 環境情報 対象 OS: Linux ( ディストリビューション : Red Hat Enterprise Linux Server) APサーバ : Apache

改版履歴 本書の改版履歴は以下のとおりです 日付 改版理由 変更箇所 版数 2014/09/04 初版発行 版 2015/03/30 第 1.1 版に改訂 対象 OS 追加 1.1 版 2015/07/10 第 1.2 版に改訂 対象 OS 追加 1.2 版 2015/09/04 第 1

2017 年 10 月 2 日 株式会社 HDE システムコンサルティングアンドセールスディビジョン HDE Mail Application Server #Delivery - au.com ドメイン追加のご案内 - 平素より 弊社メール配信システム HDE Mail Application S

MINI2440マニュアル

_01 日医標準レセプトソフトクラウド版 CLAIM 接続利用手順 ベンダー向け 2017 年 8 月 23 日 日本医師会 ORCA 管理機構株式会社

オフラインメンテナンス説明書-ver5.0.0

DCL intro Manual for Ubuntu11.10

Maser - User Operation Manual

第5回 マインクラフト・プログラミング入門

ライセンス運用マニュアル ムラタソフトウェア株式会社 All Rights Reserved, Copyright c Murata Software Co., Ltd. 2019/2/14 1

ミーティング記録の管理

スライド 1

“nice to meet you”

Microsoft Word - README_2011_FW.txt

2_Boost(1.60.0) のインストール No 概要対象ユーザコマンド確認 ( 確認コマンド等 ) 備考 1 Boostのソースディレクトリ作成 2 boost_1_60_0.tar.gz の取得 # mkdir /usr/local/src/boost_1_60_0 # chown : /u

6.Raspberry Pi3 に DLAN サーバーソフト MediaTomb をインストールします $ sudo apt-get update $ sudo apt-get install mediatomb usbmount ネットワークインターフェースを有効にします $ sudo nano

MENU 키를 누르면 아래의 화면이 나타납니다

第5回 マインクラフト・プログラミング入門

目次 1. 改版履歴 概要 WEB 版薬剤在庫管理システムのインストール 事前準備 インストール アプリケーションのセットアップ WEB 版薬剤在庫管理システムの初期設定

~ アドレス収集くん ~ セキュリティ対策御説明資料

WebARENA SuiteX V2 EC-CUBE 2.13 インストールマニュアル ( 標準 MySQL+ 非 SSL ) 作成 :2014 年 2 月 Ver.1.1

目次 第 1 章はじめに... 3 第 2 章ネットワーク設定 DNS の設定 アウトバウンド HTTPS 接続の許可 アウトバウンド SMTP/POP 接続の許可... 4 第 3 章 JDK への追加ライブラリインストール

拠点間 VPN オプション設定手手順書 お客客様環境お客様様宅環境のネットワーク構成を下図図に記入しておきます 接続方法 ( )PPPoE ( )Static ( )DHCP IP アドレス ( グローバル )... 接続の詳細情情報ユーーザ ID パスワード 接続の詳細情情報 IP アドレスネット

Microsoft Word - バーチャルクラス(Blackboard)ログイン方法ガイド.docx

アプリケーションサーバ JBoss超入門

黒板作成 連携ツールの概要 黒板作成 連携ツールは 事前に撮影する工事写真用の黒板を作成するツールです 本書では EX-TREND 武蔵の写真管理 黒板作成 連携ツール ios アプリ 現場 DE カメラ土木版 の連携について 説明します 写真管理 EX-TREND 武蔵の写真管理で作成した 工種分

Mac OS X Server QuickTime Streaming Server 5.0 の管理(バージョン 10.3 以降用)

SonicDICOM Cloud Connector インストール手順書 SonicDICOM Cloud Connector とは 検査装置が撮影した画像を自動的にクラウドへアップロー ドするためのソフトウェアです 1 前準備 クラウド上に PACS を作成する SonicDICOM Cloud

オフラインメンテナンス説明書

Microsoft Windows Internet Explorer は 米国 Microsoft Corporation の 米国およびその他の国における登録商標または商標です Linux は Linus Torvalds 氏の日本およびその他の国における登録商標または商標です Red Hat

目次 2 トップ画面の説明 設定画面を開きます iphoneなどの連絡先 ( アドレス帳 ) をバックアップ 復元します アプリ内のデータを表示します USBメモリー内のデータを表示します Dropboxと連携し Dropboxのデータを表示します 各

CLAIM接続利用手順

CSS のスパニングツリー ブリッジの設定

WinCT-AD4212D オペレーションマニュアルVer.1.01

防災マップ作成システムの開発業務基本設計書

ピツニーボウズジャパン ソリューションのご紹介

Nagios XI - SNMPでのLinux監視

InfoPrint 5577/5579 ネットワーク設定ガイド(はじめに、目次)

PC にソフトをインストールすることによって OpenVPN でセキュア SAMBA へ接続することができます 注意 OpenVPN 接続は仮想 IP を使用します ローカル環境にて IP 設定が被らない事をご確認下さい 万が一仮想 IP とローカル環境 IP が被るとローカル環境内接続が行えなくな

Windows IoT Core と Raspberry Pi 3 での Actian Zen Edge 使用 株式会社エージーテック 2018 年 7 月 5 日

通信確保と衛星電話実習 ( 業務調整員 ) 参考資料 ワイドスター Ⅱ を活用したデータ通信に関する簡易説明書 第 1.0 版 平成 2 4 年 3 月株式会社 NTTドコモ関西支社法人営業部ソリューションビジネス部 Copyright 2012 NTT docomo Inc. All Rights

Windows Media サービスのインストール

$ cmake --version $ make --version $ gcc --version 環境が無いあるいはバージョンが古い場合は yum などを用いて導入 最新化を行う 4. 圧縮ファイルを解凍する $ tar xzvf gromacs tar.gz 5. cmake を用

センサーデバイスへの仮想IP割り当て実験

Upload path ファイル送信先ディレクトリのパスを指定します ホームディレクトリに画像を送信する場合は空白のまま サブディレクトリに画像を送信する場合はディレクトリ名を指定します さらに下位のディレクトリを指定する場合は \ マークを利用します 例 ) ホームディレクトリ以下の camera

Docker Haruka Iwao Storage Solution Architect, Red Hat K.K. February 12, 2015

zabbix エージェント インストールマニュアル [Windows Server] 第 1.2 版 2018 年 05 月 18 日 青い森クラウドベース株式会社

< 付録A: ソフトウェアアップデート >

[PROJECT UX: 最新の動画配信ソリューション Part 2] IIS Media Services 3.0 の詳細 そして 4.0 へ マイクロソフト株式会社 IT Pro エバンジェリスト田辺茂也

Transcription:

Raspberry Pi 3 + HLS + Nginx でつくる Live 中継環境 (IQ 低め ) 株式会社新潟通信サービス 櫻井佑樹

http://streaming.ncom.ad.jp

2017 年 4 月 1 日 Ustream ほなな IBM Cloud Video よろしくニキー!

ぼく Live 配信サイトつくらなきゃ!( 使命感 )

ぼく うまくいったら ENOG のネタにしたろ

こうそう PC USB らずぱい インターネット サーバー インターネット スマホ

こうそう PC USB らずぱい インターネット サーバー インターネット スマホ 直接は Raspberry Pi にアクセスさせたくないな

なんやかんやありまして

こうせい R T M P サーバー 配信サーバー 会場 サーバルーム 視聴者

こうせい R T M P サーバー 配信サーバー 会場 サーバルーム 視聴者

Raspberry Pi 3 準備 Raspberry Pi 3 のお仕事 USB カメラの映像と音声を FFmpeg を使って RTMP サーバーに投げる

Raspberry Pi 3 準備 USB カメラを接続 root@raspberrypi:/home/pi# lsusb Bus 001 Device 004: ID 046d:0825 Logitech, Inc. Webcam C270 Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Raspberry Pi 3 準備 FFmpeg をインストール ALSA(Advanced Linux Sound Architecture) に対応させる Raspberry Pi 3 に内蔵の H264 ハードウェアエンコーダ h264_omx (H264 OpenMAX) に対応させる

Raspberry Pi 3 準備 FFmpeg をインストール cd /usr/local/src git://source.ffmpeg.org/ffmpeg.git wget ftp://ftp.alsa-project.org/pub/lib/alsa-lib-1.1.3.tar.bz2 tar xvjf alsa-lib-1.1.3.tar.bz2 cd alsa-lib-1.1.3./configure --prefix=/usr/local/src/ffmpeg make j4 make install cd /usr/local/src/ffmpeg./configure --enable-gpl --enable-nonfree --enable-mmal --enable-omx-rpi --enable-omx --extra-cflags=-i/usr/local/src/ffmpeg/include --extra-ldflags=-l/usr/local/src/ffmpeg/lib --extra-libs=-ldl make j4 make install

Raspberry Pi 3 準備 root@raspberrypi/home/pi# ffmpeg -formats ffmpeg version git-2017-04-04-1229007 Copyright (c) 2000-2017 the FFmpeg developers built with gcc 4.9.2 (Raspbian 4.9.2-10) configuration: --enable-gpl --enable-nonfree --enable-mmal --enable-omx-rpi --enable-omx --extra-cflags=-i/usr/local/src/ffmpeg/include --extra-ldflags=-l/usr/local/src/ffmpeg/lib --extra-libs=-ldl -- 前略 -- DE alsa -- 後略 -- ALSA audio output root@raspberrypi:/home/pi# ffmpeg -codecs ffmpeg version git-2017-04-04-1229007 Copyright (c) 2000-2017 the FFmpeg developers built with gcc 4.9.2 (Raspbian 4.9.2-10) configuration: --enable-gpl --enable-nonfree --enable-mmal --enable-omx-rpi --enable-omx --extra-cflags=-i/usr/local/src/ffmpeg/include --extra-ldflags=-l/usr/local/src/ffmpeg/lib --extra-libs=-ldl -- 前略 -- DEV.LS h264 h264_omx ) -- 後略 -- H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (decoders: h264 h264_mmal ) (encoders:

こうせい R T M P サーバー 配信サーバー 会場 サーバルーム 視聴者

RTMP サーバーの準備 RTMP(Real Time Messaging Protocol) リアルタイムにコミュニケーションを行うためのプロトコル flash で動画や音声をやり取りするために Adobe が開発 TCP 上でうごく http を介さないので低レイテンシ RTMP 用のサーバーが必要

RTMP サーバーの準備 RTMP サーバーのお仕事 Raspberry Pi 3 がストリーミングデータを流せるようにポートを開けてバッチコイする 配信サーバがストリーミングデータを取りに来れるようにポートを開けてバッチコイする

RTMP サーバーの準備 RTMP 対応 Nginx のインストール apt-get install gcc make openssl libssl-dev zip libpcre3 libpcre-dev wget https://github.com/arut/nginx-rtmp-module/archive/master.zip unzip master.zip wget https://nginx.org/download/nginx-1.12.0.tar.gz tar zxvf nginx-1.12.0.tar.gz cd nginx-1.12.0./configure --user=www-data --group=www-data --with-http_ssl_module --with-http_realip_module --add-module=../nginx-rtmp-module-master make make install

RTMP サーバーの準備 RTMP サーバーとして Nginx を起動 vi /usr/local/nginx/conf/nginx.conf 最下部に追記 rtmp { server { listen 1935; } } application live { live on; record off; } /usr/local/nginx/sbin/nginx netstat antlp Proto 受信 -Q 送信 -Q 内部アドレス 外部アドレス 状態 PID/Program name tcp 0 0 0.0.0.0:1935 0.0.0.0:* LISTEN 11254/nginx tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 11254/nginx

こうせい R T M P サーバー 配信サーバー 会場 サーバルーム 視聴者

配信サーバーの準備 HLS(HTTP Live Streaming) 動画を数秒ごとの細切れにして (.ts) ファイル名や再生時間 順番を書いたリストを作って (.m3u8) 再生側はリストを読んで細切れファイルをダウンロードする 動画は H264 音声は AAC が一般的

配信サーバーの準備 配信サーバーのお仕事 RTMP サーバから流れてくる Live 動画を HLS(HTTP Live Streaming) でストリーミング配信する Windows PC 環境でも見れるようにしてあげる

配信サーバーの準備 FFmpeg をインストール 略

配信サーバーの準備 Mac/iOS/Android : html5 <video> タグ Win : オープンソースの HLS 対応 flash ページを準備 javascript : flowplayer-3.2.12.min.js flash : flowplayer.swf, HLSProviderFlowPlayer.swf

配信してみよう Raspberry Pi 3 ( 送信 ) 側 /usr/local/bin/ffmpeg -re -y -f v4l2 -thread_queue_size 16384 -ss 00:00:02 -i /dev/video0 -f alsa -thread_queue_size 4096 -ac 1 -ar 44100 -i hw:1,0 -c:v h264_omx -b:v 1000k -bufsize 1000k -s 640x480 -c:a aac -b:a 96k -ar 44100 -map 0:0 -map 1:0 -f flv rtmp://219.101.65.200/live/1

配信してみよう Raspberry Pi 3 ( 送信 ) 側 グローバルなオプション /usr/local/bin/ffmpeg -re -y -f v4l2 -thread_queue_size 16384 -ss 00:00:02 -i /dev/video0 -f alsa -thread_queue_size 4096 -ac 1 -ar 44100 -i hw:1,0 -c:v h264_omx -b:v 1000k -bufsize 1000k -s 640x480 -c:a aac -b:a 96k -ar 44100 -map 0:0 -map 1:0 -f flv rtmp://xxx.xxx.xxx.xxx/live/1 出力に関するオプション 動画の入力に関するオプション 音声の入力に関するオプション 動画のエンコードに関するオプション 音声のエンコードに関するオプション 出力の指定

配信してみよう 配信サーバー ( 受信 ) 側 /usr/local/bin/ffmpeg -y -i rtmp://xxx.xxx.xxx.xxx/live/1 -c copy -f segment -segment_format mpegts -segment_time 5 -segment_list /var/www/html/live/stream.m3u8 /var/www/html/live/stream%04d.ts

観れてます?

こんなこともありました

ffmpeg むずかしい まず動かない 書く場所によって異なる意味を持つオプション なんで1つのコマンドに -f が3つもでてくるの なんで映像プチフリするの なんでエラーが滝のように流れてるの なんで君らは妨害してくるの

UDP で送ればいいじゃん ( いいじゃん ) R T M P サーバー 配信サーバー 観えない聞こえない 会場 サーバルーム 視聴者

ちょっとずつノイジーになる音声 視聴していると少しずつノイズが増えていき 突然ストンと通常の音声に戻る ていうか今も

今後の展望 高品質化 - 映像 - 音声 - 遅延 移動撮影 - リアルタイムで見ながら撮影 視聴ページの SNS 連携

ご清聴ありがとうございました