我需要执行看似简单的任务,将3个文件堆叠在一起。它们都是相同的:.avi容器,320x240,4:3,25 fps,GeoVision高级MPEG-4 GEO编解码器.我安装了GeoVision编解码器(8.asp# -选择“其他实用程序”),这样我的系统(windows,media经典版)可以播放这些文件。另外,我可以在虚拟Dub中打开并与他们一起工作。我安装了AviSynth,并编写了一个简单的脚本来将它们堆叠在一起
h1 = AVISource("Event20150423075842001.avi")
h2 = AVISource("Event20150423075842002.avi")
h3 = AVISource("Event20150423075848003.avi")
StackHorizontal(h1, h2, h3)现在,当我将它保存为.avs,然后使用VirtualDub打开它时,我看到三个视频很好地放在一起,但是颜色很奇怪,视频的部分是颠倒的,所有的东西都是..wrong --参见Screen快照http://www.linkfile.de/download-46f71057ed130f9be29510f68ce4ee71.php。首先,我认为这与avisynth采取错误的编解码器有关,所以我将其强加于gmp4 (正如您在屏幕截图中也看到的那样),但结果是一样的。我现在也安装了Avisynth+,以及VirtualDubMod。当我在.avs中打开VDMod时,我得到了“无法找到格式YV24的解压缩器”,但它仍然打开了看起来更好的视频(但是当我直接复制并保存它,然后在MPC中重放它时,它看起来和第一个屏幕截图中看到的完全一样)。所以这个错误指向了一些与颜色空间相关的东西。现在我的问题是:
我还找到了一个相关的线程:Editing/Decoding AVI files using system-installed proprietary codecs,但是使用avisynth和ffmpeg,我得到了与VirtualDub类似的结果。
我不能使用先转换所有文件然后在第二步进行叠加的解决方案--因为我必须处理的实际文件大约有180段视频,每个视频大约8小时,它所消耗的时间与我的可能性无关。
在过去的一周里,我真的在寻找解决方案,我想我已经很接近了,但遗憾的是,我对编程还不太了解,无法自己解决。因此,我也想为我的解释中任何明显的愚蠢之处找借口;)我非常感谢任何帮助
祝大家玩得愉快
编辑:所以我有一些更多的信息,和一个示例文件,我不能在这个帖子中链接--因为我--再次--没有足够的声誉,非常好。我将尝试评论并发布以下链接:)
下面是info()命令带给我的内容: YV24,FieldBased (分离的)视频:不,奇偶校验:底部字段优先,视频音调: 320字节,音频: NO,检测到的CPU : x87 MMXIsseSSE4.1 SSSE3
发布于 2015-06-22 11:04:21
我能重现你的问题。显然,AviSource在默认情况下选择了错误的像素格式,它应该是"RGB24“而不是"YV24”。
要解决这个问题,需要将参数pixel_type="RGB24"添加到每个AviSource调用中,如下所示:
AVISource("Event20150423075842001.avi", pixel_type="RGB24")或者,您可以尝试使用DirectShowSource而不是AviSource,它对我来说是正确的。
https://stackoverflow.com/questions/30957414
复制相似问题