avconv:从.ts转换为H264,并带有高质量的屏幕截图


0

我正在使用avconv将MPEG传输流转换为H264。我的主要目标是从源视频文件中捕获高质量的屏幕截图。

TS文件是隔行扫描的,因此我首先要转换为H264,然后尝试从编码的视频中捕获屏幕截图。但是,质量缺乏-我在屏幕的高对比度区域看到锯齿状边缘,以及一些看起来类似于JPEG压缩伪像的噪声。

我正在尝试各种质量预设,Yadif去隔行和降噪的组合,但是似乎仍然缺乏质量。

文件大小并不重要-只要屏幕截图是高质量的,我都不介意我是否会拥有巨大的视频文件。压缩时间有些重要,但是我不介意编码步骤是否花费很长时间。

我应该使用哪些设置来从这些视频文件中获得最高质量的屏幕截图?假设我有1080i输入,如何生成尽可能接近1080p的屏幕截图?当然,输出的质量不能比输入的质量高,但是我想尽可能地接近输入。

我将使用avconv从视频中提取屏幕截图,但是为了进行测试,我暂停了VLC来检查视频质量。

Answers:


1

在100万标记处进行无损截屏:

ffmpeg -i input.1080i.ts -vf yadif -ss 01:00 -vframes 1 screenshot.png

(对于使用ffmpeg感到抱歉,但是avconv命令应该非常接近-如果不相同)

但是,您必须首先确保去隔行是可行的方法。正因为源为1080i并不意味着它不是渐进的内容交错,在这种情况下,你应该隔行。

这可能是电视图像化的内容,在这种情况下,你应该使用fieldmatch过滤器(我希望它在avconv可用。):

ffmpeg -i input.1080i.telecined.ts -vf fieldmatch -ss 01:00 -vframes 1 screenshot.png

最后,如果1080i实际上是渐进式的,您也不需要!

ffmpeg -i input.1080i.eu.ts -ss 01:00 -vframes 1 screenshot.png

另外,请注意,虽然通过-ss 01:00在输入之前追加会得到更快的结果,但所产生的时间安排可能不准确。


感谢Ely,我感谢详细的答案。avconv没有fieldmatch过滤器-我将安装ffmpeg并进行一些测试,以查看是否值得切换。
Mike Ryan

没问题。确定您是否告诉我1080i样本的来源会更容易,例如它来自哪个国家和来源(电视,蓝光..)。无论如何,请在没有任何Yadif的情况下先尝试。如果您在输出中看到梳理(视频上的难看线),则说明它是电视转播的或真正的隔行扫描。如果是后者,则可能要尝试一下,-vf yadif=mode=1因为您也有机会获得原始帧速率。如果您发现帧重复,请执行常规操作-vf yadif
2015年

来源是北美的1080i有线电视频道(尽管我最终将处理欧盟视频)。我将编写一个脚本,该脚本以您建议的各种命令行开关排列方式处理视频,然后在它们之间进行比较。
Mike Ryan

1
是的,那么,如果您录制了电影或电视节目,则很可能已转播了该电影或电视节目,如果要使原始逐行视频以23.976 fps的速度运行,则必须执行“反电视电影”。祝好运!
2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.