网站充值如何做post的,北京搬家公司排名前十名电话,外贸剪标大衣正品女款,网站建设公司电话销售客源一、RTMP 播放器概述 #xff08;一#xff09;RTMP 播放器的定义与作用
RTMP 播放器是一种专门用于播放采用 RTMP#xff08;Real Time Messaging Protocol#xff09;协议的视频流的工具。在当今的流媒体播放领域中#xff0c;它扮演着至关重要的角色。RTMP 播放器能够…一、RTMP 播放器概述 一RTMP 播放器的定义与作用
RTMP 播放器是一种专门用于播放采用 RTMPReal Time Messaging Protocol协议的视频流的工具。在当今的流媒体播放领域中它扮演着至关重要的角色。RTMP 播放器能够实时接收、解码和播放来自服务器的音频、视频数据为用户提供流畅的观看体验。
在直播场景中RTMP 播放器能够实现低延迟播放让观众与主持人之间的互动更加及时。例如在会议类直播中参会者可以通过文字聊天与主讲人互动而 RTMP 播放器的低延迟特性能够确保观众的评论和主讲人的回应之间的时间差尽可能小。在视频会议中RTMP 播放器可以保证参会人员之间的交流顺畅减少因延迟带来的沟通障碍。对于监控领域RTMP 播放器能够实时显示监控画面帮助相关人员及时发现问题并采取措施。
二、常见 RTMP 播放器推荐
一FFMPEG
FFMPEG 是一套开源计算机程序采用 LGPL 或 GPL 许可证。它包含非常先进的音频 / 视频编解码库 libavcodec为保证高可移植性和编解码质量很多 codec 都是从头开发的。支持的格式众多如 ASF、AVI、BFI、IFF 等。在点播播放中文件格式支持很全面但维护成本很高。
二大牛直播 SDK
”大牛直播SDK”始于2015年致力于传统行业极致体验的音视频直播技术解决方案产品涵盖跨平台的实时RTMP推流、RTMP/RTSP直播播放(支持RTSP|RTMP H.265Enhanced RTMP H.265)、GB28181设备接入、推送端播放端实时录像、多路流媒体转发(RTSP转RTMPRTMP转RTMPRTSP|RTMP转GB28181)、音视频导播、动态视频合成、音频混音、一对一互动直播、内置轻量级RTSP服务、RTSP网关服务等比快更快业界真正稳定可靠的超低延迟直播SDK(毫秒级延迟低延迟模式下150~300ms)。
三Vitamio
Vitamio 是一款 Android 与 iOS 平台上的全能多媒体开发框架全面支持硬件解码与 GPU 渲染。能够流畅播放 720P 甚至 1080P 高清视频跨平台支持 MMS、RTSP、RTMP、HLS 等多种视频流媒体协议。但貌似已不维护了。
四Potplayer 和 VLC
在 Windows 平台上Potplayer 和 VLC 都是比较常见的播放器。Potplayer 功能强大支持多种格式播放但对部分 h265 编码的流媒体直播源支持不友好可能只有声音而看不到画面。VLC 是自由、开源的跨平台多媒体播放器及框架可播放大多数多媒体文件及各种流媒体协议但功能相对单一同样对部分 h265 编码直播源支持不佳。
三、RTMP 播放器的特点
一低延迟优势
RTMP 在低延时应用场景中具有重要地位。在互动式直播中观众与主讲人的互动需要及时响应RTMP 的低延迟特性一般在3-5秒像大牛直播SDK全自研内核框架的延迟可以做到150-300ms使得这种互动更加流畅自然。相比之下HTTP 流的延时一般在 10 秒以上明显不适合互动式直播的需求。在视频会议中 RTMP 的低延迟仍能保证参会人员之间的交流更加顺畅减少因延迟带来的沟通障碍。
二功能特性
以大牛直播SDK的RTMP播放器模块设计为例功能设计如下
如不单独说明系Windows、Linux含x86_64|aarch64、Android、iOS全平台支持。 [多实例播放]支持多实例播放 [事件回调]支持网络状态、buffer状态等回调 [视频格式]支持RTMP扩展H.265和Enhanced RTMP H.265H.264 [音频格式]支持AAC/PCMA/PCMU/Speex [H.264/H.265软解码]支持H.264/H.265软解 [H.264硬解码]Windows/Android/iOS支持特定机型H.264硬解 [H.265硬解]Windows/Android/iOS支持特定机型H.265硬解 [H.264/H.265硬解码]Android支持设置Surface模式硬解和普通模式硬解码 [缓冲时间设置]支持buffer time设置 [首屏秒开]支持首屏秒开模式 [低延迟模式]支持低延迟模式设置(公网200~400ms) [复杂网络处理]支持断网重连等各种网络环境自动适配 [快速切换URL]支持播放过程中快速切换其他URL内容切换更快 [音视频多种render机制]Android平台视频SurfaceView/GLSurfaceView音频AudioTrack/OpenSL ES [实时静音]支持播放过程中实时静音/取消静音 [实时音量调节]支持播放过程中实时调节音量 [实时快照]支持播放过程中截取当前播放画面 [只播关键帧]Windows平台支持实时设置是否只播放关键帧 [渲染角度]支持0°90°180°和270°四个视频画面渲染角度设置 [渲染镜像]支持水平反转、垂直反转模式设置 [等比例缩放]支持图像等比例缩放绘制(Android设置surface模式硬解模式不支持) [实时下载速度更新]支持当前下载速度实时回调(支持设置回调时间间隔) [ARGB叠加]Windows平台支持ARGB图像叠加到显示视频参看C的DEMO [解码前视频数据回调]支持H.264/H.265数据回调 [解码后视频数据回调]支持解码后YUV/RGB数据回调 [解码后视频数据缩放回调]Windows平台支持指定回调图像大小的接口(可以对原视图像缩放后再回调到上层) [解码前音频数据回调]支持AAC/PCMA/PCMU/SPEEX数据回调 [音视频自适应]支持播放过程中音视频信息改变后自适应 [扩展录像功能]完美支持和录像SDK组合使用。
三GOP-Cache 和累积延迟
GOPGroup of Pictures即视频流中两个 I 帧的时间距离。Flash解码器只有拿到 GOP 才能开始解码播放。服务器一般先给一个 I 帧给 Flash。假设 GOP 是 10 秒即每隔 10 秒才有关键帧如果用户在第 5 秒时开始播放会有两种方案。第一种方案是等待下一个 I 帧再等 5 秒才开始给客户端数据这样延迟低但会黑屏等待。第二种方案是马上播放前一个 I 帧这样可以快速启动但延迟会增大。
累积延迟是 RTMP 的一个问题。因为 RTMP 基于 TCP 不会丢包当网络状态差时服务器会将包缓存起来导致累积的延迟。处理累积延迟的方法有多种。例如客户端检测到缓冲区有很多数据时可以重连服务器。此外还可以通过调整服务器的直播队列长度、编码器调低 GOP 等方法来降低延迟。例如编码器调低 GOP 到 0.5 秒一个 GOP这样延迟也很低也不用等待但编码器压缩率会降低图像质量没有那么好。
四、如何使用 RTMP 播放器
以大牛直播SDK的Windows端RTMP播放器集成为例上图是大牛直播SDK的Android端启动RTSP服务和推送RTMP流然后Windows端分别播放RTSP和RTMP流的延迟情况右侧是RTMP流。 demo 说明 提供 C/C# 两套接口对外提供 32/64 位 debug/release 库C 和 C# 接口一一对应C# 接口比 C 接口增加前缀 NT_PB_。播放端 SDK 支持 Win7 及以上系统本 demo 基于 VS2013 开发。展示了界面 UI包括链接状态、下载速度、缓冲状态等信息。集成说明 C 头文件和 C# 头文件的相关定义。集成步骤包括拷贝库文件、设置授权、添加头文件等。正式授权版需要在 Init () 接口调用之前添加设置 license 的代码。接口调用时序以 C# 为例 设置授权 license。设置日志存放路径。初始化 SDK。特定机型硬解码检测可检测系统是否支持硬解如需使用硬解码可调用相关接口。Open 生成播放实例每调用一次 Open 接口对应一个播放实例。设置回调事件包括网络链接状态、buffer 状态、实时带宽等回调以及视频分辨率回调、YUV/RGB32 数据回调等。D3DRender 检测检测系统是否支持 D3D 绘制对于不支持的情况可设置回调 YUV 数据用 GDI 模式绘制但 GDI 绘制效率偏低。设置播放 URL支持 rtsp/rtmp/ 本地 FLV 文件。设置回调 PCM。RTMP/RTSP 播放参数设置包括设置缓冲大小、RTSP TCP 模式、超时时间、自动切换 TCP/UDP、秒开、低延时模式、下载速度上报等。开始播放 RTMP 或 RTSP 流数据。RTMP/RTSP 拉流端录像包括设置录像目录、单个文件最大大小、文件名生成规则、录像回调接口、音频转 AAC 编码开关、是否录视频和音频等并可启动和停止录像。实时快照用于播放端实时截取当前播放图片图片以 PNG 形式保存至本地。快速切换 URL用于实时切换播放的 URL。用户数据回调和 SEI 数据回调如不需要处理相关数据此接口无需调用。停止播放和关闭播放实例。Uninit是 SDK 最后一个调用的接口多实例环境下只需要调用一次。