前言
服务器采用Ngix + RTMP 模块
启动指令
F:\AI\nginx_1.7.11.3_Gryphon\nginx.exe -c conf/nginx-win.conf
注意:nginx: [emerg] CreateFile() "E:\流媒体\nginx/conf/nginx.conf" failed (1113: No mapping for the Unicode character exists in the target multi-byte code page)
这个问题是因为有中文路径导致的问题,因此需要放在英文路径下运行
视频推流
ffmpeg.exe -re -stream_loop -1 -i inputfile.mp4 -vcodec libx264 -acodec aac -f flv rtmp://192.168.11.172:1935/live/home
备注:可能拉流失败,原因是I帧后续发送少了,添加I帧
ffmpeg.exe -re -stream_loop -1 -i inputfile.mp4 -vcodec libx264 -force_key_frames "expr:gte(t,n_forced*1)" -acodec aac -f flv rtmp://192.168.11.172:1935/live/home
播放器拉流指令
ffplay.exe rtmp://192.168.11.172:1935/live/home
1)配置一个mp4可读取文件地址
配置nginx-win.conf
rtmp {
server {
listen 1935;#监听端口,若被占用,可以更改
chunk_size 4000;#上传flv文件块儿的大小
application live { #创建一个叫live的应用
live on;#开启live的应用
allow publish 127.0.0.1;#
allow play all;
hls_path "F:/hls/";
hls_fragment 2s;
play "F:/AI/nginx_1.7.11.3_Gryphon/file";
}
}
}
其中
play "F:/AI/nginx_1.7.11.3_Gryphon/file";配置了rtmp服务器读取文件的地址,文件必须直接放在这个目录,如果里面创建其他的目录,读取不到
例如将一个test.mp4文件放在file文件夹下,访问路径是rtmp://192.168.58.173:1935/live/test.mp4,其中live是一个应用