摘要: 1. 是否可切片的检测 首先在调用 SrsHlsCache::reap_segment 函数进行切片时,针对音频或视频,都会有一个函数来进行检测当前片的时长是否符合所要求的时长。 对于音频,会调用 SrsHlsMuxer::is_segment_absolutely_overflow 函数进行检测, 阅读全文
posted @ 2018-06-07 22:32 季末的天堂 阅读(1155) 评论(0) 推荐(0)
摘要: 1. SrsHls::on_audio 将音频数据封装到 ts 文件中。 1.1 SrsAvcAacCodec::audio_aac_demux 1.1.1 SrsAvcAacCodec::audio_aac_sequence_header_demux 1.1.2 SrsCodecSample::a 阅读全文
posted @ 2018-06-07 20:18 季末的天堂 阅读(1059) 评论(0) 推荐(0)
摘要: 1. SrsHls::on_video 2. SrsAvcAacCodec::video_avc_demux 接收到一个视频消息,首先调用该函数解析该视频数据。 接下来,若检测接收到的 video packet type 为 1,即为 NAL 单元,则调用 video_nalu_demux 进行解封 阅读全文
posted @ 2018-06-07 20:01 季末的天堂 阅读(1651) 评论(0) 推荐(0)
摘要: 1. SrsTsContext::encode_pes 该函数位于 srs_kernel_ts.cpp 中。下面的分析基于假设当前要封装的消息是视频。 该函数首先调用 编码第一个 PES 包(PES 包就是在音视频帧上加入了时间戳等信息). 2. SrsTsPacket::create_pes_fi 阅读全文
posted @ 2018-06-07 15:10 季末的天堂 阅读(824) 评论(0) 推荐(0)