赞
踩
利用docker镜像搭建流媒体服务进行rtmp推流及点流(rtmp,hls,http-flv)测试
咱们常常须要一些测试视频流,好比rtmp,http-flv,hls,但网上可用的比较少,因而能够本身在本地搭建
搭建流媒体服务
利用网上的mugennsou/http-flv镜像能够快速搭建流媒体服务
在本例中,运行脚本以下
docker run -it -d \
--restart always \
-p 8380:80 \
-p 1935:1935 \
--name nginx-http-flv \
mugennsou/nginx-http-flv
注意8380是http端口,1935是rtmp端口
另外,若是出现跨域问题,须要检查配置文件中是否开启跨域,以下图
为了支持hls,须要对配置作以下修改
首先修改/etc/nginx/conf.d/rtmp/rtmp.conf,增长hls相关配置
server {
listen 1935;
application demo {
live on;
gop_cache on;
#enable HLS ,主要就是增长以下配置
hls on;
hls_path /tmp/hls;
hls_fragment 3;
hls_playlist_length 20;
}
}
首先修改/etc/nginx/conf.d/http/http-flv.conf,在server模块下增长一个location,以下
location /hls {
# Disable cache
add_header Cache-Control no-cache;
# CORS setup
add_header 'Access-Control-Allow-Origin' '*' always;
add_header 'Access-Control-Expose-Headers' 'Content-Length';
# allow CORS preflight requests
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Max-Age' 1728000;
add_header 'Content-Type' 'text/plain charset=UTF-8';
add_header 'Content-Length' 0;
return 204;
}
types {
application/vnd.apple.mpegurl m3u8;
video/mp2t ts;
}
root /tmp/;
add_header Cache-Control no-cache;
}
以上修改以后执行
nginx -t # 测试配置文件是否有误
nginx -s reload # 从新加载
推流
本例是经过rtmp进行推流,最后能够经过rtmp或http-flv进行点流
推流方式能够有多种,如下介绍经过ffmpeg和obs,obs是个可视化工具,使用起来更为方便一些
在本例中,推流地址为 rtmp://192.168.25.105:1935/demo/[自定义名称]
其中demo就是流媒体服务中配置的,默认就是demo,自定义名称则能够随便取,保持推流和点流时一致便可
经过ffmpeg
利用ffmpeg进行本地推流,命令参考以下
ffmpeg -re -i H:\testvideo\h265_high.mp4 -vcodec copy -acodec copy -f flv rtmp://192.168.25.105:1935/demo/stream-1
以上命令推送的mp4文件注意编码要是h264的,不然可能会出错,flv官方不支持hevc
若是要将笔记本的摄像内容进行推流
先要查看笔记本相机信息,经过以下命令
ffmpeg -list_devices true -f dshow -i dummy
或者在设备管理器中查看
而后利用ffmpeg进行推流
ffmpeg -f dshow -i video="Integrated Camera":audio="麦克风阵列 (Realtek High Definition Audio)" -vcodec libx264 -acodec copy -preset:v ultrafast -tune:v zerolatency -f flv "rtmp://192.168.25.105:1935/demo/stream-1"
其中的video和audio根据本身机子状况修改
经过obs
obs推流相对来讲很简单,主要就是配置一下这里便可javascript
若是想推相机的流直接增长一个视频捕获设备便可,以下图java
点流
最后点流能够用vlc进行测试,按照本例配置后点流地址以下
http-flv点流
http://192.168.25.105:8380/live?app=demo&stream=stream-1
rtmp点流
rtmp://192.168.25.105:1935/demo/stream-1
hls流
http://192.168.25.105:8380/hls/stream-1.m3u8
参考
https://github.com/mugennsou/http-flv
https://blog.csdn.net/yelin042/article/details/78434454nginx
搭建HLS直播测试环境 - 简书 https://www.jianshu.com/p/4006d47eccf9git
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。