近些年,随着直播行业的兴起,催生出大量的网红经济,不知不觉中我们的生活都开始与直播有着或多或少的接触。 那直播平台是怎么搭建的?我们又可以用它做什么呢?今天大大雷手把手教你搭建简易直播平台, 更多玩法等你来探索!
直播从业者
准备
我们用本地局域网环境来运行服务器进行模拟,搭建之前需要准备以下工具:
流媒体服务器:推荐smart_rtmpd这款流媒体服务器,简单好用,支持windows,Linux系统,对小白用户也很友好。另外SRS也是一款优秀的国产开源流媒体服务器,有兴趣的朋友可以了解一下。推流工具:Obs或者FFmpeg,Obs是一款优秀的直播工具,我们主要用到它的推流功能。FFmpeg是一款知名的音视频处理工具, 相信接触过音视频领域开发的都知道这款工具,功能十分强大,但是没有用户界面, 需要使用命令行里操作。
运行
运行smart_rtmpd流媒体服务器。 以windows系统为例, 找到smart_rtmpd_win.zip文件解压后,在文件夹内有smart_rtmpd.exe和config.xml两个文件。
config.xml:流媒体服务器的配置文件,很多高级的玩法都是通过配置文件来完成,比如录像,内外网映射,虚拟主机转发等。
<!-- 跟踪耗时, 不要轻易打开, 容易 crash --><elapse>false</elapse><!-- 鉴权地址: http://authurl/v1/smart_rtmpd?type=rtmp&action=publisher&your param. --><authurl></authurl><!-- NAT 映射地址 --><natmap></natmap> <!-- 内网地址推流,映射成外网地址, 内外网都能播放 --> <hostmap inner="" outer=""/><!-- rtp & rtcp 端口区间, que 接收队列最大缓冲 --><rtp min="30000" max="60000" que="20000" /><!-- 套结字基本配置项 --><sock><!-- 接收缓冲区, 单位 KB, 0 表示不设置 --><recvbuffer>8192</recvbuffer><!-- 发送缓冲区, 单位 KB, 0 表示不设置 --><sendbuffer>8192</sendbuffer></sock>
smart_rtmpd.exe:流媒体服务器主程序,双击运行即可打开,运行前检查默认端口在本机是否已经被占用,如果被占用先修改端口号再启动。
双击运行smart_rtmpd.exe程序并点击启动, 这时服务器会监听不同流媒体协议对应的端口, 接下来我们开始向服务器推流。推流是向流媒体服务器的rtmp端口进行推流,推流格式为:
rtmp://192.168.1.1:1935/live/your_stream_name,注意ip地址改成你的本机地址。
推流玩法(使用Obs)
玩法一:推送本机摄像头视频流到服务器,局域网内所有人通过视频地址进行播放。1. 打开Obs,添加视频源,选择视频采集设备。
2. 配置推流服务器
打开设置-推流,服务选择自定义,服务器填写我们运行的流媒体服务器地址,比如
rtmp://192.168.50.7:1935/live/,注意更换自己的IP, 串流密钥可以自己随便填写,能保证它在你服务器的视频流是唯一的就可以。
3. 开始推流, 点击右下角的开始推流按钮, 如果推流正常,我们的服务器会显示这条视频流通道。双击该视频流通道, 可以看到多个协议的拉流地址, 选择适合你的地址进行播放。
到这一步就完成了直播流程,把你的播放地址发给你局域网的小伙伴,这样他们就能看到你的直播了。
玩法二:推送电脑桌面或者某个窗口的视频流,局域网的小伙伴通过视频地址进行播放,完成桌面共享功能。
玩法三:推送本地珍藏的视频,局域网的小伙伴通过视频地址播放。
这些玩法的操作流程和玩法一是一样的, 大家可以自己尝试。
拓展
如果你有一台云服务器, 那么以上的操作全网的小伙伴都可以通过视频地址访问。如果你想同时推多个视频流怎么办? 我自己是通过FFmpeg来实现的,根据需求写一些Python的脚本使用协程实现并行推流。smart_rtmpd最新版是2021/04/11发布的,如果网上没有找到,可以私信回复rtmpd获取下载地址,包含windows和linux版本。
我是大大雷
TAG:[db:关键词]