librtmp usage

2016-10-27  本文已影响380人  SniperPan

个人翻译,转载请注明出处,谢谢!
rtmpdump是开发用于RTMP流的工具箱,支持所有RTMP格式,具体包含如下:

源码下载
git clone git://git.ffmpeg.ort/rtmpdump

从v2.1开始,提供了两个额外的程序,rtmpsrv和rtmpsuck.

librtmp Usage

librtmp是一组RTMP API,该组API中提供了大量的客户端函数以及小部分服务器函数,以支持RTMP、RTMPT、RTMPE、RTMPS、RTMPTE以及RTMPTS。虽然RTMP最基础的Spec已经由Adobe公司发布,不过本组API并未采用Adobe的Spec进行逆向开发。因此,本组API可能与已发布Spec有所出入,但通常是和其他Adobe客户端运行方式一致的。

1. 概述

RTMPDump软件包在rtmpdump中包含了一个基础客户端工具程序,一些服务器示例,以及一个支持编程访问RTMP协议的库。

基础交互过程如下:

  • 如需发布流,可在RTMP_Connect()前调用RTMP_EnableWrite(),然后在会话建立后使用使用RTMP_Write()
  • RTMP_Pause()在流播放过程中用于在暂停和播放状态间切换
  • RTMP_Seek()用于在流播放过程中移动位置

所有数据以FLV格式进行传输,基础会话需要提供RTMP URL。RTMP URL格式如下:

rtmp[t][e][s]://hostname[:port][/app[/playpath]]

如前所述,原始rtmp、协议或传输层包裹的及已加密会话均可支持。

额外的参数可通过在URL后添加以空格区隔的键值对(key=value)进行指定,需要注意的是含有特殊字符时要使用‘\HH(Hexadecimal)’格式,以免误导选项解释器(option parser),例如,空格需表示为'\20',反斜杠为'\5c'。

2. 选项

网络参数(Network)

参数定义如何连接至媒体服务器:

连接参数(Connection)

选项定义了RTMP连接请求分组内容,如未提供正确值,媒体服务器将拒绝连接:

3. 会话参数

这些选项将在连接请求成功后生效。

4. 安全参数

这些参数用于处理来自服务器端的额外的验证请求。

上一篇下一篇

猜你喜欢

热点阅读