Nginx增加m3u8流视频文件功能模块 推流和拉流
shell
./configure --prefix=/u06/data/apps/nginx-rtmp \
--pid-path=/u06/data/logs/nginx-rtmp/nginx.pid \
--lock-path=/u06/data/apps/nginx-rtmp/nginx.lock \
--error-log-path=/u06/data/logs/nginx-rtmp/error.log \
--http-log-path=/u06/data/logs/nginx-rtmp/access.log \
--http-client-body-temp-path=/u06/data/temps/nginx-rtmp/client_body_temp \
--http-proxy-temp-path=/u06/data/temps/nginx-rtmp/proxy_temp \
--http-fastcgi-temp-path=/u06/data/temps/nginx-rtmp/fastcgi_temp \
--http-uwsgi-temp-path=/u06/data/temps/nginx-rtmp/uwsgi_temp \
--http-scgi-temp-path=/u06/data/temps/nginx-rtmp/scgi_temp \
--with-http_stub_status_module \
--with-http_ssl_module \
--add-module=/u06/data/software/fastdfs-nginx-module/src \
--add-module=/u06/data/software/nginx-rtmp-module
make
make install
Nginx配置
shell
vim /u06/data/apps/nginx-rtmp/conf/nginx.conf
rtmp {
server {
listen 1935;
chunk_size 4000;
application hls {
live on;
hls on;
hls_path /u06/data/datas/fdfs/hls;
}
}
}
location /hls {
types {
application/vnd.apple.mpegurl m3u8;
video/mp2t ts;
}
root /u06/data/datas/fdfs;
ngx_fastdfs_module;
add_header Cache-Control no-cache;
expires -1;
}
cd /u06/data/datas/fdfs/hls
生成aaa.m3u8文件
ffmpeg -re -i /u06/data/datas/fdfs/path0/data/00/00/wKgBMlvaDUCAKnRbAATfpUYN9Vw280.mp4 -vcodec copy -f flv rtmp://192.168.1.50:1935/hls/aaa
Chrome不支持m3u8文件播放,会直接下载,可以安装插件 play-hls-m3u8-1.1.crx
用Safari访问: http://192.168.1.50:9998/hls/aaa.m3u8
过不了多久hls目录下的m3u8文件和ts文件会全部自动清除的, rtmp的实时机制
注意: 其实什么都不用安装也不用改配置,直接用FastDFS的nginx就可以了
shell
cd /u06/data/datas/fdfs/path0/data/00/00
使用ffmpeg生成m3u8文件
ffmpeg -i wKgBMlvaDUCAKnRbAATfpUYN9Vw280.mp4 -c copy -map 0 -f segment -segment_list playlist.m3u8 -segment_time 5 output%03d.ts
访问 http://222.240.10.170:8088/group1/M00/00/00/playlist.m3u8 报400的错误
看nginx的错误日志,可以看到是因为文件名太短了,-----注意 -----唉,没看错误日志坑了自己,害我去安装nginx-rtmp-module搞什么hls流,白搞了
报错 filename is too short, length: 23 < 44
FastDFS 的文件名必须在 23到44长度之间
shell
ffmpeg -i /u06/data/datas/fdfs/path0/data/00/00/wKgBMlvaDUCAKnRbAATfpUYN9Vw280.mp4 -c copy -map 0 -f segment -segment_list wKgBMlvaDUCAKnRbAATfpUYN9Vw280.m3u8 -segment_time 5 wKgBMlvaDUCAKnRbAATfpUYN9Vw280-%03d.ts
访问:http://222.240.10.170:8088/group1/M00/00/00/wKgBMlvaDUCAKnRbAATfpUYN9Vw280.m3u8 成功