Mediacodec编码后的h264视频出现马赛克问题

 

问题:在视频采集后,通过Mediacodec编码生成h264视频文件,播放时出现马赛克较多,无论调整帧率、码率、还是分辨率都不能解决问题

出现问题的原因:编码时传入的时间戳不对。时间戳是视频播放的标准,应该以采集一帧画面时的时间为准,而不应该是编码时的时间,所以编码时传入的时间戳可以使用采集该帧数据时的时间。

 

关于网上用固定步长增加的变量作为时间戳的方式,个人认为不是很准确。

个人认为比较准确的方法就是在获取摄像头采集到的原始数据之后,可以通过long stamptime = System.nanoTime()获取到当前时间戳,然后在编码时将stamptime传入queueInputBuffer(........)中,就可保证编码后的视频没有马赛克。

切忌stamptime在编码时才获取,因为在采集到编码之间,可能需要转换YUV格式(如采集的是YV12格式,编码需要传入的是YUV420sp格式),这会耗时(时间长短可能是变化的),就造成了此时的时间与原始画面的时间间隔存在差异,如果在此时获取stamptime传入queueInputBuffer(........),编码的帧在时间上不连续,形成马赛克

 

转载于:https://www.cnblogs.com/matrixsps/p/7604124.html

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Video Enhancer 是一款提升视频质量的软件。采用大量的VirtualDub滤镜和附加的编码器重新压缩的视频处理,将马赛克进行还原。 您可通过使用 Video Enhancer 强加您视频的分辨率以极大的提升其品质,它可以调用绝大多数 VirtualDub 滤镜及任意编解码器进行重压缩处理。 Video Enhancer (视频马赛克还原) 使用说明: 1、启动Video Enhancer,进入Video Enhancer的主界面 2、在输入视频文件的右下方有一个浏览按钮,点击浏览,选择要处理的视频 3、在浏览的下面有一个多文件,意思是Video Enhancer可以同时处理多个视频文件,单击多文件,添加其它要处理的文件4、单击添加,选择其它的要处理的文件,然后单击确定,回到主界面: 5、接下来有一个超分辨率模式,如果你的电脑配置还行的话,选择上面的质量优先模式,否则选择下面的速度优先。这是视频处理过程的不同插值计算方法。 6、在输出文件的右下面的浏览,是让你选择处理好的文件存放路径,最好选择一个空间比较大的地方,因为输出的AVI占用磁盘空间比较大,具体要看不同的编码。 7、再下面的帧大小就是分辨率的设置,不同的文件需求,要设置不同大小。注意要设定合适的比例,否则画面会变形的,如果你不知道比率,可以使用高级模式(主界面的右边部分,左边下面的简单模式与高级模式转换按钮),选择超分辨率,有一个;保持纵横比,勾选。 看到红色矩形框框住的吗?选择它。 9、选定后,单击右边的配置,encode表示编码,也就是视频处理符合什么标准,下面是你可以选择的标准:是你处理好的视频用播放器播放,需要什么解码器。mode指的是压缩模式,使用恒定比率还是使用其它的方式。我们选择第一个恒定比率,下面就会出现比特率的设置,bitrate就是比特率的意思。 10、设置好后,再进行音频设置,根据你对音频的要求,选择相应的声音品质。 11、Video Enhancer的功能强大还在于有很多相关的VD滤镜,进入到高级模式中就会有很多滤镜,只要选择VD滤镜,就会出现滤镜选项,这些设置好后,就可点开始了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值