


[Nachdruck] Verwenden Sie Nginx, um einen Streaming-Medienserver für die Protokolle http und rtmp zu erstellen
Von //http://blog.chedushi.com/archives/6532?utm_source=tuicool
Verwenden Sie Nginx, um einen Streaming-Medienserver mit den Protokollen http und rtmp zu erstellen.Zweck des Experiments:
Lassen Sie Nginx Dateien im FLV- und MP4-Format unterstützen und gleichzeitig das Rtmp-Protokoll öffnen
Informationen:
HTTP Live Streaming (abgekürzt HLS) ist ein von Apple vorgeschlagenes HTTP-basiertes Streaming-Media-Netzwerkübertragungsprotokoll.
HLS fordert nur einfache HTTP-Nachrichten an. Im Gegensatz zum Real-Time Transport Protocol (RTP) kann HLS jede Firewall oder jeden Proxyserver passieren, der HTTP-Daten passieren lässt. Es ist auch einfach, ein Content-Delivery-Netzwerk zum Streamen von Medien zu nutzen.
Verwenden Sie ffmpeg, um die Konvertierung von FLV, MP4, MP3 und anderen Formaten abzuschließen (das On-Demand-Experiment wird derzeit nicht getestet)
1. Vorbereitungsarbeiten
Modul: nginx_mod_h264_streaming (unterstützt h264-codierte Videos )
Modul: http_flv_module Support flv
Modul: http_mp4_module Support mp4
Modul: nginx-rtmp-module Support rtmp //2015-3-5 add
Download-Adresse:
http:// h264.code-shop.com /download/nginx_mod_h264_streaming-2.2.7.tar.gz
http://nginx.org
https://github.com/arut/nginx-rtmp-module
1. Abhängigkeitspakete installieren:
#yum -y install gcc glibc glibc-devel make nasm pkgconfig lib-devel openssl-devel expat-devel gettext-devel libtool mhash.x86_64 perl-Digest-SHA1.x86_64
2. Git-Tools installieren:
#mkdir soft-source
#cd soft-source
#wget http://www.codemonkey.org.uk/projects/git-snapshots/git/git-latest.tar .gz
#tar xzvf git-latest.tar.gz
#cd git-2013-02-04
#autoconf
#./configure
#make && make install
# git –version
git version 1.8.1.GIT
#cd ..
3. Installieren Sie ffmpeg und seine abhängigen Pakete:
++++++++Yasm++++++++++
#wget http://www.tortall .net/projects/yasm/releases/yasm-1.2.0.tar.gz
#tar xzvf yasm-1.2.0.tar.gz
#cd yasm-1.2.0
#./configure
#make
#make install
#cd ..
++++++++x264+++++++++++
#git clone git://git.videolan .org/x264
#cd x264
#./configure –enable-shared
#make
#make install
#cd ..
++++++++ LAME+++++++++++
#wget http ://downloads.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz
#tar xzvf lame-3.99.5.tar.gz
#cd lame-3.99.5
#./configure –enable-nasm
#make
#make install
#cd ..
++++++++libogg+++++++++
#wget http://downloads.xiph.org/releases/ogg/libogg-1.3.0.tar.gz
#tar xzvf libogg-1.3.0.tar.gz
#cd libogg-1.3 .0
#. /configure
#make
#make install
#cd ..
++++++++libvorbis++++++++++
#wget http://downloads. xiph.org/releases/vorbis /libvorbis-1.3.3.tar.gz
#tar xzvf libvorbis-1.3.3.tar.gz
#cd libvorbis-1.3.3
#./configure
#make
#make install
#cd ..
++++++++libvpx++++++++++++
#git clone http://git.chromium.org/webm/libvpx.git
#cd libvpx
#./configure –enable-shared
#make
#make install
#cd ..
++++++++FAAD2+++++++++++
#wget http://downloads .sourceforge.net/project/faac/faad2-src/faad2-2.7/faad2-2.7.tar.gz
#tar zxvf faad2-2.7.tar.gz
#cd faad2 -2.7
#. /configure
#make
#make install
#cd ..
++++++++FAAC+++++++++++
#wget http://downloads. sourceforge.net/project/faac /faac-src/faac-1.28/faac-1.28.tar.gz
#tar zxvf faac-1.28.tar.gz
#cd faac-1.28
#./ configure
#make
#make install
#cd ..
++++++++Xvid++++++++++++
#wget http://downloads.xvid.org/downloads/xvidcore- 1.3.2.tar.gz
#tar zxvf xvidcore-1.3.2.tar.gz
#cd xvidcore/build/generic
#./configure
#make
#make install
cd ..
#git clone git://source.ffmpeg.org/ffmpeg
#cd ffmpeg
#./configure –prefix=/opt/ffmpeg/ –enable-version3 –enable -libvpx –enable-libfaac – enable-libmp3lame –enable-libvorbis –enable-libx264 –enable-libxvid –enable-shared –enable-gpl –enable-postproc –enable-nonfree –enable-avfilter –enable-pthreads
# make && make install
#cd ..
Ändern Sie /etc/ld.so.conf wie folgt:
include ld.so.conf.d/*.conf
/lib
/ lib64
/usr/lib
/usr/lib64
/usr/local/lib
/usr/local/lib64
/opt/ffmpeg/lib
#ldconfig
2. Installieren Sie Nginx-bezogene Module
#tar zxvf nginx_mod_h264_streaming-2.2.7.tar.gz
#git clone git://github.com/arut/nginx-rtmp-module.git
#tar zxvf pcre-8.12.tar.gz
#cd pcre-8.12
#./configure
#make && make install
#tar zxvf nginx-1.2.6.tar.gz
#cd nginx-1.2.6
#./configure –prefix=/usr/local/nginx –add-module=../nginx_mod_h264_streaming-2.2.7 –with-http_flv_module –with-http_gzip_static_module –with-http_stub_status_module –with-http_mp4_module –add-module=../ nginx-rtmp-module –add-module=../nginx-rtmp-module/hls –with-cc-opt=-I/opt/ffmpeg/include –with-ld-opt=’-L/opt/ffmpeg/lib -Wl,-rpath=/opt/ffmpeg/lib’
#make && make install
3. Ändern Sie die Nginx-Hauptkonfigurationsdatei und konfigurieren Sie den virtuellen Host (hier konfigurieren und testen wir vorerst nur bei Bedarf, bitte sehen Sie sich die Referenzadresse für die Live-Übertragung an):
Benutzer niemand niemand;
worker_processes 4;
error_log logs/nginx_error.log info;
pid logs/nginx.pid;
worker_rlimit_nofile 51200;
events
{
use epoll;
worker_connections 51200;
}
#rtmp_auto_push on;
rtmp {
server {
listen 1935;
application vod {
play /opt/media/nginxrtmp/flv;
}
}
}
http
{
include mime.types;
default_type application/octet-stream;
server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 50m ;
limit_conn_zone $binary_remote_addr zone=perip:256k;
limit_conn_log_level notice;
sendfile on;
tcp_nopush on;
keepalive_timeout 6000;#测试并发临时调大
tcp_nodelay on;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on;
#log format
log_format main ‘$remote_addr – $remote_user [$time_local] “$request” ‘
‘$status $body_bytes_sent “$http_referer” ‘
‘”$http_user_agent” $http_x_forwarded_for’;
#支持flv
server
{
listen 8081;
server_name 192.168.0.33;
root /opt/pub/media/nginx; #http协议时候,flv视频位置
location ~ .*.(flv|swf|mp4|wma|wmv)$ {
valid_referers none blocked *.xxxx.com http://localhost;
if ($invalid_referer) {
return 403;
}
}
location ~ \.flv$ {
flv;
limit_conn one 20;#限制客户端并发连接数
limit_rate 200k;#限制每客户端最大带宽
}
location ~ \.mp4$ {
flv;
limit_conn one 20;
limit_rate 200k;
}
access_log logs/nginxflv_access.log main;
}
server
{
listen 8082;
server_name 192.168.0.33;
index index.html;
location / {
root /opt/pub/media/nginx-rtmp;
}
access_log logs/nginxrtmpflv_access.log main;
}
server {
listen 8080;
location /stat {
rtmp_stat all;
rtmp_stat_stylesheet stat.xsl;
}
location /stat.xsl {
root /opt/pub/soft/nginx-rtmp-module;
}
location / {
root /opt/pub/soft/nginx-rtmp-module/test/rtmp-publisher;
}
}
http://192.168.0.33:8080/stats 查看rtmp客户请求信息
http://192.168.0.33:8081/index.html 查看nginx http协议时候的flv视频
http://192.168.0.33:8082/index.html 查看nginx rtmp协议时候的flv视频
四、基本功能测试:
播放器采用开源播放器jwplayer,将播放器放到index.html同级目录下
NGINX-Http测试页面index.html(切记http的时候需要给视频添加关键帧)
NGINX-RTMP测试页面index.html
页面能打开正常播放就说明配置是正确的.
五、并发测试
NGINX-HTTP采用loadrunner测试(略)
NGINX-RTMP采用开源软件flazr测试:
前提需要安装jdk软件
Client .bat rtmp://192.168.0.33:1935/vod/2.flv -load 500定大小的时候就上不去了,故此步截图不忽略.
以上就介绍了【转载】利用Nginx搭建http和rtmp协议的流媒体服务器, 包括了方面的内容, 希望对PHP-Version兴趣的朋友有所帮助.

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen











Wie konfiguriere ich Nginx in Windows? Installieren Sie NGINX und erstellen Sie eine virtuelle Hostkonfiguration. Ändern Sie die Hauptkonfigurationsdatei und geben Sie die Konfiguration der virtuellen Host ein. Starten oder laden Nginx neu. Testen Sie die Konfiguration und sehen Sie sich die Website an. Aktivieren Sie selektiv SSL und konfigurieren Sie SSL -Zertifikate. Stellen Sie die Firewall selektiv fest, damit Port 80 und 443 Verkehr.

Startschritte des Docker -Containers: Ziehen Sie das Containerbild: Führen Sie "Docker Pull [Mirror Name]" aus. Erstellen eines Containers: Verwenden Sie "Docker erstellen [Optionen] [Spiegelname] [Befehle und Parameter]". Starten Sie den Container: Führen Sie "Docker Start [Container Name oder ID]" aus. Containerstatus überprüfen: Stellen Sie sicher, dass der Container mit "Docker PS" ausgeführt wird.

Sie können den Namen des Docker -Containers abfragen, indem Sie den Schritten folgen: Alle Container auflisten (Docker PS). Filtern Sie die Containerliste (unter Verwendung des GREP -Befehls). Ruft den Containernamen ab (befindet sich in der Spalte "Namen").

So bestätigen Sie, ob Nginx gestartet wird: 1. Verwenden Sie die Befehlszeile: SystemCTL Status Nginx (Linux/Unix), Netstat -ano | FindStr 80 (Windows); 2. Überprüfen Sie, ob Port 80 geöffnet ist; 3. Überprüfen Sie die Nginx -Startmeldung im Systemprotokoll. 4. Verwenden Sie Tools von Drittanbietern wie Nagios, Zabbix und Icinga.

Erstellen Sie einen Container in Docker: 1. Ziehen Sie das Bild: Docker Pull [Spiegelname] 2. Erstellen Sie einen Container: Docker Ausführen [Optionen] [Spiegelname] [Befehl] 3. Starten Sie den Container: Docker Start [Containername]

Die Methoden, die die Nginx -Version abfragen können, sind: Verwenden Sie den Befehl nginx -v; Zeigen Sie die Versionsrichtlinie in der Datei nginx.conf an. Öffnen Sie die Nginx -Fehlerseite und sehen Sie sich den Seitentitel an.

So konfigurieren Sie einen Nginx -Domänennamen auf einem Cloud -Server: Erstellen Sie einen Datensatz, der auf die öffentliche IP -Adresse des Cloud -Servers zeigt. Fügen Sie virtuelle Hostblöcke in die NGINX -Konfigurationsdatei hinzu, wobei der Hörport, Domänenname und das Root -Verzeichnis der Website angegeben werden. Starten Sie Nginx neu, um die Änderungen anzuwenden. Greifen Sie auf die Konfiguration des Domänennamens zu. Weitere Hinweise: Installieren Sie das SSL -Zertifikat, um HTTPS zu aktivieren, sicherzustellen, dass die Firewall den Verkehr von Port 80 ermöglicht, und warten Sie, bis die DNS -Auflösung wirksam wird.

Wenn der Nginx -Server ausgeht, können Sie die folgenden Schritte zur Fehlerbehebung ausführen: Überprüfen Sie, ob der Nginx -Prozess ausgeführt wird. Zeigen Sie das Fehlerprotokoll für Fehlermeldungen an. Überprüfen Sie die Syntax der Nginx -Konfiguration. Stellen Sie sicher, dass Nginx über die Berechtigungen verfügt, die Sie für den Zugriff auf die Datei benötigen. Überprüfen Sie den Dateideskriptor, um Grenzen zu öffnen. Bestätigen Sie, dass Nginx den richtigen Port zuhört. Fügen Sie Firewall -Regeln hinzu, um den Nginx -Verkehr zuzulassen. Überprüfen Sie die Einstellungen der Reverse -Proxy, einschließlich der Verfügbarkeit von Backend Server. Für weitere Unterstützung wenden Sie sich bitte an den technischen Support.
