使用ffmpeg python创建交错视频



我可能做错了什么和/或有什么我不明白的地方,但。。。

我有一个渐进式视频(此处失败1.mp4(。对该视频进行媒体信息确认";扫描类型";是进步的。

如果我使用以下代码来获得相同的视频交错:

import ffmpeg
ffmpeg.input("/home/dbr/Videos/failing1.mp4") 
.filter("interlace") 
.output(
"output_via_filter.mp4",
vcodec="libx264",
preset="ultrafast"
) 
.run(overwrite_output=True)

使用mpv、vlc或任何像样的视频文件播放器,我可以看到生成的文件(output_filter.mp4(确实是交错的(我看到交错的"伪影"(。然而,运行mediainfo output_via_filter.mp4告诉我;扫描类型";是渐进

如果我对同一个输入文件使用该代码(根据我在intarweb上的搜索,另一次尝试在不使用"隔行扫描"过滤器的情况下获得隔行扫描文件(:

ffmpeg.input("/home/dbr/Videos/failing1.mp4") 
.output(
"output_via_interlace.mp4",
vcodec="libx264",
preset="ultrafast"
) 
.global_args("-vf", "tinterlace=interleave_top,fieldorder=tff", "-flags", "+ilme+ildct") 
.run(overwrite_output=True)

生成的文件(output_via_interlace.mp4(不是交错的,并且mediainfo output_via _interplace.mp4确认";扫描类型";是进步的。

然而,直接在命令行上使用ffmpeg,参数相同:

ffmpeg -i f/home/dbr/Videos/failing1.mp4 -vf tinterlace=interleave_top,fieldorder=tff -flags +ilme+ildct  output.mp4

给我:

mediainfo output.mp4 | grep Scan
Scan type                                : MBAFF
Scan type, store method                  : Interleaved fields
Scan order                               : Top Field First

我想我的问题是:如何使用ffmpeg-python生成交错视频文件举个小例子就好了。

回答我自己的问题。以下ffmpeg python代码按预期工作:

ffmpeg.input("/home/dbr/Videos/failing1.mp4") 
.filter("tinterlace", "interleave_top") 
.filter("fieldorder", "tff") 
.output(
"output_via_interlace.mp4",
vcodec="libx264",
preset="ultrafast",
flags="+ilme+ildct"
) 
.run(overwrite_output=True)

相关内容

  • 没有找到相关文章

最新更新