没有用到ffmpeg库
可以将
本地
FLV文件
发布
到RTMP流媒体
服务器
使用librtmp发布RTMP流可以使用
两种API
:RTMP_SendPacket()和RTMP_Write()。
使用RTMP_SendPacket()
发布流
的时候函数执行流程如下图所示。使用RTMP_Write()发布流的时候函数执行流程图
相差不大
。
InitSockets():初始化Socket
RTMP_Alloc():为结构体“RTMP”分配内存。
RTMP_Init():初始化结构体“RTMP”中的
成员
变量。
RTMP_SetupURL():设置输入的RTMP连接的URL。
RTMP_EnableWrite():发布流的时候
必须要使用
。
如果不使用则代表
接收
流。
RTMP_Connect():建立RTMP连接,创建一个RTMP协议规范中的
NetConnection
。
RTMP_ConnectStream():创建一个RTMP协议规范中的
NetStream
。
Delay:发布流过程中的延时,保证
按正常播放速度
发送数据。
RTMP_SendPacket():发送一个RTMP数据RTMPPacket。
RTMP_Close():关闭RTMP连接。
RTMP_Free():释放结构体“RTMP”。
CleanupSockets():关闭Socket。
程序运行后,会将文件以直播流的形式发布到“rtmp://localhost/publishlive/livestream”的URL。修改文件名称和RTMP的URL可以实现将任意flv文件发布到任意RTMP的URL。