ffmpeg + m3u8-segmenter 配置

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

时间: 2024-10-29 10:46:47

ffmpeg + m3u8-segmenter 配置的相关文章

xcode5下ffmpeg静态库配置

1.要安装xcode命令行工具 1).xcode5安装命令行工具方法: 在终端执行命令Using xcode-select --install 2).xcode5之前安装命令行工具方法: 2.xcode5以前都是gcc编译的,在xcode5以后都是clang编译,在脚本中有所体现 3.xcode5以前还要下载gas-preprocessor.pl脚本包,然后使用cp命令拷贝到usr/bin下面, 在xcode5以后不需要下载这个gas-preprocessor.pl脚本 4.下载ffmpeg源码

关于iOS上使用ffmpeg的编译配置

使用ffmpeg进行音视频开发,首先编译需要把ffmpeg的源码编译成静态库,编译不是大问题,关键问题是编译的时候的各种配置该怎么设置的问题.之前在网上搜索学习,这篇文章不错:iOS: FFmpeg编译和使用问题总结 .有些文章给出编译的整个命令,有的给脚本链接,但是都有一些问题,因为ffmpeg版本更新了.iOS版本更新了(我下的是ffmpeg2.3).最后东拼西凑,终于编译成功了一个,编译命令是: (1) ./configure --prefix=../i386 --disable-ffmp

Windows平台下使用ffmpeg和segmenter实现m3u8直播点播

1.安装windows media service 实现 流媒体服务器功能 2.windows media编码器 实现 直播推流 3.使用 vlc 将 mms://127.0.0.1/live 直播流转换为  http://127.0.0.1:8899/stream.flv 4.使用 ffmpeg 将http://127.0.0.1:8899/stream.flv 转换编码 给 segmenter 喂流 生成 m3u8 5.阿炬为解决并发问题,将生成的 文件实时同步至 阿里云 oss 6.采用

xcode5下一个ffmpeg静态库配置

1.若要安装xcode命令行工具 1).xcode5安装命令行工具方法: 在终端运行命令Using xcode-select --install 2).xcode5之前安装命令行工具方法: 2.xcode5曾经都是gcc编译的,在xcode5以后都是clang编译.在脚本中有所体现 3.xcode5曾经还要下载gas-preprocessor.pl脚本包,然后使用cp命令复制到usr/bin以下, 在xcode5以后不须要下载这个gas-preprocessor.pl脚本 4.下载ffmpeg源

ffmpeg H264 编码配置

ffmpeg H264编码前面有文章介绍下,本文主要介绍一些参数配置. int InitEncoderCodec( int iWidth, int iHeight) { AVCodec * pH264Codec = avcodec_find_encoder(AV_CODEC_ID_H264); if(NULL == pH264Codec) { printf("%s", "avcodec_find_encoder failed"); return -1; } outP

1、VS2005+FFmpeg+SDL 环境配置

配置环境如下: PC:Windows XP SP3 IDE: Visual Studio 2005 FFmpeg: git-c0f67e1 (2015-12-21) SDL: SDL2-2.0.3 1.下载FFmpeg(shared & Dev): http://ffmpeg.zeranoe.com/builds/ 2.下载SDL(Dev lib): http://www.libsdl.org/download-2.0.php 3.新建win32控制台应用程序->空项目 4.源文件->

VS2013 FFmpeg开发环境配置

1.下载ffmpeg包(dll.include.lib)   https://ffmpeg.zeranoe.com/builds/ 有3个版本:Static.Shared和Dev Static  --- 包含3个应用程序:ffmpeg.exe , ffplay.exe , ffprobe.exe,相关的DLL已经被编译到exe里了. Shared---包含3个应用程序之外还包含一些DLL,exe体积很小,在运行时到相应的DLL中调用功能. Dev     ---开发者(developer)版本,

vs2015+ffmpeg开发环境配置

参考教程 https://blog.csdn.net/HUSTLX/article/details/51014307 1.在http://ffmpeg.zeranoe.com/builds/  下载最新的ffmpeg的dev版和share版,注意下载的时候严格区分x64和x86,取决于你vs2015调试的解决方案平台用什么,如果安装了错误的版本将会出现一堆无法解析的错误.包含三个版本:Static.Shared以及Dev• Static   --- 包含3个应用程序:ffmpeg.exe , f

PHP+ffmpeg+nginx的配置实现视频转码(转)

最近项目中需要实现上传视频过程中自动转码MP4格式的功能,想到了用FFmpeg来实现它,但从来没有操作过,查阅了很多资料,遇到了好多问题,现在终于安装成功,觉得应该写下来与人分享一下,以免有人遇到和我一样的困境. 首先我是CentOs 6.7版本 环境是LNMP 我需要用PHP实现在上传过程中实施转码功能. 下面详细介绍一下安装ffmpeg扩展的操作 要求:具有完全root访问权限. ①从repo导入GPG密钥: rpm --import http://packages.atrpms.net/R

Windows FFMPEG开发环境配置

1.去FFMPEG网站上下载Dev版本的库,里面有我们需要的头文件和lib文件,然后下载Shared版本的库,里面有我们需要的dll文件 http://ffmpeg.zeranoe.com/builds/ 记得区分32位和64位的库,这里碰到一个大坑,就是我下载的是64位的库,但是创建工程的时候选的是32位的工程,导致链接的时候一直报 无法解析的外部符号 _av_register_all...(这个因为以前在Linux上使用的都是自己编译出来的库,所以没注意这个坑) 最后通过这个链接解决的 ht