MaixCAM MaixPy 视频流 RTMP 推流
2024-05-20
更新历史
日期 | 版本 | 作者 | 更新内容 |
---|---|---|---|
2024-05-20 | 1.0.0 | lxowalle | 初版文档 |
简介
本文档提供通过RTMP推送H264视频流的方法
使用方法
from maix import camera, time, rtmp, image
cam = camera.Camera(640, 480, image.Format.FMT_YVU420SP)
# rtmp://192.168.0.30:1935/live/stream
host = '192.168.0.30'
port = 1935
app = 'live'
stream = 'stream'
bitrate = 1000_000
r = rtmp.Rtmp(host, port, app, stream, bitrate)
r.bind_camera(cam)
r.start()
while True:
time.sleep(1)
步骤:
导入camera, time, rtmp和image模块
from maix import camera, time, rtmp, image
初始化摄像头
cam = camera.Camera(640, 480, image.Format.FMT_YVU420SP) # 初始化摄像头,输出分辨率640x480 NV21格式
- 注意RTMP模块目前只支持NV21格式, 因此摄像头需要配置为NV21格式输出
初始化并启动Rtmp对象
r = rtmp.Rtmp(host, port, app, stream, bitrate) r.bind_camera(cam) r.start()
r = rtmp.Rtmp(host, port, app, stream, bitrate)
用来创建一个Rtmp
对象,其中host
指rtmp服务器的ip地址或者域名,app
指rtmp服务器开放的应用名,stream
指rtmp流的名称,也可以作为本次推流的密钥r.bind_camera(cam)
用来绑定一个Camera
对象, 绑定后原Camera
对象将不能再使用r.start()
用来启动rtmp
推流
完成
向Bilibili推流测试
启动bilibili直播
点击直播
点击开播设置
- 通过
我的直播间链接
找到直播地址
- 往下翻,选择一个
分类
,再点击开始直播
- 执行步骤4后,可以看到
- 直播服务器的地址为:
rtmp://live-push.bilivideo.com/live-bvc
- 串流密钥为:
?streamname=live_xxxx&key=1fbfxxxxxxxxxxxxxffe0&schedule=rtmp&pflag=1
组合起来的rtmp
推流地址就是:rtmp://live-push.bilivideo.com/live-bvc/?streamname=live_xxxx&key=1fbfxxxxxxxxxxxxxffe0&schedule=rtmp&pflag=1
运行RTMP客户端
from maix import camera, time, rtmp, image
cam = camera.Camera(640, 480, image.Format.FMT_YVU420SP)
# rtmp://live-push.bilivideo.com/live-bvc/?streamname=live_xxxx&key=1fbfxxxxxxxxxxxxxffe0&schedule=rtmp&pflag=1
host = 'live-push.bilivideo.com'
port = 1935
app = 'live-bvc'
stream = '?streamname=live_xxxx&key=1fbfxxxxxxxxxxxxxffe0&schedule=rtmp&pflag=1'
bitrate = 1000_000
r = rtmp.Rtmp(host, port, app, stream, bitrate)
r.bind_camera(cam)
r.start()
while True:
time.sleep(1)
上面拿到bilibili的推流地址为rtmp://live-push.bilivideo.com/live-bvc/?streamname=live_xxxx&key=1fbfxxxxxxxxxxxxxffe0&schedule=rtmp&pflag=1
可以拆出
- 服务器地址为
live-push.bilivideo.com
- 端口号为
1935
,即没有端口号则默认为1935
- 应用名为
live-bvc
- 流名称为
?streamname=live_xxxx&key=1fbfxxxxxxxxxxxxxffe0&schedule=rtmp&pflag=1
运行代码,就能在直播间看到maixcam
的画面了,如果发现直播没有显示,可以尝试先关闭直播间,再重新打开直播间,再运行代码。
动手试试吧~