1

ffmpeg 过滤器 mininterpolate(运动插值)在 MPV 中不起作用。

(尽管如此,该文件然后在没有 mininterpolate 的情况下正常播放)。

(我使用搜索引擎和整个文档进行了研究,并对使用 opengl 进行了故障排除,除了寻求帮助和学习更多地了解源代码之外,我通常尝试了所有方法,而且我不是程序员)......</p>

--gpu-context=angle --gpu-api=opengl也不能使opengl工作。(我猜 opengl 可以帮助查看它在文档中的使用)。

笔记

要获取可用视频过滤器的完整列表,请参阅 --vf=help 和 http://ffmpeg.org/ffmpeg-filters.html

另外,请记住,大多数实际过滤器都可以通过 lavfi 包装器获得,它使您可以访问大多数 libavfilter 的过滤器。这包括从 MPlayer 移植到 libavfilter 的所有过滤器。

大多数内置过滤器在某些方面已被弃用,除非它们仅在 mpv 中可用(例如处理 mpv 细节或仅在 mpv 中实现的过滤器)。

如果没有内置过滤器,将自动尝试 lavfi-bridge。本桥不支持帮助输出,在过滤器实际使用前不校验参数。尽管 mpv 语法与 libavfilter 的语法非常相似,但并不相同。(这意味着并非所有被 vf_lavfi 的图形选项接受的东西都会被 --vf 接受。)

您还可以在过滤器名称前加上 lavfi- 以强制包装。如果过滤器名称与已弃用的 mpv 内置过滤器冲突,这将很有帮助。例如 --vf=lavfi-scale=args 将使用 libavfilter 的比例过滤器而不是 mpv 已弃用的内置过滤器。

我希望 MPV 能够启用 mininterpolate(MPV 可以使用的几个过滤器之一,列在http://ffmpeg.org/ffmpeg-filters.html中)。但这就是发生的事情:

输入:"--vf=lavfi=[minterpolate=fps=60000/1001:mi_mode=mci]"

输出:

   cplayer:  (+) Video --vid=1 (*) (h264 1280x720 29.970fps)
   cplayer:  (+) Audio --aid=1 (*) (aac 2ch 44100Hz)
        vd: Using hardware decoding (d3d11va).
    ffmpeg: Impossible to convert between the formats supported by the filter 'mpv_src_in0' and the filter 'auto_scaler_0'
     lavfi: failed to configure the filter graph
        vf: Disabling filter lavfi.00 because it has failed.

(有趣的是,它也 --gpu-api=opengl 不起作用(尽管根据规范我——不是吹牛——HD Graphics 400 Braswell 支持它的 4.2 版本)……而且这 aresample 似乎也没有效果,而且选择的少数音频过滤器通常不会播放' t 启动或输出错误。)

4

1 回答 1

0

问题是您使用的是硬件解码,而没有将解码后的视频复制回系统内存。这意味着您的视频过滤器无法访问它。修复很简单,但该错误消息很难弄清楚。

要解决这个问题,只需传入--hwdec=no. 虽然 --hwdec=auto-copy也修复了它,但minterpolate在 mci 模式下,CPU 密集型如此之高,使用硬件解码也没有多大意义。(对于大多数视频源)

全部一起:
mpv input.mkv --hwdec=no --vf=lavfi="[minterpolate=fps=60000/1001:mi_mode=mci]"

解释:最高效的硬件解码不会在解码后将视频数据复制回系统内存。但是您需要它在内存中运行基于 CPU 的解码视频数据过滤。您要求 mpv 进行一些视频过滤,但它无权访问解码的视频数据。

来自mpv 文档的更多详细信息:

auto-copy仅选择在解码后将视频数据复制回系统内存的模式。这会选择像vaapi-copy(等等)这样的模式。如果这些都不起作用,则禁用硬件解码。与软件解码(假设现代编解码器和无错误的视频流)相比,这种模式通常保证不会造成额外的质量损失,并且允许 CPU 使用视频过滤器进行处理。此模式适用于所有视频过滤器和 VO。

因为这些将解码的视频复制回系统 RAM,所以它们的效率通常低于直接模式,并且可能对软件解码没有太大帮助。

于 2020-09-30T23:19:00.550 回答