Mac搭建Nginx流媒体服务器,进行推流,拉流

Mac搭建Nginx流媒体服务器,进行推流,拉流,第1张

Nginx 是非常优秀的开源服务器,用它来做hls或者rtmp流媒体服务器是非常不错的选择

下面介绍如何在Mac上搭建流媒体服务器,以便后续的自己研究的项目或者demo向服务器上进行推流

首先需要安装brew,brew是一款管理软件的第三方平台,安装的方式也很简单,请自行查阅安装方式

执行下面2句命令,即可安装rtmp推流的nginx服务器

执行完后,可以查看ngix安装在哪里

可以看到M1 是安装在这个目录下/usr/local/etc/nginx

打开这个目录,可以看到有个nginx.conf文件,这里就是服务器的一个配置文件,如果支持rtmp,则里面的内容会有一个rtmp的json

这个json说明:

1.你本地的nginx服务器会监听1935端口号,

2.服务器会创建一个mytv的程序

后续你可以向这个地址进行推流,并且进行拉流播放

后面我们会使用ffmpeg向这个地址推流

rtmp://localhost:1935/mytv/room

并且用vlc拉取这个地址的流进行播放

执行命令,即可启动nginx服务器

验证是否启动成功,只需要在浏览器中访问下以下链接

在浏览器地址栏输入: http://localhost:8080

出现Welcome to nginx ,代表nginx安装成功了。

打开配置文件 /usr/local/etc/nginx/nginx.conf

这里推的是flv流,可以正常推,这里需要注意的是服务器地址一定要写正确,我的nginx.conf里application配置的是mytv,所以路径就是mytv,room则是随便写都行,代表向程序mytv下的room文件推流

然后电脑上打开vlc这个播放器软件 点击File---->Open Network 在弹出来的框中选择Network然后输入URL:

验证时,推流的文件最好搞大点,不然一下推完了,你才去拉取播放,则播放不了,因为这是实时的

vlc使用如下

3.点击播放即可

可以看到左边是画面,右边是ffmpeg在推流

参考: https://www.jianshu.com/p/cf74a34af15d

推流,指的是把采集阶段封包好的内容传输到服务器的过程。其实就是将现场的视频信号传到网络的过程。“推流”对网络要求比较高,如果网络不稳定,直播效果就会很差,观众观看直播时就会发生卡顿等现象,观看体验很是糟糕。

要想用于推流还必须把音视频数据使用传输协议进行封装,变成流数据。常用的流传输协议有RTSP、RTMP、HLS等,使用RTMP传输的延时通常在1_3秒,对于手机直播这种实时性要求非常高的场景,RTMP也成为手机直播中最常用的流传输协议。最后通过一定的Qos算法将音视频流数据推送到网络断,通过CDN进行分发。

扩展资料:

直播中使用广泛的“推流协议”一般是RTMP(RealTimeMessagingProtocol——实时消息传输协议)。该协议是一个基于TCP的协议族,是一种设计用来进行实时数据通信的网络协议,主要用来在Flash/AIR平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信。支持该协议的软件包括AdobeMediaServer/UltrantMediaServer/red5等。

在高精尖沙龙直播中,最初使用传统设备进行“推流”。

具体过程就是:通过网线将EFP系统中的切换台、网络编码器、笔记本按顺序连接,连接完成后确保笔记本电脑的IP地址和网络编码器的地址在同一网段,然后在电脑页面上对编码器的各种“推流参数”进行调整,为保证正常“推流”,还需设置网络推流地址,输入推流地址、直播地址、视频模式、分辨率、码率、播放域名、播放地址等内容。设置完毕后确认IP地址,再进行网络测速,并确保网络与网络编码器连接正常。此种“推流”所需设备过多,出现问题后十分麻烦,需要对设备进行逐一排查,极耗费时间。

后来,将直播系统改为Livestudio系统,“推流”内置在Livestudio的软件之中,整个“推流”过程不再需要额外的网络编码器和笔记本等设备,也无需再设置IP,只要网络正常,联网即可完成操作,还可根据网络的实际情况设置“推流”的质量以满足要求。此种操作十分便捷,有效避免了上述问题的出现。

参考资料:百度百科:网络直播

如果你想推流一个文件夹里的所有视频,你可以使用通配符(wildcard)来匹配文件夹中的所有视频。例如,你可以使用 -i /path/to/folder/*.mp4 来匹配文件夹中所有的 MP4 视频文件。

如果你想推流多个视频,你可以使用 -i 参数多次指定视频文件的路径。例如,你可以使用 ffmpeg -re -i video1.mp4 -i video2.mp4 -vcodec libx264 -acodec aac -f flv rtmp://localhost:1935/rtmplive/home 来推流 video1.mp4 和 video2.mp4 这两个视频。

你也可以使用 -f concat 参数来将多个视频文件合并成一个输入源,然后使用 -i 参数指定合并后的视频文件。这样,你就可以使用单个命令推流多个视频。例如:

ffmpeg -f concat -safe 0 -i list.txt -c copy output.mp4

ffmpeg -re -i output.mp4 -vcodec libx264 -acodec aac -f flv rtmp://localhost:1935/rtmplive/home

其中,list.txt 是一个文本文件,其中包含了要合并的视频文件的列表。每一行的格式为 file '/path/to/video.mp4'。例如:

file '/path/to/video1.mp4'

file '/path/to/video2.mp4'

file '/path/to/video3.mp4'

这样,你就可以使用两条命令推流多个视频了。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/448251.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-31
下一篇2023-05-31

发表评论

登录后才能评论

评论列表(0条)

    保存