zoukankan      html  css  js  c++  java
  • libEasyPlayer RTSP windows播放器SDK API接口设计说明

    概述
    libEasyPlayer实现对RTSP直播流进行实时采集和解码显示,稳定,高效,低延时;解码可采用intel硬件解码和软件解码两种方式,能实时进行录像和快照抓图,OSD叠加等功能。

    API接口函数定义
     int EasyPlayer_Init();
    函数说明:
    播放器初始化,播放器使用之前调用;
    参数说明:

     void EasyPlayer_Release();
    函数说明:
    播放器资源释放,播放器不再使用以后调用;
    参数说明:

    int EasyPlayer_OpenStream(const char *url, HWND hWnd, RENDER_FORMAT renderFormat, int rtpovertcp, const char *username, const char *password, MediaSourceCallBack callback, void *userPtr, bool bHardDecode);
    函数说明:
    播放器开始进行流播放;返回值为当前播放的通道ID,该ID在停止推流时需要用到;
    参数说明:
    Url:[IN] 字符串类型,表示当前要播放的流地址,Eg: rtsp://127.0.0.1:554/stream.sdp
    HWnd: [IN] 窗口句柄类型,表示为当前播放器将显示的窗口的句柄;
    renderFormat:[IN] 播放渲染类型,详见RENDER_FORMAT结构;
    Rtpovertcp:[IN] 整数型,拉取流的传输模式,0=udp, 1=tcp
    Username:[IN] 字符串,访问流的用户名(如果存在)
    Password:[IN] 字符串,访问流的用户名(如果存在)
    Callback:[IN] 播放器回调音视频数据回调函数
    userPtr:[IN] 用户自定义传入数据
    bHardDecode:[IN] 是否采用硬件解码 1=是,0=否

    void EasyPlayer_CloseStream(int channelId);
    函数说明:
    播放器停止流播放;
    参数说明:
    channelId [IN] 当前播放的流通道ID,该ID是EasyPlayer_OpenStream函数打开流的返回值;
    int EasyPlayer_SetFrameCache(int channelId, int cache);
    函数说明:
    播放器设置当前流播放缓存帧数;
    参数说明:
    channelId [IN] 当前播放的流通道ID,该ID是EasyPlayer_OpenStream()函数打开 流的返回值;
    cache [IN] 当前通道的流播放设置的缓存的视频帧数,Eg: 缓存10帧,则cache = 10;

    int EasyPlayer_SetShownToScale(int channelId, int shownToScale);
    函数说明:
    播放器按比例进行显示;
    参数说明:
    channelId [IN] 当前播放的流通道ID,该ID是EasyPlayer_OpenStream()函数打开 流的返回值;
    shownToScale [IN] 0=整个窗口区域显示,1=按比例显示;

    int EasyPlayer_SetDecodeType(int channelId, int decodeKeyframeOnly);<不常用>
    函数说明:
    播放器设置解码类型;分为所有帧解码和只解码关键帧;
    参数说明:
    channelId [IN] 当前播放的流通道ID,该ID是EasyPlayer_OpenStream()函数打开 流的返回值;
    decodeKeyframeOnly [IN] 0=所有帧解码,1=只解码关键帧;

    int EasyPlayer_SetRenderRect(int channelId, LPRECT lpSrcRect);<不常用>
    函数说明:设置视频显示时渲染区域
    参数说明:
    channelId [IN] 当前播放的流通道ID,该ID是EasyPlayer_OpenStream函数打开 流的返回值;
    lpSrcRect [IN] 矩形框结构体指针,指向设置渲染区域的矩形结构体;

    int EasyPlayer_ShowStatisticalInfo(int channelId, int show);
    函数说明:
    播放器设置是否显示码流信息;
    参数说明:
    channelId [IN] 当前播放的流通道ID,该ID是EasyPlayer_OpenStream()函数打开 流的返回值;
    Show [IN] 0=不显示,1=显示;

    int EasyPlayer_ShowOSD(int channelId, int show, EASY_PALYER_OSD osd);
    函数说明:
    播放器设置自定义显示OSD信息;
    参数说明:
    channelId [IN] 当前播放的流通道ID,该ID是EasyPlayer_OpenStream()函数打开 流的返回值;
    Show [IN] 0=不显示,1=显示;
    Osd [IN] osd显示信息填充结构,定义如下:
    typedef struct tagEASY_PALYER_OSD
    {
    char stOSD[1024]; //OSD字幕信息
    DWORD alpha; //透明通到0-255
    DWORD color; //RGB(0xf9,0xf9,0xf9)
    DWORD shadowcolor; //OSD背景颜色RGB(0x4d,0x4d,0x4d) 全为0背景透明
    RECT rect; //OSD基于图像右上角显示区域
    int size; //OSD字体的大小
    }EASY_PALYER_OSD;
    注意:osd字幕叠加通过” “结束符进行换行,一行的长度不能超过128个字节,总的OSD叠加不能超过1024个字节。其中OSD大小设置只有D3D渲染模式才能生效;

    int EasyPlayer_SetDragStartPoint(int channelId, POINT pt);<不可用>
    函数说明:
    参数说明:

    int EasyPlayer_SetDragEndPoint(int channelId, POINT pt);<不可用>
    函数说明:
    参数说明:

    int EasyPlayer_ResetDragPoint(int channelId);<不可用>
    函数说明:
    参数说明:

    int EasyPlayer_StartManuRecording(int channelId);
    函数说明:
    播放器开始将流音视频数据进行录制,录制格式为MP4;
    参数说明:
    channelId [IN] 当前播放的流通道ID,该ID是EasyPlayer_OpenStream函数打开 流的返回值;

    int EasyPlayer_StopManuRecording(int channelId);
    函数说明:
    播放器停止录制MP4;
    参数说明:
    channelId [IN] 当前播放的流通道ID,该ID是EasyPlayer_OpenStream函数打开 流的返回值;

    int EasyPlayer_PlaySound(int channelId);
    函数说明:
    播放器开始播放音频;
    参数说明:
    channelId [IN] 当前播放的流通道ID,该ID是EasyPlayer_OpenStream函数打开 流的返回值;

    int EasyPlayer_StopSound();
    函数说明:
    播放器停止播放音频;

    EasyPlayer

    EasyPlayer是由EasyDarwin开源团队开发和维护的一个流媒体播放器项目,目前有RTSP版和Pro版两个版本,RTSP支持Windows(支持多窗口、包含ActiveXnpAPI Web插件)、Android平台,iOS平台,视频支持H.264H.265MPEG4MJPEG,音频支持G711AG711UG726AAC,支持RTSP over TCP/UDP,支持硬解码,是一套极佳的RTSP流播放组件;

    EasyPlayer Pro版支持RTSP、RTMP、HTTP、HLS等各种流媒体协议播放,稳定、高效、可靠,支持Windows、Android、iOS!

    获取更多信息

    邮件:support@easydarwin.org

    WEB:www.EasyDarwin.org

    Copyright © EasyDarwin.org 2012-2017

    EasyDarwin

  • 相关阅读:
    OpenJDK: How to backport patches
    C2 Basis
    大页和透明大页
    Partial Escape Analysis Notes
    C2 Split If
    PrintClassLoaderDataGraphAtExit
    Kubernetes存储(二)
    KubernetesAPI Server
    Kubernetes存储(一)
    Docker多机网络
  • 原文地址:https://www.cnblogs.com/babosa/p/9217710.html
Copyright © 2011-2022 走看看