FFmpeg学习笔记(三):逐行扫描转换为隔行扫描的实现----tinterlace简介

网上关于视频去交错(deinterlace)的资料比较多,但是关于加交错(大多数论文里面写的是reinterlace或者re-interlace,但FFmpeg中目前提供的是tinterlace)的资料较少,不过可能是我自己搜索的关键字不恰当或者搜索范围不够广,哈哈,管他呢,反正我找到我要用的了。

tinterlace,加交错,可以实现将逐行扫描转换为隔行扫描,FFmpeg官网上给出了几种不同的加交错方式,原理都十分简单,没有涉及到运动估计啥的,详细见:https://ffmpeg.org/ffmpeg-filters.html#tinterlace。

FFmpeg中的tinterlace()函数,一个为mode,用来指定加交错的方式;另一个为flags,当指定这个参数时,表明在加交错的过程中要使用垂直滤波,有两个垂直滤波器可供选择,作用是减少图像因加交错而出现的莫尔条纹。

我目前用的加交错方式是‘interleave_top’,即奇数帧的奇数场作为目标帧的奇数场,偶数帧的偶数场作为目标帧的偶数场,并选择了使用垂直滤波器‘low_pass_filter’,FFmpeg指令如下:

ffmpeg –i input.avi -vf tinterlace=mode=4:flags=low_pass_filter  output.avi

可实现将逐行视频转换为隔行视频。

你可能感兴趣的:(FFmpeg)