自写MediaSubssion和Source
void H264FramedLiveSource::doGetNextFrame()
{
int popcount;
fFrameSize = ManStream.a[m];
m++;
if (fFrameSize > fMaxSize)
{
fNumTruncatedBytes = fFrameSize - fMaxSize;
fFrameSize = fMaxSize;
}
else
{
fNumTruncatedBytes = 0;
}
if (ManStream.myfifo.GetCount()>=fMaxSize)
{
if (!ManStream.sended)
{
popcount = ManStream.myfifo.Pop(fTo,fMaxSize);
ManStream.sended = true ;
}
nextTask() = envir().taskScheduler().scheduleDelayedTask(10,(TaskFunc*)FramedSource::afterGetting, this);
return;
}
直通预览卡顿有三种原因:
1. 来自于视频源的卡顿;
优化视频采集和打包发送部分;
来自于网络传输的卡顿;
查下网络环境,如果是公网的话需要做特殊处理;
来自于播放器的卡顿;
注意播放器的缓存;
另外:你是使用什么编码芯片或者编码器呢,使用什么编码??还有播放器??