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

一、流媒体播放方式

1、  HTTP方式

这种方式要下载FLV视频文件到本地播放,一旦FLV视频文件下载完成,就不会消耗服务器的资源和带宽,但是拖动功能没有RTMP/RTMP流媒体方式强大,很多视频网站都是用HTTP方式实现的,如:YouTube,土豆,酷6等

2、  RTMP/RTMP流媒体方式

这种方式不用下载FLV视频文件到本地,可以实时的播放flv文件,可以任意拖拽播放进度条,但是比较消耗服务器的资源。

二、使用nginx来搭建flv流媒体服务器 
1.安装git 
yum install git

2.安装依赖包 
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、安装ffmpeg及其依赖包(我的依赖包安装在/usr/local/src下,不过安装位置可以根据个人习惯而定) 
以下安装包能用yum安装的,尽量用yum来安装,没有的再wget来获得。

#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 
注:libogg根据网上各版本教程都是用的.tar.gz包来安装,不过安装后再安装libvorbis,libvpx等会发现找不到libogg安装位置,导致安装失败。

#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

安装yamdi 
yadmi的作用是为flv文件添加关键帧,才能实现拖动播放 
#下载yadmi 
wget http://sourceforge.net/projects/yamdi/files/yamdi/1.4/yamdi-1.4.tar.gz/download 
#安装yadmi 
tar xzvf yamdi-1.4.tar.gz 
cd yamdi-1.4 
make && make install 
使用方法:yamdi -i input.flv -o out.flv 
给input.flv文件 添加关键帧,输出为out.flv文件

四、修改nginx主配置文件 
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] '

'"$request" $status $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;

postpone_output  1460;

client_header_timeout  3m;

client_body_timeout    3m;

send_timeout           3m;

sendfile                on;

tcp_nopush              on;

tcp_nodelay             on;

server {

listen       80; 
        server_name  192.168.1.105; 
        root  /usr/local/nginx/html/; 
        limit_rate_after 5m;    ####在flv视频文件下载了5M以后开始限速 
         limit_rate 512k;        ####速度限制为512K 
        index   index.html;

charset utf-8;

location ~ \.flv {

flv;

}

location ~ \.mp4$ { 
                 mp4; 
        }

error_page   500 502 503 504  /50x.html;

location = /50x.html {

root   html;


}

}

五、启动nginx 
启动前检测nginx.conf文件配置 
/usr/local/nginx/sbin/nginx -t -c /usr/nginx/conf/nginx.conf 
或者 
/usr/nginx/sbin/nginx -t 
如果出错根据报错行数进行改正。 
如果报错:[error]: invalid PID number "" in "/var/run/nginx.pid" 
usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

nginx启动 
/usr/local/nginx/sbin/nginx -s reload

测试 
http://192.168.1.105/player.swf?type=http&file=test1.flv 
(其中player.swf为播放器,test1.flv为视频文件) 
播放器要和视频文件放在一起。 
视频文件位置根据nginx.conf中配置位置对应。

