• 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

  • 相关阅读:
    centos7没有ifconfig命令
    ubuntu建立快捷方式
    SIMTRACE环境搭建
    联想 Lenovo PWR-G60 无线掌中宝拆机
    初玩OpenWRT之编译TP-Link WR841N V8固件
    我有特殊的Windows激活姿势
    适用于WIFI Hacking的无线网卡推荐
    制作Wi-Fi Ducky远程HID攻击设备
    路由器固件安全分析技术(一)
    如何HACK无线家用警报器?
  • 原文地址:https://www.cnblogs.com/georgewangii/p/4509853.html
Copyright © 2020-2023  润新知