gpt4 book ai didi

ffmpeg - Avisynth 总帧数不等于 VirtualDub 总帧数

转载 作者:行者123 更新时间:2023-12-04 23:26:43 24 4
gpt4 key购买 nike

似乎 Dissolve 和/或 Fade 更改了 .avs 脚本中的总帧数。当我将 avs 脚本中的总帧数相加,然后在 Vdub 中加载 avs 脚本时,总帧数是不同的。下面我的真实示例显示了 的差异822 帧 vs 1368 帧 对于相同的脚本。我进行了一些基本测试,这些测试似乎支持这个假设。当然,我可能正在做一些愚蠢的事情。任何指导将不胜感激。如果我能澄清任何事情,请告诉我。 Ffmpeg 也使用相同的脚本,这让我认为这是一个 Avisynth 问题。或者我缺乏 avs 编码技能。

系统规范:
WIN7,
FFmpeg 版本:20170223-dcd3418 win32 共享,
AVISynth 版本:2.6

Test1.avs = 200帧 long = 预期行为

LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\VSFilter.dll")
v1=ImageReader("1.png", fps=24, start=1, end=100)
v2=ImageReader("2.png", fps=24, start=1, end=100)
video = v1 + v2
return video

Test2.avs 返回 Dissolve = 195帧 long = 意外行为
LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\VSFilter.dll")
v1=ImageReader("1.png", fps=24, start=1, end=100)
v2=ImageReader("2.png", fps=24, start=1, end=100)
return Dissolve(v1, v2, 5)

Test3.avs with fadeOut(fadeIn = 202 帧 long = 意外行为
LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\VSFilter.dll")
v1=ImageReader("1.png", fps=24, start=1, end=100)
v2=ImageReader("2.png", fps=24, start=1, end=100)
fadeOut(fadeIn(v1 + v2, 60), 60)

Test4.avs 与溶解和淡化 = 197帧 long = 意外行为
LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\VSFilter.dll")
v1=ImageReader("1.png", fps=24, start=1, end=100)
v2=ImageReader("2.png", fps=24, start=1, end=100)
v3 = Dissolve(v1, v2, 5)
fadeOut(fadeIn(v3, 60), 60)

Test5.avs 明确指定溶解和淡入淡出的帧速率 = 197 帧 = 意外行为
LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\VSFilter.dll")
v1=ImageReader("1.png", fps=24, start=1, end=100)
v2=ImageReader("2.png", fps=24, start=1, end=100)
v3 = Dissolve(v1, v2, 5, 24)
fadeOut(fadeIn(v3, 60, $000000, 24), 60, $000000, 24)

真实示例 = 822帧 long = 预期行为(这就是我想要的)
LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\VSFilter.dll")
v1=ImageReader("1.png", fps=24).trim(1,106)
v3=ImageReader("3.png", fps=24).trim(1,471)
v9=ImageReader("9.png", fps=24).trim(1,58)
v10=ImageReader("10.png", fps=24).trim(1,35)
v11=ImageReader("11.png", fps=24).trim(1,152)
video = v1 + v3 + v9 + v10 + v11
return video

真实示例 = 1368帧
LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\VSFilter.dll")
v1=ImageReader("1.png", fps=24).trim(1,106)
v3=ImageReader("3.png", fps=24).trim(1,471)
v9=ImageReader("9.png", fps=24).trim(1,58)
v10=ImageReader("10.png", fps=24).trim(1,35)
v11=ImageReader("11.png", fps=24).trim(1,152)
d1 = Dissolve(v1, v3, 5)
d3 = Dissolve(v3, v9, 5)
d9 = Dissolve(v9, v10, 5)
d10 = Dissolve(v10, v11, 5)
fadeOut(fadeIn(d1 + d3 + d9 + d10,60),60)

最佳答案

你说你的一些结果给出了“意外的行为”,但你没有具体说明你期望它们是什么,所以不清楚你认为什么是错误的以及你的误解在哪里。 (在讨论问题时,你应该总是说明你得到了什么结果以及你期望得到什么结果。)

在您的 Dissolve例如( Test2.avs ),你说 195 帧是出乎意料的,但这对我来说听起来是正确的。将两个剪辑“溶解”在一起意味着一个剪辑的结尾与第二个剪辑的开头重叠,因为一个剪辑逐渐淡入另一个剪辑;这与淡出第一个剪辑然后淡入第二个剪辑不同。重叠意味着结果必须短于剪辑的各个长度的总和。您组合了两个 100 帧剪辑并指定了 5 帧重叠,因此 100 + 100 - 5 = 195。

在您的 FadeOut例如(Test3.avs),你说 202 帧是出乎意料的,但这对我来说也是正确的。 FadeIn / FadeOut 的文档状态:

An additional color frame is added at the start/end, thus increasing the total frame count by one (or for FadeIO, by two).



既然你打了一个电话到 FadeIn和一个电话到 FadeOuttest3.avs ,添加了两个额外的帧。如果你不想要这个,那么你可以使用 FadeIn0/ FadeOut0 (或 FadeIO0,因为您同时使用两者),但请注意,使用这些功能,第一帧/最后一帧不会完全是黑色的。如果你想要精确,那么在使用正常的 FadeIn 之前只需剪掉第一帧和/或最后一帧。/ FadeOut/ FadeIO功能。

您的“真实示例”正在将苹果与橙子进行比较。带有 Dissolve 的版本显着增加了帧数,因为它多次组合相同的剪辑:
d1 = Dissolve(v1, v3, 5)
d3 = Dissolve(v3, v9, 5)
...
fadeOut(fadeIn(d1 + d3 + d9 + d10,60),60)
d1d3每个都包含 v3 的副本剪辑,然后你拼接 d1d3最后一起,意思是 v3包含两次。 (对于 v9v10 也是如此。)

您可能打算执行以下操作:
video = Dissolve(v1, v3, 5)
video = Dissolve(video, v9, 5)
video = Dissolve(video, v10, 5)
video = Dissolve(video, v11, 5)
video = FadeOut(FadeIn(video, 60), 60)

或更简洁地说:
video = FadeIO(Dissolve(v1, v3, v9, v10, v11, 5), 60)

结果应该是 804 帧长:(来自原始剪辑的 822 帧)-(4 个溶解点)*(每次溶解 5 帧重叠)​​+(来自 FadeIO 的 2 帧)。

如果您真的想通过淡出然后淡入来组合剪辑,那么您可以通过执行以下操作来保留原始帧数:
video =   FadeIO0(v1, 60) \
+ FadeIO0(v3, 60) \
+ FadeIO0(v9, 60) \
+ FadeIO0(v10, 60) \
+ FadeIO0(v11, 60)

关于ffmpeg - Avisynth 总帧数不等于 VirtualDub 总帧数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43704692/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com