用nginx搭建基于rtmp或者http的flv、mp4流媒体服务器的更多相关文章

  1. Nginx搭建flv mp4流媒体服务器[转]

    Nginx搭建flv mp4流媒体服务器 作者:二蛋 时间:December 1, 2014 分类:Note 环境:Centos 6.4 32bit 一.安装依赖包 1.安装zlib wget htt ...

  2. [终极精简版][图解]Nginx搭建flv mp4流媒体服务器

    花了我接近3周,历经了重重问题,今日终于把流媒体服务器搞定,赶紧的写个博文以免忘记... 起初是跟着网上的一些教程来的,但是说的很不全面,一些东西也过时不用了(比如jwplayer老版本).我这次是用 ...

  3. [置顶][终极精简版][图解]Nginx搭建flv mp4流媒体服务器

    花了我接近3周,历经了重重问题,今日终于把流媒体服务器搞定,赶紧的写个博文以免忘记... 起初是跟着网上的一些教程来的,但是说的很不全面,一些东西也过时不用了(比如jwplayer老版本).我这次是用 ...

  4. 用nginx搭建http/rtmp/hls协议的MP4/FLV流媒体服务器

    前前后后搭建了两三个星期,终于可以告一段落,nginx实在是有点强大.写一篇笔记来记录一下这个过程中的思路和解决方案. 一.搭建nginx平台: 基本是基于http://blog.csdn.net/x ...

  5. nginx搭建基于http协议的视频点播服务器

    1,于由自己的服务器上已经安装好nginx(具体安装方法见我的另一篇文章,Linux中安装nginx),所以不再安装. 2,下载nginx_mod_h264_streaming-2.2.7.tar.g ...

  6. Nginx系列1.1:ubuntu16.04编译nginx-rtmp流媒体服务器

    1.下载nginx和nginx-rtmp-module nginx官网:nginx.org tar.gz文件 解压缩命令: wget https://nginx.org/download/nginx- ...

  7. iOS 直播推流 - 搭建基于RTMP的本地Nginx服务器

    前端时间,公司要调研直播相关的内容,特地花时间进行了一番调研. 本篇将记录其中的推流篇-本地推理播放测试. 关于Nginx: 配置Nginx以支持HLS.RTMP的推流与拉流,iOS系统使用LFLiv ...

  8. 通过nginx搭建基于python的web环境

    前言: 在搭建开始前,我们先来梳理下web服务工作流程,先看下图: 1.用户(PC)向web服务器发起http请求 2.web服务器判断用户请求文件是否为静态文件,是则直接读取静态文件并返回给用户,不 ...

  9. centos6.4搭建基于ftp的yum源让本地局域网服务器使用

    1. 挂载centos6.4 DVD镜像[root@centos64 ~]# mount /dev/cdrom /mnt 2. 安装vsftp软件,启动vsftpd服务,拷贝centos6.4 DVD ...

随机推荐

  1. Python之机器学习-波斯顿房价预测

    目录 波士顿房价预测 导入模块 获取数据 打印数据 特征选择 散点图矩阵 关联矩阵 训练模型 可视化 波士顿房价预测 导入模块 import pandas as pd import numpy as ...

  2. Anaconda基本用法

    Anaconda基本用法 conda info --envs/(-e) // 查看当前的环境变量 conda create -n py36(环境的名称,随意) python=3.6(指定版本) //  ...

  3. 97-2016年11月1日AUDUSD在公布利率后反手做单感悟(2016.11.2)

    2016年11月1日AUDUSD在公布利率后反手做单感悟         11月1日,澳联储公布利率决议,保持利率不变,AUDUSD大涨.我在上面做空认为市场会回调.做空位置是根据多种斐波那契技术找的 ...

  4. 我们参与投资36Kr股权众筹项目“易途8”的决策过程

     背景   中文接机.中文送机.中文包车. 当地玩乐   最大的竞争对手:皇包车,15年9月A轮   其它对手:唐人接等,订单量无法和 皇包车.易途8比.    看好理由 1.旅游行业和境外自由行,是 ...

  5. Linux基础命令回顾

    前言 说到linux基础命令,网上一搜一箩筐,想学也有很多教程,如果你不幸看到此篇文章,想看就认真看完,毕竟你点进来了不是嘛? 我每次写的文章都是为了分享自己的学习成果或重要知识点,希望能帮助更多的人 ...

  6. Lucene实现全文检索的流程

    [索引和搜索流程图] 对要索引的原始内容进行索引构建一个索引库,索引过程包括:确定原始内容即要搜索的内容->采集文档->创建文档->分析文档->索引文档. 从索引库中搜索内容, ...

  7. nyoj 96 n-1位数(处理前导 0 的情况)(string)

    n-1位数 时间限制:3000 ms  |            内存限制:65535 KB 难度:1   描述 已知w是一个大于10但不大于1000000的无符号整数,若w是n(n≥2)位的整数,则 ...

  8. JVM(五):探究类加载过程-上

    JVM(五):探究类加载过程-上 本文我们来研究一个Java字节码文件(Class文件)是如何加载入内存中的,在這個过程中涉及类加载过程中的加载,验证,准备,解析(连接),初始化,使用,销毁过程,并探 ...

  9. Redis集群方案收集

    说明: 如果不考虑客户端分片去实现集群,那么市面上基本可以说就三种方案最成熟,它们分别如下所示: 系统 贡献者 是否官方Redis实现 编程语言 Twemproxy Twitter 是 C Redis ...

  10. 【.Net 学习系列】-- Windows服务定时运行,判断当前时间是否在配置时间段内

    /// <summary> /// 判断程序是否在设置运行时间内 /// </summary> /// <param name="startTime" ...