zoukankan      html  css  js  c++  java
  • 音视频花屏 噪音一些参考网址

    https://blog.csdn.net/matrix_laboratory/article/details/71757493  //视频花屏转载

    一 常见的视频花屏原因

    • 渲染脏数据
    • 丢帧
    • 图像格式转换           

          1.渲染脏数据是还为完成渲染的数据。具体来讲就是在视频帧渲染到一半的时候,即被送到编码器编码。 此问题发生在视频渲染阶段。

          (1)图像具有明显的撕裂或者错位特征  渲染脏数据造成结果就是该图像一半是当前帧的数据,另一半是上一帧的数据
         (2)渲染脏数据通常不会造成持续型的花屏现象
         如下图所示,图片中上下存在明显错位的现象。  PS:一般脏数据的渲染结果不一定像下图中那么规则。

      

      2.此处所说丢帧丢弃的是视频编码后的视频帧,通常发生在复用(Mux)阶段。 由于视频编码后帧之间存在依赖关系,丢帧会带来及其严重花屏效果,并且具有持续性影响。 此问题发生在视频编码阶段。

       特征

      (1)存粹的花屏,且花屏效果没有明显的规则型(比如撕裂、错位)
      (2)连续多帧存在花屏现象
      如下图所示:

          

         产生原因

      • 视频帧时间戳(PTS)不对
        由于大部分复用器(Muxer)都严格要求视频帧PTS是严格递增的,比如ffmpeg中mp4 Muxer如果当前帧的PTS小于或等于前一帧的PTS,那么该帧就不会被写入文件,ffmpeg会报”Invalid pts”错误。

      • 视频向音频同步引发丢帧(推流过快也可能出现花屏,如果帧数据重复也可以花屏)

      • 缓冲队列溢出

             

      3.图像格式转换

        在视频编解码中必然会涉及到YUV和RGB图像格式的转换,并且YUV还有多种格式。如果转换格式或者算法不正确也会引发视频花屏问题。 此问题发生在视频渲染或者播放阶段。

        (1)图像的黑白数据是正常的,但是色彩不正常,比如色彩偏色、甚至错乱。
        (2)图像整体依然处于可识别的状态,但是存在明显的彩色斑块

    解决方法参考上面的网址

    二 音频杂音的问题

      1.  memcpy(stream, (uint8_t*)(frame->data[0]), data_size)  ------------>存放数据大小不一样,导致播放出现丢帧就会有杂音

        frame->data[0]frame->linesize[0]具体含义

       2.if判断那里过滤掉一些帧,导致丢帧

    https://github.com/xufuji456/FFmpegAndroid  //FFmpeg进行音频剪切、混音、拼接与转码

    https://github.com/979451341/AudioVideoStudyCodeTwo/tree/master/FFmpeg%E7%BB%99%E8%A7%86%E9%A2%91%E6%8D%A2%E5%A3%B0%E9%9F%B3  // FFmpeg视频替换声音(附源码下载)

      

  • 相关阅读:
    数据库产生的背景
    VS2008执行MFC程序,提示microsoft incremental linker已停止工作解决方法
    leetcode第一刷_Add Binary
    【MongoDB】深入了解MongoDB不可不知的十点
    哈理工2015暑假训练赛 zoj 2078Phone Cell
    dpdk l2fwd 应用流程分析
    在Redhat Linux中执行非Redhat的Openstack, Redhat将对其Linux不提供支持
    Wing IDE 怎样设置 python版本号
    Shell编程入门
    通达OA 小飞鱼OA实施法:以项目管理的方式来推进工作流设计项目实施
  • 原文地址:https://www.cnblogs.com/liunx1109/p/9336742.html
Copyright © 2011-2022 走看看