# Functions
FlvTag2RtmpChunks @return 返回的内存块为内部新申请.
FlvTag2RtmpMsg @return msg: 返回的内存块引用参数`tag`的内存块.
MakeDefaultRtmpHeader
使用场景:一般是输入流转换为输出流时。 目的:使得流格式更标准。 做法:设置 MsgStreamId 和 Csid,其他字段保持`in`的值。.
NewDummyAudioFilter 检测输入的rtmp流中是否有音频,如果有,则原样返回;如果没有,则制造静音音频数据叠加在rtmp流里面
@param waitAudioMs 等待音频数据时间,如果超出这个时间还没有接收到音频数据,则开始制造静音数据 @param onPop 注意,所有回调都发生在输入函数调用中.
NewGopCache
@param gopNum: gop缓存大小。 - 如果为0,则不缓存音频数据,也即GOP缓存功能不生效。 - 如果>0,则缓存[0, gopNum]个GOP,最多缓存 gopNum 个GOP。注意,最后一个GOP可能是不完整的。.
NewRtmp2RtspRemuxer @param onSdp: 每次回调为独立的内存块,回调结束后,内部不再使用该内存块 @param onRtpPacket: 每次回调为独立的内存块,回调结束后,内部不再使用该内存块.
RtmpMsg2FlvTag @return 返回的内存块为新申请的独立内存块.
# Variables
RtspRemuxerAddSpsPps2KeyFrameFlag https://github.com/q191201771/lal/issues/205
.
# Structs
AvPacket2RtmpRemuxer AvPacket转换为RTMP
目前AvPacket来自:
- RTSP: sdp以及rtp的合帧包 - gb28181 ps: rtp的合帧包 - customize: 业务方通过接口向lalserver输入的流 - ffmpeg: ffmpeg编码后的数据 - 理论上也支持webrtc,后续接入webrtc时再验证.
GopCache
提供两个功能: 1.
GopMpegts
单个Gop,包含多帧数据.
LazyRtmpChunkDivider 在必要时,有且仅有一次做切分成chunk的操作.
LazyRtmpMsg2FlvTag 在必要时,有且仅有一次做转换操作.
Rtmp2AvPacketRemuxer
用途: - 将rtmp流中的视频转换成ffmpeg可解码的格式.
Rtmp2MpegtsRemuxer 输入rtmp流,输出mpegts流.
Rtmp2MpegtsTimestampFilter
(1).
Rtmp2RtspRemuxer 提供rtmp数据向sdp+rtp数据的转换.