我可能做错了什么和/或有些事情我不明白,但是.
我有一个进步的视频(这里失败了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_via_filter.mp4)确实是隔行的(我看到了交错的“工件”)。但是,运行mediainfo output_via_filter.mp4告诉我,“扫描类型”是逐步。
如果我将该代码用于相同的输入文件(根据我在intarweb上的搜索结果,再次尝试获取交错文件,而不使用"interlace“筛选器):
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_interlace.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生成一个隔行的视频文件?,一个很好的例子。
发布于 2021-03-24 07:54:06
回答我自己的问题。以下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)https://stackoverflow.com/questions/66769779
复制相似问题