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,现在才贴出来的,所以文中的视频访问地址都已经失效了。

