美文网首页工作生活
断点调试用于确定APP端的码流是否正常

断点调试用于确定APP端的码流是否正常

作者: 可问春风渡江陵 | 来源:发表于2019-07-02 10:18 被阅读0次

最近做的sip对讲项目,在接听时出现了视频卡顿的问题,为了排查这个问题的原因,首先想到的码流本身是否有问题还是传输到APP之后解码播放产生卡顿,所以第一反应是将传输到APP的码流写到本地,再用播放器进行播放,看看码流本身是否卡顿。

由于码流的回调是在c++函数中,无法直接获取到沙盒路径,又不愿意为了调试改动代码,所以考虑采用条件断点来导出码流。

1、首先增加一段写文件的代码

    static std::string path = "";
    std::string ppp = "";
    FILE* fd = fopen(path.c_str(), "a+");
    if((long)fd <= 0)
    {
        printf("=============open failed=========\n");
    }else {
        fwrite(audioData, len, 1, fd);
        fclose(fd);
    }//导出数据

2、然后增加一个条件断点

屏幕快照 2019-07-02 上午9.55.30.png
  • 此时的沙盒路径还未填写完整

3、在程序启动时,获取沙盒路径,并将条件断点上的路径填写完整

3.1 在didFinishLaunchingWithOptions函数中做个断点,并通过打印NSHomeDirectory()获得沙盒路径

屏幕快照 2019-07-02 上午9.59.25.png

3.2 将打印的路劲补充到断点中

屏幕快照 2019-07-02 上午10.00.32.png

4、然后在接听呼入时进行拉流,执行断点一次后,取消断点,就能将回调码流写入到本地

最后这个问题定位的确是码流本身有问题,过来的码流会卡顿,最后网络组排查后是由于标准RTP没有在帧头附带帧率信息,网络组会统计1S内的帧数量,计算帧率,如果1s内统计的数量没有达标就会设置为默认码率,但他们也不知道为什么会导致他那边误判帧率为1导致卡顿,最后他们通过设置默认帧率为25解决了这个卡顿问题。

相关文章

  • 断点调试用于确定APP端的码流是否正常

    最近做的sip对讲项目,在接听时出现了视频卡顿的问题,为了排查这个问题的原因,首先想到的码流本身是否有问题还是传输...

  • iOS断点调试

    1.断点调试App a.设置常规断点 添加断点:在xcode中代码编辑器中右边单击你想调试的代码处就可以添加断点,...

  • Xcode 通知/scheme url被动打开app时调试

    正常按cmd + R 会自动运行程序,打的断点可以定住。但是通过通知/scheme的方式打开app不好调试。 只需...

  • Android Studio调试

    参考 断点调试 实用调试 总结:断点调试有step into step out 等 实用调试:条件断点、日志断点、...

  • 通过 《HTTP 图解 》一书来认识HTTP(四)

    HTTP 状态码 HTTP 状态码负责表示客户端 HTTP 请求的返回结果、标记服务器 端的处理是否正常、通知出现...

  • HTTP 状态码

    快速预览 HTTP 状态码 HTTP 状态码负责表示客户端 HTTP 请求的返回结果、标记服务器端的处理是否正常、...

  • TCP实现聊天

    IO流关闭是简写的,正常写要判断是否为null 服务端 客户端

  • 【Http】- Http之状态码

    状态码 简介 HTTP 状态码负责表示客户端 HTTP 请求的返回结果、 标记服务器端的处理是否正常、 通知出现的...

  • Flutter开发调试

    代码开发后出问题都会需要调试,调试方法很重要。 1. 断点调试 断点调试跟大家熟悉的 Chrome 的断点调试基本...

  • 让我们了解HTTP(4)

    这篇文章讲解的是状态码,HTTP状态码的职责是表示客户端HTTP请求的结果、服务端的处理是否正常等 状态码的类别:...

网友评论

    本文标题:断点调试用于确定APP端的码流是否正常

    本文链接:https://www.haomeiwen.com/subject/tokncctx.html