前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >看完这篇文章,你起码对分析视频卡顿有点思路了 01

看完这篇文章,你起码对分析视频卡顿有点思路了 01

作者头像
小驰随想录
发布2021-04-30 14:39:37
9790
发布2021-04-30 14:39:37
举报
文章被收录于专栏:Android Camera开发

熟话说,授人以鱼不如授人以渔,这里记录的是在实际项目上,我遇到问题时是如何进行排查解决的,给大家提供个思路参考~

一、遇到的问题

通过pc后台查看手机端实时视频,出现先出现一帧画面,然后画面卡住,过个几秒钟后,画面才流畅。

二、分析问题

1)这个问题,我们首先需要排查下是手机端还是pc端的问题,不然直接丢给pc端同事排查,人家搞半天,最后发现是手机端的问题,那就尴尬了;

2)下面我们来看下如果排查是哪端出现的问题?

其实思路也很简单,我们需要本地保存一份yuv和h264流文件,然后借助软件查看,本地的流文件是否正常。如果有问题,那就是手机端的问题,否则,就可以让pc端的同事一起排查了。

i.如下面代码块所示,我在流推送给后台之前,把yuv流数据保存到本地文件里面;

ii、如下面代码块所示,把编码后的h264流保存下来;

代码语言:javascript
复制
  private void saveStreamFile(byte[] buffer, String encodeFormat, int width, int height) {
        String dirString = "/sdcard/videoStream/";
        File dirFile = new File(dirString);

        if (!dirFile.exists()) {
            dirFile.mkdirs();
        }

        File saveFile = new File(dirString + width + "_" + height + "Stream.yuv");

        try {
            FileOutputStream fileOutputStream = new FileOutputStream(saveFile, true);
            fileOutputStream.write(buffer);
            fileOutputStream.flush();
            fileOutputStream.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

ii、流文件保存下来了,就是怎么查看的问题了;

我使用的是ElecardStreamEyeTools工具,这个工具可以播放yuv流文件和h264流,后缀都需要修改成.yuv才能查看。

如下图所示,yuv流文件是选择Elecard YUV Viewer 来查看,h264流文件是选择Elecard StreamEye来查看。

(ElecardStreamEyeTools)

(选择Elecard YUV Viewer 打开查看yuv流文件)

(选择Elecard StreamEye 打开查看h264文件)

3)上面一波操作后,是时候有个基本结论了。播放本地保存下来的yuv和h264流文件,发现都是流畅的,没有卡顿现象。而且发现h264流文件里面,是有够多的i帧的,这时候可以让pc端的同事一起排查了。

附:ElecardStreamEyeTools工具 下载地址:

https://download.csdn.net/download/Mr_ZJC/14947142

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-02-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小驰成长圈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档