zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    NBUT 1120 Reimu's Teleport (线段树)
    NBUT 1119 Patchouli's Books (STL应用)
    NBUT 1118 Marisa's Affair (排序统计,水)
    NBUT 1117 Kotiya's Incantation(字符输入处理)
    NBUT 1115 Cirno's Trick (水)
    NBUT 1114 Alice's Puppets(排序统计,水)
    188 Best Time to Buy and Sell Stock IV 买卖股票的最佳时机 IV
    187 Repeated DNA Sequences 重复的DNA序列
    179 Largest Number 把数组排成最大的数
    174 Dungeon Game 地下城游戏
  • 原文地址:https://www.cnblogs.com/georgewangii/p/4509853.html
Copyright © 2011-2022 走看看