以下是Linux系统的搭建,需要win系统下面的配置请到:http://91flv.com/help/2014-07-09/277.html
一、安装nginx服务
(1) 安装
apt-get install nginx
(2) 配置
1. 在/etc/nginx/mime.types中的types的括号内加入以下两行:
application/x-mpegURL m3u8;video/MP2T ts;
2. 在/etc/nginx/nginx.conf文件中,
找到下面一行:include /etc/nginx/sites-enabled/*;将其注释掉,然后换成下面一行:include /etc/nginx/sites-enabled/myweb;
3. 在/etc/nginx/sites-enabled目录下,创建myweb文件,文件内容如下
- <pre name="code" class="plain"><pre name="code" class="plain">server {
- listen 8080; ## listen for ipv4; this line is default and implied
- root /var/www/hls;
- index index.html index.htm;
- location / {
- try_files $uri $uri/ /index.html;
- }
- location /doc/ {
- alias /usr/share/doc/;
- autoindex on;
- allow all;
- }
- }</pre></pre>
注:root选项后面的/var/www/hls是指nginx服务器的根目录。
(3) 启动
service nginx restart
二、安装ffmpeg
apt-get install ffmpeg
三、下载编译segmenter
下载:https://github.com/johnf/m3u8-segmenter.git
编译:
gcc -Wall -g segmenter.c -o segmenter -lavformat
注,不需要使用m3u8-segmenter目录中的.configure和Makefile来编译,而只需要segmenter.c文件编译
四、将视频文件转化为http live stream文件:
(1) 脚本如下:
- #!/bin/sh
- file=$1
- file_name=`echo ${file} | awk -F '.' '{ print $1 "" }'`
- ffmpeg -i $1 -f mpegts -acodec libmp3lame -ar 48000 -ab 128k -vcodec libx264 -b 96k -flags +loop -cmp +chroma -partitions +parti4x4+partp8x8+partb8x8 -subq 5 -trellis 1 -refs 1 -coder 0 -me_range 16 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -bt 200k -maxrate 96k -bufsize 96k -rc_eq 'blurCplx^(1-qComp)' -qcomp 0.6 -qmin 10 -qmax 51 -qdiff 4 -level 30 -aspect 320:240 -g 30 -async 2 ${file_name}.ts
- ./segmenter -i ${file_name}.ts -n 20 -p hls -m ${file_name}.m3u8 -u http://192.168.6.240:8080/
(2) 此脚本命名为convert,并和segmenter和视频文件放在/var/www/hls/目录下。
(3) 使用方法:
./convert 视频文件名
注:会产生较多的.ts文件和一个.m3u8文件。
五、使用vlc测试
打开vlc的网络串流,则对话框输入
http://192.168.6.240:8080/视频文件名.m3u8
点击播放,则可以正常的播放视频。