您的位置:首页 > 运维架构 > Linux

<开发笔记>搭建LAMP服务器及使用FFMPEG进行切片、生成m3u8文件

2015-03-12 10:28 357 查看
/************************************

允许转载,请注明文章来源和作者

Zhang Jianwei

BIT

921003zjw@163.com

************************************/
一、搭建LAMP

    在搭建LAMP时,主要参考了这一篇文章:http://wiki.ubuntu.org.cn/Apache,基本上按照上面的做法就可以了。不过在安装phpmyadmin时,要按照第一种方法来做,第二种虽然是推荐方法,但是依此方法不能够成功安装。

二、安装FFMPEG(网上教程较多,不做记述,一般可以apt-get安装)

        update:关于ffmpeg的安装经常会出现问题,在ubuntu下安装编译ffmpeg最好沿用此网页中的方法:

        http://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu
三、切片和生成m3u8文件

    这一部分主要参考了文章:http://www.cnblogs.com/mystory/archive/2013/04/07/3006200.html

    1、安装支持库

apt-get install libavformat-dev

2、获得m3u8-segmenter
https://github.com/johnf/m3u8-segmenter
   3、编译安装m3u8-segmenter

aclocal

automake -ac

./configure

make

sudo make install

    4、编译文件m3u8-segmenter

    在这个教程中,使用的命令是:

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

会报错,报错如下:

/usr/bin/ld: /tmp/ccxVPFGB.o: undefined reference to symbol 'avcodec_open2@@LIBAVCODEC_53'

/usr/bin/ld: note: 'avcodec_open2@@LIBAVCODEC_53' is defined in DSO /usr/lib/i386-linux-gnu/libavcodec.so.53
so try adding it to the linker command line

/usr/lib/i386-linux-gnu/libavcodec.so.53: could not read symbols: 无效的操作

可以发现是缺少链接库所致,按照如下命令即可成功编译:

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

5、转换文件格式(to .ts)

ffmpeg
-y -i <in file> -vcodec copy -acodec copy -vbsf h264_mp4toannexb <output file>

6、对ts文件切片并生成m3u8文件

原文命令格式有误,采用如下格式命令:

./segmenter
-i <input file> -d <length in seconds> -p <output direction/prefix> -m <m3u8 filename> -u <url>

最后一个url参数可以是网址,也可以是本机路径(如下),网址调试目前未成功,需继续调试。

./segmenter
-i test.ts -d 10 -p segtest/segtest_ -m test.m3u8 -u /home/vigor/source/

Update: Put
the out-file direction in '/var/www/html', and order is
./segmenter -i test.ts -d 10 -p segtest/segtest_ -m test.m3u8 -u http://localhost/
7、使用VLC播放m3u8文件即可。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ffmpeg lamp linux