比如WebRTC涉及的RTP RTCP SDP STUN等协议 部分嵌入式音视频的朋友技术面窄,技术不深入 比如有同学做了2年的音视频驱动,一帧音频能持续播放多久都不明白 2024全新,音视频流媒体高级开发学习路线 一、音视频基础 1.1、音频基础知识 声音的采集原理及模数转换 高品质音频采样率必须大于等于44.1KHz的原因 什么是PCM(脉...
1、搞音视频必须有扎实的C/C++开发语言基础、 JNI基础,学会如何交叉编译 FFmpeg 等 C/C++库; 2、其次,我们需要阅读大量的音视频规范/协议文档(如H264、MP4/FLV、RTP/RTCP等)。这些文档中的内容基本都以位为单位的,每个二进制位的变化都代表不同的含义,涉及到的东西很多。比如APK多渠道打包就要我们了解zip格式...
RTP/SAVP:针对视频、⾳频的SRTP协议,跑在UDP之上。 RTP/AVPF: 应⽤场景为视频/⾳频的 RTP 协议,⽀持 RTCP-based Feedback。参考 RFC4585 RTP/SAVPF: 应⽤场景为视频/⾳频的 SRTP 协议,⽀持 RTCP-based Feedback。参考 RFC5124 fmt:媒体格式的描述,可能有多个。根据 proto 的不同,fmt 的含义...
srs_app_rtc_server.cpp => char* data = skt->data(); int size = skt->size(); //获取了 data = buf[SRS_UDP_MAX_PACKET_SIZE] size= nread srs_app_rtc_server.cpp => bool is_rtp_or_rtcp = srs_is_rtp_or_rtcp((uint8_t*)data, size); //判断是否是 rtp_or_rtcp 数据包 srs_...
2.srtp_create, 创建 srtp_session,调用栈如下: 3. srtp_unprotect/srtp_protect,RTP 包加解密接口。 4. srtp_protect_rtcp/srtp_unprotect_rtcp:RTCP 包的加解密接口。 5. srtp_set_stream_roc/srtp_get_stream_roc:设置和获取 stream 的 ROC,这两个接口在最新的 2.3 版本加入。
环境搭好了,就打算抓包看看webrtc中rtp及rtcp的封装。不过有个问题就是webrtc是经过srtp加密的,故先要剥了这层衣服不是。 目的就是让webrtc接收rtp的流,可以分为2个过程。 chrome上关闭srtp,…阅读全文 赞同2 添加评论 分享收藏...
2.srtp_create, 创建 srtp_session,调用栈如下: 3.srtp_unprotect/srtp_protect,RTP 包加解密接口。 4.srtp_protect_rtcp/srtp_unprotect_rtcp:RTCP 包的加解密接口。 5.srtp_set_stream_roc/srtp_get_stream_roc:设置和获取 stream 的 ROC,这两个接口在最新的 2.3 版本加入。
3、处理rtp包(rtcp包处理此处忽略),rtp解码 void RtspSession::onRtpPacket(const char *data, size_t len) { uint8_t interleaved = data[1]; if (interleaved % 2 == 0) { if (!_push_src) { return; } auto track_idx = getTrackIndexByInterleaved(interleaved); ...
资料领取直通车:https://docs.qq.com/doc/DTm5idlJ1Y1dWZFZU 更多音视频流媒体开发资料文档视频教程免费领取q群:1106675687 学习地址:https://ke.qq.com/course/3202131?flowToken=1042584(免费订阅,永久学习) 喜欢的朋友们,可以一键三连哦!!! 科技猎手...
conststring&rtcp_fb=payload.rtcp_fb_.at(k); if(nack_enabled){ if(rtcp_fb=="nack"||rtcp_fb=="nack pli"){ audio_payload->rtcp_fbs_.push_back(rtcp_fb); } } if(twcc_enabled&&remote_twcc_id){ if(rtcp_fb=="transport-cc"){ ...