搭建HLS时遇到的问题
一、安装 (环境:ubuntu server 14)
1. 安装ffmpeg
1 apt-get install ffmpeg
(这个我没有测试成功!),我用下面这种方式:
1 wget http://ffmpeg.org/releases/ffmpeg-2.7.2.tar.bz2 2 tar -xjvf ffmpeg-2.7.2.tar.bz2 3 cd ffmpeg-2.7.2 4 ./configure --enable-gpl --enable-version3 --enable-shared --enable-nonfree --enable-postproc\ 5 --enable-libfaac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb \ 6 --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid
可能会缺少些什么,安装上就是了。
2. 安装libavformat-dev,为m3u8-segmenter准备
1 apt-get install libavformat-dev
3. 安装m3u8-segmenter (这是重点)
1 git clone https://github.com/johnf/m3u8-segmenter 2 cd m3u8-segmenter
其实只编译里面的m3u8-segmenter.c文件就可以了。
1 gcc -Wall -g m3u8-segmenter.c -o segmenter -lavformat -lavcodec -lavutil
这时会报错,请将上面“ffmpeg-2.7.2”文件里的以“libav”打头的文件全复制到m3u8-segmenter文件下。再来一次:
1 gcc -Wall -g m3u8-segmenter.c -o segmenter -lavformat -lavcodec -lavutil
编译通过
二、使用
1. 把视频转为TS视频流
转MP4视频
1 ffmpeg -y -i vp5.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb vpt.ts
转flv视频
1 ffmpeg -i vp5.flv -acodec copy -vcodec libx264 vp5.ts
等等的格式也差不多
2. 把TS视频流切片为m3u8文件
1 segmenter -i vp5.ts -d 10 -p segmenter_test -m vp5.m3u8 -u
或,如下这种方式 (好像是用于视频直播):
1 segmenter -i vp5.ts -d 10 -p segmenter_test -m vp5.m3u8 -u http://127.0.0.1:8080/Video/
3. 在项目中使用:
1 <div id="a1"></div> 2 <script type="text/javascript" src="/ckplayer/ckplayer.js" charset="utf-8"></script> 3 <script type="text/javascript"> 4 var flashvars={ 5 f:'/ckplayer/m3u8.swf', 6 a:'/videos/vp5.m3u8', 7 c:0, 8 s:4, 9 lv:0 10 }; 11 var params={bgcolor:'#FFF',allowFullScreen:true,allowScriptAccess:'always',wmode:'transparent'}; 12 CKobject.embedSWF('/ckplayer/ckplayer.swf','a1','ckplayer_a1','600','400',flashvars,params); 13 </script>