抓rtmp推流地址_干货培训 | 使用OBS进行直播导播和推流(下篇)

本文详细介绍了如何使用OBS在B站进行直播推流,包括设置B站直播参数、获取rtmp地址和直播码,以及OBS的基础配置、直播内容设置和注意事项,帮助用户实现高质量的直播体验。
摘要由CSDN通过智能技术生成

201c980a781152babb80bd3fbe030518.png

在《干货培训 | 使用OBS进行直播导播和推流(上篇)》中我们介绍了如何下载OBS及其性能,以及Windows版本和Mac版本如何设置OBS的各项参数。而在《干货培训 | 使用OBS进行直播导播和推流(下篇)》中我们将介绍如何使用OBS进行直播推流—以B站为例,以及我们还会介绍到使用OBS时的注意事项。

04 直播推流操作方案—以B站为例

方案一

可以使用任意一种常见的国外推流服务,登陆帐号进行推流。

方案二

自定义服务(下面操作以哔哩哔哩-B站为例)。

1.必备软件及网站

-Teams:https://www.microsoft.com/zh-cn/microsoft-365/microsoft-teams/group-chat-software

-哔哩哔哩(B站):下载并注册B站账号https://www.bilibili.com/

-OBS

2.基础设置

⑴登录B站,将光标放在右上侧头像上,点击直播中心。如下图所示:

630f40f95f200dc283e4002b6f2aa4bb.png

⑵点击我的直播间->开播设置。如下图所示:

e6c5a302569a34e99868fd8360cb91b4.png

⑶进行实名认证并等待审核通过。如下图所示:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的例程,它演示了如何在Qt下使用OpenCV进行RTMP推流: ```c++ #include <QCoreApplication> #include <opencv2/opencv.hpp> #include <rtmp.h> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); // 初始化RTMPRTMP_LibInit(); // 创建RTMP对象 RTMP *rtmp = RTMP_Alloc(); // 设置RTMP属性 RTMP_SetupURL(rtmp, "rtmp://your_rtmp_server_address"); RTMP_EnableWrite(rtmp); RTMP_Connect(rtmp, NULL); RTMP_ConnectStream(rtmp, 0); // 打开视频文件 cv::VideoCapture cap(0); // 检查视频文件是否打开成功 if (!cap.isOpened()) { qDebug() << "Failed to open video file."; return -1; } // 定义视频帧 cv::Mat frame; // 读取视频帧并推送到RTMP服务器 while (true) { // 读取视频帧 cap >> frame; // 检查视频帧是否为空 if (frame.empty()) { qDebug() << "End of video file."; break; } // 将视频帧转换为RTMP数据包 RTMPPacket *packet = RTMPPacket_Alloc(1024 * 64); // 填充RTMP数据包 RTMPPacket_Reset(packet); packet->m_nChannel = 0x04; packet->m_headerType = RTMP_PACKET_SIZE_LARGE; packet->m_packetType = RTMP_PACKET_TYPE_VIDEO; packet->m_nTimeStamp = RTMP_GetTime() - 500; packet->m_nInfoField2 = rtmp->m_stream_id; packet->m_nBodySize = cv::imencode(".jpg", frame).size(); memcpy(packet->m_body, cv::imencode(".jpg", frame).data(), packet->m_nBodySize); // 发送RTMP数据包 RTMP_SendPacket(rtmp, packet, true); RTMPPacket_Free(packet); // 等待一段时间 cv::waitKey(30); } // 断开RTMP连接 RTMP_Close(rtmp); RTMP_Free(rtmp); // 清理RTMPRTMP_LibExit(); return a.exec(); } ``` 这个例程使用OpenCV的VideoCapture类来读取摄像头视频帧,并将每一帧转换为RTMP数据包,并使用RTMP_SendPacket函数将数据包发送到RTMP服务器。请注意,此示例中的推流代码仅适用于视频帧大小不超过64KB的情况,如果您的视频帧大小超过64KB,则需要修改代码以支持较大的数据包。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值