对于非.avi A/V源(如.mp3、.mp4等)在AviSynth中(在Windows中)读取这些媒体文件(至少)有2种可能性:
DirectShowSource(),使用微软的DirectShow媒体体系结构.FFmpegSource2()别名FFMS2()使用FFmpeg和其他任何东西。它们的优点和缺点是什么?
哪一个更可靠,框架/样品准确等等?
发布于 2018-01-18 16:59:33
DirectShowSource()使用当前为系统中的特定文件类型安装和启用的编解码器。通常,这意味着当您在mediaplayer中打开视频文件(包括音频流)时,会触发相同的编解码器。如果您在那里启用了一些特殊的后处理选项,它们也将生效。
正如您提到的,FFmpegSource2()不依赖于系统编解码器,而是使用FFMPEG。默认情况下,它也会忽略音频,即使它存在于源容器中。
一个显著的区别是,DirectShowSource()没有帧精确搜索,如果您试图对每个帧的精度进行一些微调,或者将同一事件的两个记录混合起来,以便每个帧都匹配,那么这一点就变得至关重要了。FFMPEG可以选择生成.ffindex文件,以改进查找功能(默认情况下是打开的)。
然而,根据我的经验,当打开一些以H264 FFmpegSource2编码的交错高清晰度电视流时,会产生双帧速率,因此您可能需要注意这一点。
还有一个名为DSS2的外部插件,它修复了原始插件的框架不准确问题。
就我个人而言,我通常使用DirectShow/DSS2 2,除非我需要精确的帧搜索,因为FFMS在第一次启动时做索引可能需要一些时间。
https://stackoverflow.com/questions/48323121
复制相似问题