(亲身经历)freeswitch/ffmpeg出现“concealing * DC, * AC, * MV errors in P frame”的一种情况排查

本文主要是介绍(亲身经历)freeswitch/ffmpeg出现“concealing * DC, * AC, * MV errors in P frame”的一种情况排查,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近用freeswitch做视频会议的时候,报这样一个错误,例如“concealing 9 DC, 9 AC, 9 MV errors in P frame”,导致视频画面花屏;起初也和大家网上各种搜,最终无果;

本人环境:WINDOWS 10 64位,freeswitch-1.10.1,ffmpeg的版本为4.1.0

关键点:抓包结合代码分析

分析过程:

1. 出现这个问题的时候比较懵,一时半会儿不知如何下手,这种时候一般手段,抓个包看下,分析一下问题;

上面是我的包,发现看不出问题,这个时候需要结合代码,在代码中打印出错的帧的seqnumber,从而定位到该地方;此处我是在freeswitch工程中打印的,如果是各位在用ffmpeg解码的话,也需要在相应的地方打印“SEQ=? SIZE=?”,这样能够快速的定位到哪些包是错误包;

2. 在我的排查过程中,发现,总是出现SIZE=4096时,出现以上错误,这个4096是我这边的buf_size,难道正好撑满了,哪有那么巧的事?这个时候,我想到了是否是读取数据不完整,超出了缓存区长度呢?

3. 继续跟踪和定位代码,最终找到填充这个buf缓存的代码段,发现在recv_from数据的时候,一次读取的长度是根据这个4096来的,我最终将这个4096改成了,4096*2,则问题解决;

结论: 如果你遇到跟我类似的错误,那么别慌,沉住气,慢慢打印日志和跟踪代码;我这边只是提供一种我遇到的情况,请检查你的程序中缓存这个264包的缓存区是否不够大??代码在接收RTP包时,是否够存呢???

此外:如有其他情况,也可以留言告诉我哦。

这篇关于(亲身经历)freeswitch/ffmpeg出现“concealing * DC, * AC, * MV errors in P frame”的一种情况排查的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/243900

相关文章

MySql死锁怎么排查的方法实现

《MySql死锁怎么排查的方法实现》本文主要介绍了MySql死锁怎么排查的方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录前言一、死锁排查方法1. 查看死锁日志方法 1:启用死锁日志输出方法 2:检查 mysql 错误

MySQL的cpu使用率100%的问题排查流程

《MySQL的cpu使用率100%的问题排查流程》线上mysql服务器经常性出现cpu使用率100%的告警,因此本文整理一下排查该问题的常规流程,文中通过代码示例讲解的非常详细,对大家的学习或工作有一... 目录1. 确认CPU占用来源2. 实时分析mysql活动3. 分析慢查询与执行计划4. 检查索引与表

MYSQL事务死锁问题排查及解决方案

《MYSQL事务死锁问题排查及解决方案》:本文主要介绍Java服务报错日志的情况,并通过一系列排查和优化措施,最终发现并解决了服务假死的问题,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录问题现象推测 1 - 客户端无错误重试配置推测 2 - 客户端超时时间过短推测 3 - mysql 版本问

Linux内存泄露的原因排查和解决方案(内存管理方法)

《Linux内存泄露的原因排查和解决方案(内存管理方法)》文章主要介绍了运维团队在Linux处理LB服务内存暴涨、内存报警问题的过程,从发现问题、排查原因到制定解决方案,并从中学习了Linux内存管理... 目录一、问题二、排查过程三、解决方案四、内存管理方法1)linux内存寻址2)Linux分页机制3)

Java内存泄漏问题的排查、优化与最佳实践

《Java内存泄漏问题的排查、优化与最佳实践》在Java开发中,内存泄漏是一个常见且令人头疼的问题,内存泄漏指的是程序在运行过程中,已经不再使用的对象没有被及时释放,从而导致内存占用不断增加,最终... 目录引言1. 什么是内存泄漏?常见的内存泄漏情况2. 如何排查 Java 中的内存泄漏?2.1 使用 J

hdu 3065 AC自动机 匹配串编号以及出现次数

题意: 仍旧是天朝语题。 Input 第一行,一个整数N(1<=N<=1000),表示病毒特征码的个数。 接下来N行,每行表示一个病毒特征码,特征码字符串长度在1—50之间,并且只包含“英文大写字符”。任意两个病毒特征码,不会完全相同。 在这之后一行,表示“万恶之源”网站源码,源码字符串长度在2000000之内。字符串中字符都是ASCII码可见字符(不包括回车)。

zoj 3228 ac自动机

给出一个字符串和若干个单词,问这些单词在字符串里面出现了多少次。单词前面为0表示这个单词可重叠出现,1为不可重叠出现。 Sample Input ab 2 0 ab 1 ab abababac 2 0 aba 1 aba abcdefghijklmnopqrstuvwxyz 3 0 abc 1 def 1 jmn Sample Output Case 1 1 1 Case 2

D4代码AC集

贪心问题解决的步骤: (局部贪心能导致全局贪心)    1.确定贪心策略    2.验证贪心策略是否正确 排队接水 #include<bits/stdc++.h>using namespace std;int main(){int w,n,a[32000];cin>>w>>n;for(int i=1;i<=n;i++){cin>>a[i];}sort(a+1,a+n+1);int i=1

音视频入门基础:WAV专题(10)——FFmpeg源码中计算WAV音频文件每个packet的pts、dts的实现

一、引言 从文章《音视频入门基础:WAV专题(6)——通过FFprobe显示WAV音频文件每个数据包的信息》中我们可以知道,通过FFprobe命令可以打印WAV音频文件每个packet(也称为数据包或多媒体包)的信息,这些信息包含该packet的pts、dts: 打印出来的“pts”实际是AVPacket结构体中的成员变量pts,是以AVStream->time_base为单位的显

一种改进的red5集群方案的应用、基于Red5服务器集群负载均衡调度算法研究

转自: 一种改进的red5集群方案的应用: http://wenku.baidu.com/link?url=jYQ1wNwHVBqJ-5XCYq0PRligp6Y5q6BYXyISUsF56My8DP8dc9CZ4pZvpPz1abxJn8fojMrL0IyfmMHStpvkotqC1RWlRMGnzVL1X4IPOa_  基于Red5服务器集群负载均衡调度算法研究 http://ww