全网首发:为什么解码器长时间没有画面?如何解决?

简介: 全网首发:为什么解码器长时间没有画面?如何解决?

 吾手机进入FreeSwitch,经常长时间没有画面。吾于是经常频繁退出、进入,试图出现画面。很难出现。


  今天在外面爬山时,然后想起这事。之所以没画面,跟关键帧有关。之前为了解决终端互通问题,吾使用了一个多次发关键帧的办法。那么进会议室能不能如此呢?


  • 会议室多次发关键帧。这个改起来比较麻烦。
  • 终端收到关键帧再干活。这个比较方便。


   吾首先在终端这边进行了处理,效果非常好。进入会议室后,终端的画面马上就解码成功。代码大家可以参考一下:

  private Surface videoSurface;
    private AndroidVideoDecoder videoDecoder;
    private MediaCodecData mInputData;
    private MediaCodecData mOutputData;
    private byte[] dataBuffer;
    private byte[] dataBufferKeyFrame;
    private void decodeData(final byte[] data, final int dataSize)
    {
        mInputData.setData(data, dataSize);
        int result = videoDecoder.process(mInputData, mOutputData);
        if (result != -1)
        {
            mWidth = videoDecoder.getWidth();
            mHeight= videoDecoder.getHeight();
        }
    }
    private void onDataReceived(final byte[] dataBuffer, final int dataSize)
    {
        if ((dataBuffer[4]&0x1F) == 0x07)
        {
            if (videoSurface == null)
            {
                dataBufferKeyFrame = new byte[dataSize];
                System.arraycopy(dataBuffer, 0, dataBufferKeyFrame, 0, dataSize);
                return;
            }
        }
        else
        {
            if (videoDecoder == null)
            {
                return;
            }
        }
        if (videoDecoder == null)
        {
            videoDecoder = new AndroidVideoDecoder(videoSurface, mWidth, mHeight);
            mInputData   = new MediaCodecData(mWidth, mHeight);
            mOutputData  = new MediaCodecData(mWidth, mHeight);
            if (dataBufferKeyFrame != null)
            {
                decodeData(dataBufferKeyFrame, dataBufferKeyFrame.length);
                dataBufferKeyFrame = null;
            }
        }
        decodeData(dataBuffer, dataSize);
    }


目录
相关文章
|
6月前
|
编解码 人工智能 算法
社区供稿 | AIGC图像分辨率太低?快来试试像素感知扩散超分模型,你想要的细节都在这里!
本文介绍了一种全新的基于SD生成先验的图像超分辨率和修复算法,在多个任务上都有着SOTA的表现。
|
2月前
|
存储 数据处理 API
视觉智能平台常见问题之通用视频生成接口声音和画面对不上如何解决
视觉智能平台是利用机器学习和图像处理技术,提供图像识别、视频分析等智能视觉服务的平台;本合集针对该平台在使用中遇到的常见问题进行了收集和解答,以帮助开发者和企业用户在整合和部署视觉智能解决方案时,能够更快地定位问题并找到有效的解决策略。
25 3
|
2月前
|
机器学习/深度学习 算法 开发工具
视觉智能平台常见问题之视频封面输出的图片会出现过曝如何解决
视觉智能平台是利用机器学习和图像处理技术,提供图像识别、视频分析等智能视觉服务的平台;本合集针对该平台在使用中遇到的常见问题进行了收集和解答,以帮助开发者和企业用户在整合和部署视觉智能解决方案时,能够更快地定位问题并找到有效的解决策略。
23 0
|
2月前
|
机器学习/深度学习 开发工具 计算机视觉
视觉智能平台常见问题之平台的换脸或者换人物到对应的某个图片里面去如何解决
视觉智能平台是利用机器学习和图像处理技术,提供图像识别、视频分析等智能视觉服务的平台;本合集针对该平台在使用中遇到的常见问题进行了收集和解答,以帮助开发者和企业用户在整合和部署视觉智能解决方案时,能够更快地定位问题并找到有效的解决策略。
23 0
|
3月前
|
机器学习/深度学习 计算机视觉
YOLOv5改进 | 检测头篇 | DynamicHead支持检测和分割(不同于网上版本,全网首发)
YOLOv5改进 | 检测头篇 | DynamicHead支持检测和分割(不同于网上版本,全网首发)
147 0
|
3月前
|
机器学习/深度学习
YOLOv5改进 | 检测头篇 | CLLAHead分布焦点检测头(全网独创首发)
YOLOv5改进 | 检测头篇 | CLLAHead分布焦点检测头(全网独创首发)
68 1
|
3月前
|
机器学习/深度学习
YOLOv8改进 | 检测头篇 | CLLAHead分布焦点检测头(全网独创首发)
YOLOv8改进 | 检测头篇 | CLLAHead分布焦点检测头(全网独创首发)
46 0
|
3月前
|
机器学习/深度学习
YOLOv5改进 | 检测头篇 | CLLAHead分布式焦点损失检测头(全网独家首发)
YOLOv5改进 | 检测头篇 | CLLAHead分布式焦点损失检测头(全网独家首发)
31 0
|
8月前
|
机器学习/深度学习 存储 人工智能
又拍图片管家亿级图像之搜图系统的两代演进及底层原理
又拍图片管家亿级图像之搜图系统的两代演进及底层原理
84 0
|
并行计算 程序员 块存储
全网首发:DeepStream中,获得视频帧数据的代码
全网首发:DeepStream中,获得视频帧数据的代码
228 0