Verwenden Sie Nginx, um FLV- und MP4-Streaming-Medienserver basierend auf RTMP oder http zu erstellen

WBOY
Freigeben: 2016-08-08 09:21:00
Original
1695 Leute haben es durchsucht

http://itindex.net/detail/48702-nginx-rtmp-http

1. Streaming-Medienwiedergabemethode

1. HTTP-Methode
Diese Methode lädt die FLV-Videodatei herunter und spielt sie lokal ab. Sobald die FLV-Videodatei heruntergeladen ist, verbraucht sie keine Serverressourcen und Bandbreite, die Drag-Funktion jedoch Nicht die RTMP/RTMP-Streaming-Medienmethode ist leistungsstark, viele Video-Websites werden mit der HTTP-Methode implementiert, wie zum Beispiel: YouTube, Tudou, Ku6 usw.
2. RTMP/RTMP-Streaming-Medienmethode
Bei dieser Methode muss die FLV-Videodatei nicht lokal heruntergeladen werden, sie kann die FLV-Datei in Echtzeit abspielen und Sie können den Wiedergabefortschrittsbalken nach Belieben ziehen und ablegen, verbraucht jedoch mehr Serverressourcen .
2. Verwenden Sie Nginx, um einen FLV-Streaming-Medienserver zu erstellen
1. Installieren Sie Git
yum install git
2. 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
3. Installieren Sie ffmpeg und seine abhängigen Pakete (meine abhängigen Pakete werden unter /usr/local/src installiert, aber der Installationsort kann nach persönlichen Gewohnheiten bestimmt werden)
Die folgenden Installationspakete können mit yum installiert werden. Versuchen Sie, sie mit yum zu installieren. Wenn nicht, verwenden Sie wget, um sie zu erhalten.
#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 ..
#git clone git://git.videolan.org/x264
#cd x264
#./configure --enable-shared
#make
#make install
#cd ..
#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 ..
# yum install libogg
Hinweis: libogg wird mithilfe des .tar.gz-Pakets gemäß verschiedenen Online-Tutorials installiert. Wenn Sie jedoch nach der Installation libvorbis, libvpx usw. installieren, werden Sie feststellen, dass libogg Der Installationsort kann nicht gefunden werden, was dazu führt, dass die Installation fehlschlägt. 
#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 .. 
#git clone http://git.chromium.org/webm/libvpx.git 
#cd libvpx 
#./configure  --enable-shared 
#make 
#make install
#cd .. 
#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 .. 
#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 .. 
#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 .. 
修改/etc/ld.so.conf如下: 
include ld.so.conf.d/*.conf 
/lib 
/lib64 
/usr/lib 
/usr/lib64 
/usr/local/ lib 
/usr/local/lib64 
/opt/ffmpeg/lib 
三、安装nginx模块 
#wget http://h264.code-shop.com/download/nginx_mod_h264_streaming-2.2.7.tar.gz 
#tar zxvf nginx_mod_h264_streaming-2.2.7.tar.gz
#git clone git://github.com/arut/nginx-rtmp-module.git 
#yum install pcre 
nginx没有找到地址, 只能手动下载, 然后上传了.
#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
Installieren yamdi
Die Funktion von yadmi besteht darin, Schlüsselbilder zu FLV-Dateien hinzuzufügen, um Drag & Play zu erreichen
#Download yadmi
wget http : //sourceforge.net/projects/yamdi/files/yamdi/1.4/yamdi-1.4.tar.gz/download
#Install yadmi
tar xzvf yamdi - 1.4.tar.gz
cd yamdi-1.4
make && make install
Verwendung: yamdi -i input.flv - o out.flv
Fügen Sie Schlüsselbilder zur Datei input.flv hinzu, und die Ausgabe ist die Datei out.flv
4. Ändern Sie die Nginx-Hauptkonfigurationsdatei
vi /usr/local/nginx/conf/nginx.conf
user www www
worker_processes 30
error_log /usr/local/nginx/logs/error.log crit
pid /usr/local/nginx/logs/nginx.pid; 🎜>events {
use epoll;
worker_connections 65535

http { 
        include       mime.types; 
        default_type  application/octet-stream; 
        log_format main  '$remote_addr - $remote_user [$time_local] ' 
                            bytes_sent ' 
'"$http_referer" "$http_user_agent" ' 
                                              '"$gzip_ratio"'; 
        keepalive_timeout  60; 
        server_names_hash_bucket_size  128; 
        client_header_buffer_size    32k; 
        large_client_header_buffers  4 32k; 
        access_log off; 
        gzip on; 
        gzip_min_length  1100; 
        gzip_buffers     4 8k; 
        gzip_types       text/plain; 
        Output_buffers   1 32k; 
        verschieben_output  1460; 
        client_header_timeout  3m; 
        client_body_timeout    3m; 
        send_timeout           3m; 
        sendfile                on; 
        tcp_nopush              on; 
        tcp_nodelay             on; 
server { 
        hören       80; 
        Servername  192.168.1.105; 
        root  /usr/local/nginx/html/; 
        limit_rate_after 5m;    ####在flv视频文件下载了5M以后开始限速 
         limit_rate 512k;        ####速度限制为512K 
        index   index.html; 
        Zeichensatz utf-8; 
        Standort ~ .flv { 
            flv; 
        } 
        location ~ .mp4$ { 
                 mp4; 
        }
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html; 🎜>
}
}
}
5. Nginx starten
Erkennung starten Konfiguration der Datei nginx.conf vor der Überprüfung
/usr/nginx/sbin/nginx -t
Wenn ein Fehler vorliegt, korrigieren Sie ihn entsprechend der Anzahl der Fehlerzeilen .
Wenn ein Fehler gemeldet wird: [Fehler]: ungültige PID-Nummer „“ in „/var/run/nginx.pid“
usr/local/nginx/ sbin/nginx -c /usr/local/nginx/conf/nginx.conf
nginx-Startup
/usr/local/nginx/sbin/nginx -s reload
Test
http://192.168.1.105/player.swf?type=http&file=test1.flv
(wo Spieler .swf ist Player, test1.flv ist eine Videodatei)
Der Player sollte zusammen mit der Videodatei platziert werden.
Der Speicherort der Videodatei entspricht dem in nginx.conf konfigurierten Speicherort.
Anhänge zu diesem Artikel herunterladen: play.rar (89 KB)
nginx-0.8.55.tar.gz (632,6 KB)
Das Obige stellt vor, wie man mit Nginx FLV- und MP4-Streaming-Medienserver basierend auf RTMP oder http erstellt, einschließlich der relevanten Inhalte. Ich hoffe, dass es für Freunde hilfreich ist, die an PHP-Tutorials interessiert sind.
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage