21疫情再次来袭,在线会议与直播服务,终于进入寻常百姓家,迅速崛起的审查制度令人作呕,腾讯最甚! 怎样来一场自由的直播,就像疫情期间想摘下口罩呼吸一样困难。本文将提供几种可能的解决方案。
我们想要的直播,其实就是转播,就像我们平时看的电视一样,缺点时单向传播,无法实时与观众互动。
大部分时候我们说想要直播时,我们想要的是在线会议服务,就是zoom或腾讯会议等类的服务。
会议服务首推:zoom,免费版有会议时长限制,而且现在国内用户无法再注册,付费必须是要美元。但是可以一个人付费后开启会议作为管理员,其他与会者需要验证手机号即可加入会议。
直播/转播服务:obs 推流 + 自建服务/使用第三方服务(有审核和被封风险)
转播现场画面和声音:这个场景适合线下有聚集活动,同时照顾无法线下的观众。现场需要一台 带摄像头和麦克风的电脑 (摄像头最好可以调焦距,带USB加长线,麦克风也尽量需要灵敏一点的)
转播zoom会议画面:zoom会议的参会者可以实时线上沟通,其会议实况通过obs推流再次直播给观众。
一分钟搭建直播服务:
git clone https://github.com/yilindeli/rtmp.git
docker-compose up -d
本方案已知缺点:
- 推流没有鉴权,原作者使用VPN的方式。
- 单机拉流时,无法大流量高并发观看,解决方案,可以加上CDN。
高级使用方式:
1.命令行推流本地视频
ffmpeg -re -i /Users/dale/Downloads/Wmn0VQmLffY.mp4 -vcodec libx264 -acodec aac -preset ultrafast -f flv rtmp://localhost:1935/stream/living
2.命令行推流摄像头和麦克风(下面是我的MacBooPro的命令,其他MAC可以使用命令查找一下设备)
ffmpeg -f avfoundation -framerate 10 -i "0:1" -preset ultrafast -b 1.5M -f flv rtmp://localhost:1935/stream/living
3.命令行播放(即拉流,需要安装ffmpeg)
ffplay http://localhost:8080/live/living.m3u8
4.Mac列出所有的 音视频输入设备
ffmpeg -f avfoundation -list_devices true -i ""
如果使用的是arm64服务器,则可以参考 https://github.com/lmxlmx/arm64-docker-nginx-rtmp build镜像。
# build 镜像命令
git clone https://github.com/lmxlmx/arm64-docker-nginx-rtmp.git
cd arm64-docker-nginx-rtmp-master/
docker build . --file Dockerfile_arm64 --tag alfg/nginx-rtmp:latest
# 然后使用本文开头的命令
git clone https://github.com/yilindeli/rtmp.git
docker-compose up -d
必须软件:git、docker、docker-compose、ffmpeg
FAQ:
- 播放端口和推流端口到底是什么?
- 为什么会卡?
- 什么是CDN,如何设置?
- 什么是VPN?
- 什么是命令行?
- 什么是端口?
- 什么是服务器?
- 什么是推流和拉流?