ffmpeg + m3u8-segmen

发布时间:2019-09-15 09:58:35编辑:auto阅读(1618)

    HTML5 + 流媒体文件


    目前安装过的服务器版本

    ubuntu 1.3

    Centos 6.5


    下面2个是在Centos上使用的

    Centos 准备安装删除已安装包

    yum erase ffmpeg x264 x264-devel


    Centos 安装各种依赖包

    yum install  gcc make nasm pkgconfig wget curl curl-devel zlib-devel openssl-devel perl cpio expat-devel gettext-devel libtool mhash.x86_64 perl-Digest-SHA1.x86_64  pcre.i386 pcre.x86_64 pcre-devel.i386 pcre-devel.x86_64


    整个过程中可能还需要 g++ gcc git svn 等工具 自己随便下下就可以了

    centos 的 gcc g++ 安装方法 yum install gcc gcc-c++ 。


    该连接可下载下面所有的包  http://pan.baidu.com/s/1eQvHauu

    首先安装ffmpeg和他的组件

    1.1 安装nasm编译器支持汇编优化(lame库需要)

    对安装了apt-get的linux机器,可直接执行以下命令安装nasm。

    # sudo apt-get install nasm

            也可以用源代码编译并安装。先在网上获取nasm-2.10.05.tar.bz2

    解压:

    tar xvf nasm-2.10.05.tar.bz2

    cd nasm-2.10.05

    配置安装目录为/usr/bin:

    ./configure --prefix=/usr

    编译并安装:

    make && make install


    1.2 安装yasm编译器支持汇编优化(ffmpeg库需要)

    wget http://www.tortall.net/projects/yasm/releases/yasm-1.2.0.tar.gz

    解压:

    tar xvf yasm-1.2.0.tar.gz

    cd yasm-1.2.0

    配置安装目录为/usr/bin:

    ./configure --prefix=/usr

    编译并安装:

    make && make install


    1.3 安装lame库支持mp3音频

    wget http://downloads.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz

    tar xvf lame-3.99.5.tar.gz

     cd lame-3.99.5

     ./configure --enable-nasm

    make && make install


    1.4 安装faac库支持mpeg4 aac音频

    wget http://downloads.sourceforge.net/project/faac/faac-src/faac-1.28/faac-1.28.tar.gz

    tar xvf faac-1.28.tar.gz

    cd faac-1.28

    ./configure --with-mp4v2

    这里需要修改:

    vim common/mp4v2/mpeg4ip.h

    从123行开始修改此文件mpeg4ip.h,到129行结束。
    修改前:
    #ifdef __cplusplus
    extern "C" {
    #endif
    char *strcasestr(const char *haystack, const char *needle);
    #ifdef __cplusplus
    }
    #endif

    修改后:
    #ifdef __cplusplus
    extern "C++" {
    #endif
    const char *strcasestr(const char *haystack, const char *needle);
    #ifdef __cplusplus
    }
    #endif

    make && make install


    1.5 安装libogg库支持ogg音频

    wget http://downloads.xiph.org/releases/ogg/libogg-1.3.1.tar.gz

    tar xvf libogg-1.3.1.tar.gz

    cd libogg-1.3.1

    ./configure

    make && make install


    1.6 安装theora

    wget http://downloads.xiph.org/releases/theora/libtheora-1.1.1.tar.gz

    tar xvf libtheora-1.1.1.tar.gz

    cd libtheora-1.1.1

    ./configure

    make && make install


    1.7 安装x264库支持h.264视频转码

    执行以下命令获取x264的最新源代码

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

    cd x264

    ./configure --enable-shared

    make && make install


    1.8 安装xvid库支持mpeg4视频转码

    wget http://downloads.xvid.org/downloads/xvidcore-1.3.2.tar.gz

            获取最新的xvid mpeg4编×××源代码

    tar xvf xvidcore-1.3.2.tar.gz

    cd xvidcore/build/generic

    ./configure

    make && make install


    1.9 安装libnut

    该软件需要用svn获取源代码,svn可以直接用yum install svn来装。

    先下载:

    svn co svn://svn.mplayerhq.hu/nut/src/trunk libnut

    下载后代码保存在新建立的libnut目录下,对于64位Linux需要修改配置文件:

    cd libnut

    vim config.mak

    在最后一个CFLAGS下一行增加:

    CFLAGS += -fPIC

    然后编译安装:

    make && make install


    1.10 libvpx

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

    cd libvpx

    ./configure  --enable-shared

    make && make install


    1.11 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


    1.12 安装vorbis

    wget http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.4.tar.gz

    tar xvf libvorbis-1.3.4.tar.gz

    cd libvorbis-1.3.4

    ./configure

    make && make install


    1.13 修改链接环境变量

    上面的媒体支持库安装完后,可以设置下环境准备编译ffmpeg了。不过在此之前必须修改环境变量

    vim /etc/ld.so.conf

    在文件末增加一行:

    /usr/local/lib

           然后生效之:

    ldconfig -v


    2 编译ffmpeg

    执行以下命令获取ffmpeg源代码

    git clone git://source.ffmpeg.org/ffmpeg.git

    cd ffmpeg

    ./configure  --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 --enable-libnut --enable-libtheora

    ***需要保证 --enable-libx264能执行

    make && make install

    ldconfig -v


    分割器分2种

    3.  TS流分割器segmenter的安装与使用

    第一个 m3u8-segmenter

            git clone https://github.com/johnf/m3u8-segmenter

            下载m3u8-segmenter 下载后不要用它的反复编译,直接取m3u8-segmenter.c文件。

    执行

    gcc -Wall -g m3u8-segmenter.c -o segmenter -lavformat -lavcodec -lavutil


    第二个 segmenter

    svn co http://httpsegmenter.googlecode.com/svn/trunk segmenter

    cd  segmenter

    gcc -Wall -g segmenter.c -o segmenter -lavformat -lavcodec -lavutil -std=c99


    安装好其中一个后

    cp segmenter /usr/bin/

    把执行文件拷贝过去。



    下面给2个超简单的执行例子

    直接转成ts

    ffmpeg -i vp5.flv -acodec copy -vcodec libx264 vp5.ts

    分割转成ts 一秒为单位

    ffmpeg -ss 0 -t 30 -i vp5.flv -acodec copy -vcodec libx264 1.ts

    ffmpeg -ss 30 -t 60 -i vp5.flv -acodec copy -vcodec libx264 2.ts

    合并

    ffmpeg -i "concat:1.ts|2.ts" -acodec copy -vcodec copy -absf aac_adtstoasc output.mp4

    切割

    m3u8-segmenter -i test.ts -d 10 -p segmenter_test -m test.m3u8 -u http://127.0.0.1:8080/Video/


    这样就可以切片出m3u8文件  直接使用hls



关键字