天天看点

fedora测试nginx-rtmp-module

编译m3u8-segmenter

从https://github.com/johnf/m3u8-segmenter下载m3u8-segmenter,

执行:cd m3u8-segmenter

执行:gcc -Wall -g m3u8-segmenter.c -o segmenter -lavformat -lavcodec -lavutil  -I/usr/local/ffmpeg/include   -L/usr/local/ffmpeg/lib

执行:cp segmenter /usr/bin/

测试:segmenter -i test.ts -n 30 -p sample_test -m stream-test.m3u8 -u  ./

i表示输入文件,n表示切割30个,p表示切割文件的前缀。m表示生成的m3u8文件名,u表示这些切割后的文件处于web server的哪个目录下。

ffmpeg切片

切本地文件命令:ffmpeg -i test.ts -c copy -map 0 -f segment -segment_list playlist.m3u8 -segment_time 10 output%03d.ts

切网络地址命令:ffmpeg -i rtmp://192.168.42.128/myapp/test1 -c copy -map 0 -f segment -segment_list playlist.m3u8 -segment_time 10 output%03d.ts

fedora搭建nginx

安装PCRE,ZLIB,OPENSSL库,参见http://blog.csdn.net/evsqiezi/article/details/40146777。

nginx-rtmp-module

nginx-rtmp-module一款NGINX的流媒体插件,除了直播发布音视频流之外具备流媒体服务器的常见功能

•比如推拉流媒体资源

•基于HTTP的FLV/MP4 VOD点播

•HLS (HTTP Live Streaming) M3U8的支持

•基于http的操作(发布、播放、录制)

•可以很好的协同现有的流媒体服务器以及播放器一起工作

•在线调用ffmpeg对流媒体进行转码

•H264/AAC音视频编码格式的支持

•linux/BSD/MAC系统的支持

fedora测试nginx-rtmp-module

从https://github.com/arut/nginx-rtmp-module下载nginx-rtmp-module,并解压,

编译nginx如下:

# ./configure --prefix=/usr/local/nginx  --with-openssl=/home/zf/thirdpart/openssl-1.0.0t   --with-zlib=/home/zhangfan/thirdpart/zlib-1.2.8  --add-module=/home/code/nginx-rtmp-module-master,

# make && make install

打开Nginx的配置文件nginx.conf进行配置,

首先在里面加入rtmp的配置

rtmp {

    server {

        listen 1935;

        application myapp {

            live on;

        }

        application hls {

            live on;

            hls on;

            hls_path /tmp/hls;    //此为linux下的绝对路径。

            hls_fragment 2s;

             hls_playlist_length 6s;    

          }

    }

}

然后,针对hls,还需要在http里面增加一个location配置

location /hls {

            types {

                application/vnd.apple.mpegurl m3u8;

                video/mp2t ts;

            }

            root /tmp;

            add_header Cache-Control no-cache;

}

这是一个最简单,最基础的配置, rtmp监听1935端口,如果是hls的话用hls on开启hls,并且为hls设置一个临时文件目录hls_path /tmp/hls,其它更高级的配置可以参看nginx-rtmp-module的readme。

然后执行如下:

# cd  /user/local/nginx/sbin

# ./nginx

到此,nginx已在后台运行,在客户端打开浏览器,输入 http://IP(如 http://172.16.200.60),即可看到nginx的欢迎页面。通过netstat -ltn命令可以看到增加了一个1935端口的监听.80是nginx默认的http监听端口。

测试RTMP点播

用ffmpeg向服务器推流ffmpeg -re -i source.flv -vcodec copy -acodec copy -f flv -y rtmp://192.168.1.110:1935/myapp/test,

点播地址: rtmp://192.168.1.110:1935/myapp/test。

测试HLS点播

ffmpeg转码

ffmpeg -i  hk.ts  -vcodec h264 -s 640x480 -bf 0 -r 25 -g 25 -acodec aac -ar 44100  hk.mp4

用ffmpeg向服务器推流

 ffmpeg -re -i killer.mp4 -vcodec copy -acodec copy -f flv -y rtmp://192.168.1.110:1935/hls/test

ffmpeg -re -i rtmp://live.hkstv.hk.lxdns.com/live/hks  -vcodec copy -acodec copy -f flv -y rtmp://10.80.3.17:1935/hls/test

点播地址: http://192.168.1.110/hls/test.m3u8。

常用命令

重启

./nginx -s reload

关闭

查询nginx主进程号

ps -ef | grep nginx

从容停止   kill -QUIT 主进程号

快速停止   kill -TERM 主进程号

强制停止   kill -9 nginx

继续阅读