首页 > 技术文章 > 音视频花屏 噪音一些参考网址

liunx1109 2018-07-19 16:45 原文

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视频替换声音(附源码下载)

  

推荐阅读