傲瑞组件开发手册(07) -- 拉流组件 NPuller

  在《傲瑞组件开发手册(06) -- 推流组件 NPusher》一文中,我们可以使用NPusher将视频(摄像头、桌面)、声音(麦克风、声卡)推到流服务器上,而本文介绍的NPuller则可以从流服务器拉流并播放。

  NPuller 是傲瑞科技推出的实用组件之一,它可从rtmp流服务器拉取流,并将rtmp流中的视频帧和音频帧分别独立解析出来,直接得到图片和音频数据供我们播放使用。

一.NPuller 简介

 当前版本的NPuller组件支持:

1. 输出音频数据格式:PCM原始数据。(采样率:16000,位数:16bit,声道数:1或2)

2. 输出视频数据格式:RGB24原始图像数据。

二.NPuller 结构

1. IStreamPuller 是拉流器接口。我们可以通过调用PullerFactory的CreatePuller来创建拉流器实例。

2. 得到拉流器实例后,我们需调用其Initialize方法将其初始化。

3. 初始化成功将触发AudioParasGot事件,从而可得到到声音数据的位宽、声道数和采样率等参数信息。

4. 拉流过程中,将连续触发PcmFrameGot事件和RgbFrameGot事件,从这两个事件我们分别可以拿到声音PCM数据;和视频图像RGB24位图。

5. 若停止拉流则调用Close方法即可。

三. 使用接口详细定义

  public interface IStreamPuller
    {
        /// <summary>
        /// 与流媒体服务器的连接断开时,触发此事件。
        /// </summary>
        event CbSimple Disconnected;
/// <summary> /// 当获取到声音数据的位宽、声道数和采样率时,触发此事件。参数:位宽 - 声道数 - 采样率。 /// </summary> event CbGeneric<int, int, int> AudioParasGot;
/// <summary> /// 当拉取到一帧音频数据并解码为PCM输出时,触发此事件。 /// </summary> event CbGeneric<byte[]> PcmFrameGot;
/// <summary> /// 当拉取到一帧视频数据并解码为RGB24位图输出时,触发此事件。 /// </summary> event CbGeneric<Bitmap> RgbFrameGot;
/// <summary> /// 与流服务器连接正常? /// </summary> bool Connected { get; }
/// <summary> /// 初始化。与流服务器建立连接,并启动拉流。 /// </summary> /// <param name="streamUrl">要拉取的流地址</param> void Initialize(string streamUrl);
/// <summary> /// 关闭并释放拉流器。 /// </summary> void Close(); }

1. Initialize 方法用于将拉取指定的rtmp流数据。

2. RgbFrameGot事件等到的图像数据是上下颠倒的。

四.NPuller Demo下载

下载本Demo源码Oraycn.NPullerDemo.rar

 

Demo 中使用 NPuller去拉取指定地址流中的视频数据和音频数据,并用 MPlayer 来播放音频数据,用PictureBox控件显示图像数据。

 

 

下载 更多傲瑞组件以及Demo源码 

阅读 更多傲瑞组件开发手册系列文章 

Q Q:168757008 

官网:http://www.oraycn.com/ 

导航

首页

官方网站

联系我们

立即咨询 

站内搜索

ESFramework 通信框架

价目表

详细说明

SDK与Demo下载

ESFramework FAQ

版本变更记录

OMCS 语音视频框架

价目表

详细说明

SDK与Demo下载

OMCS FAQ

版本变更记录

OrayTalk 企业即时通讯系统

价目表

详细说明

客户端下载

OVCS 视频会议系统

详细说明

源码下载

傲瑞实用组件

价目表

SDK下载

NPusher 推流组件

NPuller   拉流组件

MCapture 语音视频采集组件

MFile 语音视频录制组件

MPlayer 语音视频播放组件

OAUS 自动升级系统

StriveEngine 轻量级的通信引擎

傲瑞组件 FAQ

授权

授权流程

产品选购指南

授权方案说明

授权SDK使用说明

其它

支持国产OS、国产芯片、国产数据库

SDK使用技巧

联系我们