一 mediastream2
特点:由一系列不同功能的Filter,即MSFilter,按照需要连接Link起来。Run起来。
Filter照着模板写,注册上去。跟ffmpeg类似。
音频filter,视频filter,各一个线程。
//把连接的filter都跑一遍,等间隔时间(10毫秒)到了,再次执行。间隔时间可改。
//一般,视频1秒25帧,间隔是40ms,filter运行时间是30ms。
//音频,1秒50次,filter运行时间是10ms。
#define TICKER_INTERVAL 10
void *mw_ticker_run(void *arg)
{
/*Step 1: run the graphs*/
/*Step 2: wait for next tick*/
s->time+=s->interval;
}
项目经验:有遇到接收音视频数据报错--没有数据,是其中一个filter阻塞了,该功能太耗时了,而不是ortp库有问题。
二 ortp抗抖动怎么做的?jitter作用于取数据的时间
ortp是单线程下的多个RTP会话。
对网络抖动的处理:队列最大100个,最大补偿80微秒,跳跃限制5000微秒。
jbp.max_packets= 100;/* maximum number of packet allowed to be que

文章讨论了mediastream2框架下如何通过Filter链路处理音视频数据,以及ORTP库在单线程环境下如何进行多RTP会话管理和网络抖动的处理。当遇到数据接收错误时,问题可能出在某个filter耗时过长。ORTP采用队列和时间补偿策略对抗抖动,最大补偿80微秒,跳跃限制为5000微秒,并通过计算滑动差和抖动来调整取数据的时间。
最低0.47元/天 解锁文章
1090

被折叠的 条评论
为什么被折叠?



