location ~ \.flv$ {
root /mnt/media/vod;
flv;
limit_conn addr 20;
limit_rate 200k;
}
location ~ \.mp4$ {
root /mnt/media/vod;
mp4;
limit_conn addr 20;
limit_rate 200k;
}
location /hls {
# Serve HLS fragments
alias /mnt/media/app;
}
access_log logs/nginxflv_access.log access;
}
}
——————————————————nginx配置文件——————————————
4.把自己的电影转换成mp4和flv格式来测试nginx搭的环境
4.1)准备两部电影,硬盘上随便找,我找了“谍影重重A.mp4”和“鹿鼎记033.rmvb”,尽量找小一点十来分钟的,等下我们还要看完测试一下转换的结果有没有音影不同步的情况。
我把两部电影重命名为 movie1.mp4和 movie2.rmvb,并上传到服务器/mnt/media/video下面,这里目录用来存放我们的原始视频。还有一个目录是/mnt/media/vod 用来存放转换后的视频。
我这里的具体目录结构为:
/mnt/media/video -> 存放原始视频
/mnt/media/app -> 存放转成m3u8的视频,供http访问(HLS)
/mnt/media/vod -> 存放转换后的flv和mp4视频,供http或rtmp访问
4.2)用ffmpeg转换mp4文件(ffmpeg不支持rmvb)
[root@linuxidc ~]# cd /mnt/media/video/
[root@linuxidc video]# ffmpeg -i movie1.mp4 -y -vcodec libx264 -vf scale=”640:-1″ -r 15 -acodec libfaac ../vod/movie1.flv
-y:文件覆盖,-vf scale=”640:-1”:尺寸调整为宽度640高度自动,-r 15:帧数15fps,这里用libfaac音频编码防止转成ts格式时iPhone没有声音
添加关键帧用来支持拖动播放
[root@linuxidc video]# cd ../vod
[root@linuxidc vod]# mv movie1.flv movie1-src.flv
[root@linuxidc vod]# yamdi -i movie1-src.flv -o movie1.flv
[root@linuxidc vod]# rm -rf movie1-src.flv
接下来测试的话,下载VLC Player到本地测试(VLC有时候会花屏,用JWPlayer就好了),或者不行麻烦的话装一个apache服务器并下载JWPlayer来测试。
测试播放地址为(地址已失效,请勿访问):
HTTP形式访问:
RTMP形式访问: rtmp://www.linuxidc.com/vod/movie1.flv
4.3)用mencoder转换rmvb文件
4.4)把flv转换成hls的m3u8
下载安装segmenter
[root@linuxidc ~]# yum install -y curl curl-devel zlib-devel openssl-devel perl perl-devel cpio expat-devel gettext-devel git
[root@linuxidc ~]# git clone https://github.com/johnf/m3u8-segmenter.git
[root@linuxidc ~]# cd m3u8-segmenter/
[root@linuxidc m3u8-segmenter]# gcc -Wall -g m3u8-segmenter.c -o segmenter -lavformat
[root@linuxidc m3u8-segmenter]# cp segmenter /usr/bin/
转换成ts,片源大小及清晰度等取决于flv文件,所以转成flv的时候一定要统一起来
[root@linuxidc vod]# cd /mnt/media/vod
[root@linuxidc vod]# mkdir /mnt/media/app/movie1/
[root@linuxidc vod]# ffmpeg -y -i movie1.flv -f mpegts -c:v copy -c:a copy -vbsf h264_mp4toannexb /mnt/media/app/movie1/main.ts
切片
[root@linuxidc movie1]# cd /mnt/media/app/movie1/
[root@linuxidc movie1]# segmenter -i main.ts -d 10 -p movie1 -m movie1.m3u8 -u
-d 10:每个切片为10秒,-p movie1:切片的名字的前缀
-u URL地址:m3u8中播放列表的地址前缀,自己cat一下生成的movie1.m3u8就知道什么用 了
测试一下,用iPhone的Safari访问一下
注:安装日志记录于半年前的evernote,现在才贴出来的,所以文中的视频访问地址都已经失效了。