繁体   English   中英

使用Avisynth和VirtualDub堆叠3个gmp4-文件会导致颜色错误和文件失真

[英]Stacking 3 gmp4-files using Avisynth and VirtualDub, results in wrong colors and distorted files

我需要执行看似简单的任务,即将3个文件彼此堆叠。 它们都是相同的:.avi容器,320x240、4:3、25 fps,GeoVision Advanced MPEG-4 GEO编解码器。 我安装了GeoVision编解码器( http://www.geovision.com.tw/english/5_8.asp#-选择“其他实用程序”),因此我的系统(Windows Media Player,Classic Media Player)可以播放文件。 另外,我可以在Virtual Dub中打开并使用它们。 我安装了AviSynth并编写了用于将它们彼此相邻堆叠的简单脚本

h1 = AVISource("Event20150423075842001.avi")

h2 = AVISource("Event20150423075842002.avi")

h3 = AVISource("Event20150423075848003.avi")

StackHorizontal(h1, h2, h3)

现在,当我将其另存为.avs,然后使用VirtualDub将其打开时,我看到三个视频很好地并排放置,但是颜色很奇怪,视频的一部分倒置了,一切都只是..错误-参见屏幕截图http://www.linkfile.de/download-46f71057ed130f9be29510f68ce4ee71.php 首先,我认为这与使用错误的编解码器的avisynth有关,因此我在gmp4上强制使用了它(您也可以在屏幕截图中看到),但是结果是相同的。 现在,我还安装了Avisynth +和VirtualDubMod。 当我在VDMod中打开.avs时,出现“无法找到YV24格式的解压缩器”,但它仍会打开看起来更好的视频(但是当我进行直接流复制并保存时,然后播放它回到MPC,它看起来与第一个屏幕截图完全相同)。 所以这个错误使我指向与色彩空间有关的东西。 现在我的问题是:

  • 我如何找出文件的格式? YUV24,YUV12,..?
  • 然后,如何告诉Avisynth使用VirtualDubMod可以处理的格式?
  • 或者如何使VirtualDub与YUV24配合使用? 我是否只是缺少编解码器? 我的思路是否正确,还是我的问题完全不同?

我还发现了这个相关的线程: 使用系统安装的专有编解码器编辑AVI文件/对AVI文件进行解码 ,但是使用avisynth和ffmpeg时,得到的结果与VirtualDub相似。

我不能使用先转换我的所有文件然后再进行第二步堆叠的解决方案-因为我要使用的实际文件大约有180个视频,每个视频大约需要8个小时,因此消耗的时间会被占用与我的可能性无关。

在过去的一周中,我确实一直在寻找解决方案,而且我想我已经很接近了,但是可悲的是,我对编程的了解不多,无法自己解决..因此,我也想找任何借口我的解释很愚蠢;)非常感谢您的帮助

祝大家玩得开心

编辑:所以我还有更多信息,还有一个示例文件,我无法在本文中链接-.-,因为我-再次-没有足够的声誉,非常好。 我将尝试评论并发布链接:)

这是info()命令带给我的东西:颜色空间:YV24,基于字段(分离)视频:否,奇偶校验:底场优先,视频间距:320字节,音频:否,检测到的CPU:x87 MMX ISSE SSE4.1 SSSE3

我能够重现您的问题。 显然,AviSource默认情况下选择了错误的像素格式,应为“ RGB24”而不是“ YV24”。

为了解决这个问题,您需要向每个AviSource调用添加参数pixel_type="RGB24" ,如下所示:

AVISource("Event20150423075842001.avi", pixel_type="RGB24")

另外,您可以尝试使用DirectShowSource而不是AviSource,它对我而言立即正常工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM