docker流媒体服务器性能,利用docker镜像搭建流媒体服务进行rtmp推流及点流(rtmp,hls,http-flv)测试...

利用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端口

另外,若是出现跨域问题,须要检查配置文件中是否开启跨域,以下图

eb63af99000ca028f4338a18342aea70.png

为了支持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

或者在设备管理器中查看

999da44cbaefa8111a0bc52bfa961f2f.png

而后利用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

81d4bc12d10802742d7cbfb2ef08ddd5.png

若是想推相机的流直接增长一个视频捕获设备便可,以下图java

cfc9919f8fe126d7cebd16d2b97d84ee.png

点流

最后点流能够用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

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用 Docker 搭建媒体服务器,你可以按照以下步骤进行操作: 1. 安装 Docker:根据你的操作系统,在 Docker 官方网站(https://www.docker.com)上下载并安装适合你的 Docker 版本。 2. 确定你要使用的媒体服务器软件。一些常见的选择包括 Nginx-rtmp-module、FFmpeg、Flussonic、Wowza Streaming Engine 等。在 Docker Hub(https://hub.docker.com)上搜索你所选择的软件,找到对应的镜像。 3. 执行以下命令拉取媒体服务器镜像: ``` docker pull <镜像名称>:<标签> ``` 其中,`<镜像名称>` 是你所选择的媒体服务器软件对应的镜像名称,`<标签>` 是版本或标识符。 4. 创建并运行 Docker 容器: ``` docker run -d --name <容器名称> -p <宿主机端口>:<容器端口> <镜像名称>:<标签> ``` 其中,`<容器名称>` 是你为容器指定的名称,`<宿主机端口>` 是你希望媒体服务器服务在宿主机上监听的端口号,`<容器端口>` 是媒体服务器容器内部实际运行的端口号。 5. 根据媒体服务器软件的要求和配置方式,进行进一步的配置。你可以通过访问容器 IP 地址和端口,或者在容器内部执行命令来完成配置。 6. 测试媒体服务器:使用支持媒体协议(如 RTMPHLS)的客户端或播放器,连接到媒体服务器进行或观看。 请注意,具体的配置步骤和命令可能因所选择的媒体服务器软件而有所不同。建议查阅对应软件的官方文档或镜像的说明,以了解更详细的配置和使用方法。此外,确保你的网络设置和端口映射是正确的,并且具备足够的带宽和资源来支持媒体传输。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值