nginx搭建支持http和rtmp协议的流媒体服务器之一

实验目的:

让Nginx支持flv和mp4格式文件,支持RTMP协议的直播和点播;

同时打开RTMP的HLS功能

?资料:

HTTP Live Streaming(缩写是 HLS)是一个由苹果公司提出的基于HTTP的流媒体网络传输协议。

HLS只请求基本的HTTP报文,与实时传输协议(RTP)不同,HLS可以穿过任何允许HTTP数据通过的防火墙或者代理服务器。

它也很容易使用内容分发网络来传输媒体流。

使用ffmpeg来完成对flv、mp4、mp3等格式的转化(点播实验暂时不测试)

一、准备工作

Nginx: http://nginx.org

模块:nginx_mod_h264_streaming(支持h264编码的视频)

模块:http_flv_module 支持flv

模块:http_mp4_module 支持mp4

下载地址:

http://h264.code-shop.com/download/nginx_mod_h264_streaming-2.2.7.tar.gz

https://github.com/arut/nginx-rtmp-module

1、安装依赖包:

#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、安装相关工具包

1). git

# mkdir soft-source

# cd soft-source

# wget http://codemonkey.org.uk/projects/git-snapshots/git/git-latest.tar.xz

# xz -d git-latest.tar.xz

# tar xzvf git-latest.tar

# cd git-2014-06-27

# autoconf

# ./configure

# make && make install

# git --version

git version 2.0.0.GIT

# cd ..

2). zlib

# wget http://zlib.net/zlib-1.2.8.tar.gz

# tar -zxvf zlib-1.2.8.tar.gz cd zlib-1.2.8

# ./configure

# make

# make install

# cd ..

3). pcre

# wget http://exim.mirror.fr/pcre/pcre-8.12.tar.gz

# tar zxvf pcre-8.12.tar.gz

# cd pcre-8.12

# ./configure

# make && make install

# cd ..

4). yadmi

yadmi的作用是为flv文件添加关键帧,才能实现拖动播放

# wget http://sourceforge.net/projects/yamdi/files/yamdi/1.4/yamdi-1.4.tar.gz/download

# tar xzvf yamdi-1.4.tar.gz

# cd yamdi-1.4

# make && make install

# cd ..

使用方法:

# yamdi -i input.flv -o out.flv

给input.flv文件 添加关键帧,输出为out.flv文件

5). OpenSSL

# wget http://www.openssl.org/source/openssl-1.0.1c.tar.gz

# tar -zxvf openssl-1.0.1c.tar.gz

# ./config

# make

# make install

3、安装ffmpeg及其依赖包:

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

2). x264

# git clone git://git.videolan.org/x264

# cd x264

# ./configure --enable-shared

# make

# make install

# cd ..

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

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

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

6). libvpx

# git clone http://git.chromium.org/webm/libvpx.git

# cd libvpx

# ./configure  --enable-shared

# make

# make install

# cd ..

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

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

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

10). ffmpeg

# 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

# ldconfig

二、安装Nginx相关模块

1. 模块安装

# 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

2. 创建用户和组

# groupadd www

# useradd -g www www

3. nginx安装

# wget http://nginx.org/download/nginx-1.6.0.tar.gz

# tar zxvf nginx-1.6.0.tar.gz

# cd nginx-1.6.0

nginx搭建支持http和rtmp协议的流媒体服务器之一,布布扣,bubuko.com

时间: 2024-10-25 18:24:01

nginx搭建支持http和rtmp协议的流媒体服务器之一的相关文章

rtmp与hls流媒体服务器搭建:ubuntu下Nginx搭建初探与rtmp-module的添加

关键词:Nignx(http服务器):rtmp,hls(流媒体服务) 前言:感谢开源,感谢战斗民族.现在在做流媒体服务的一些工作,流媒体服务器搭建的网上教程多入牛毛,但是细细查看,发现很多同志贴上来的教程都有些许问题,还有一些是爬别人的数据得来的,排版上也有问题,让新手无所适从.本文也是通过翻看一些优质的博文得到的这篇分享.以下分享的网址就是引用的博文,安利一下. 1. http://redstarofsleep.iteye.com/blog/2123752 2. http://blog.csd

nginx+nginx-rtmp-module+ffmpeg搭建流媒体服务器

参照网址: [1]http://blog.csdn.net/redstarofsleep/article/details/45092147 [2]HLS介绍:http://www.cnblogs.com/haibindev/archive/2013/01/30/2880764.html 上面这两个流的地址分别是: 第一个就是推送的地址: RTMP推流地址: rtmp://serverIp:1935/myapp/test1 第二个是HTTP地址: HLS推流地址: http://serverIp:

视频直播系统搭建过程中用到的协议

视频直播市场的火爆也催化了直播系统开发行业的发展,不少人想要搭建自己的直播平台,想要搭建直播平台就要从基础开始了解直播系统的组成.今天,就跟小编一起来学习一下搭建视频直播系统时可能会用到的协议.一.RTMP协议(Real Time Messaging Protocol)实时消息传输协议.是一种设计用来进行实时数据通信的网络协议,主要用来在Flash/AIR平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信.他有多种变种:1.RTMP工作在TCP之上,默认使用端口1935:2.RT

(转载)RTMP 协议学习总结

RTMP协议是一个互联网TCP/IP五层体系结构中应用层的协议.RTMP协议中基本的数据单元称为消息(Message).当RTMP协议在互联网中传输数据的时候,消息会被拆分成更小的单元,称为消息块(Chunk). 1 消息 消息是RTMP协议中基本的数据单元.不同种类的消息包含不同的Message Type ID,代表不同的功能.RTMP协议中一共规定了十多种消息类型,分别发挥着不同的作用.例如,Message Type ID在1-7的消息用于协议控制,这些消息一般是RTMP协议自身管理要使用的

广电电视信号如何生成RTMP流进入流媒体系统网络分发实现手机APP播放

随着网络宽带业务和数字电视的普及,家家户户都已经在用IPTV/OTT-TV的方式来看电视节目.但是从音视频的画面质量来看,广电系统的电视信号质量最佳,可以真正实现1080P网络电视画面质量甚至是H.265 HEVC的4K超高清. 随着技术的越来越进步,手机移动端的观看用户越来越多,已经渐渐形成趋势. 未来的观看人群在移动端火车上,地铁上,公交车上等等.那么如何将广电系统的电视信号转换成RTMP进入流媒体系统在互联网上进行分发,最终实现用苹果手机和安卓手机观看呢? 先来看下广电的电视信号的前端设备

高稳定、低延时、高并发RTMP播放器流媒体音视频播放器EasyPlayer-RTMP-iOS器如何将核心代码打包成静态库

背景分析 RTMP是Real Time Messaging Protocol(实时消息传输协议)的首字母缩写.该协议基于TCP,是一个协议族,包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种.RTMP是一种设计用来进行实时数据通信的网络协议,主要用来在Flash/AIR平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信.支持该协议的软件包括Adobe Media Server/Ultrant Media Server/red5等. EasyPlayer-RTMP

Linux 下搭建流媒体服务器

http://blog.csdn.net/huangtaishuai/article/details/9836581 本文说明如何在 CentOS 6 服务器(无图形界面)搭建以 VLC 为核心的直播流媒体服务器. 第一步,安装第三方 yum 源.因为官方 yum 源中是不包含 VLC 安装包的,为了不用考虑安装包之间的依赖关系,使用第三方yum源的 yum 安装方式,能极大地简化 vlc 的安装过程,将主要精力集中到如何使用 VLC 功能来搭建流媒体服务器.(如果不想使用 yum 安装的,请自

nginx搭建rtmp协议流媒体服务器总结

最近在 ubuntu12.04+wdlinux(centos)上搭建了一个rtmp服务器,感觉还挺麻烦的,所以记录下. 大部分都是参考网络上的资料. 前提: 在linux下某个目录中新建一个nginx目录. 然后进入该目录去下载搭建环境所需要的一些资源包. 此处在 /root/  目录下新建一个nginx目录即: /root/softsource/ 注意:依赖包和工具包需要下载,请在良好的网络环境下安装,否则在网速不好的情况下容易下漏掉,造成后面安装失败 ====================

利用nginx搭建RTMP视频点播、直播、HLS服务器

开发环境 Ubuntu 14.04 server nginx-1.8.1 nginx-rtmp-module nginx的服务器的搭建 安装nginx的依赖库 sudo apt-get update sudo apt-get install libpcre3 libpcre3-dev sudo apt-get install openssl libssl-dev 1 2 3 1 2 3 配置并编译nginx 使用nginx的默认配置,添加nginx的rtmp模块.  ./configure --