【发布时间】:2015-06-22 19:04:21
【问题描述】:
我需要执行看似简单的任务,将 3 个文件彼此相邻堆叠。它们都是相同的:.avi 容器、320x240、4:3、25 fps、GeoVision Advanced MPEG-4 GEO 编解码器。 我安装了 GeoVision 编解码器(http://www.geovision.com.tw/english/5_8.asp# - 选择“其他实用程序”),所以我的系统(Windows 媒体播放器、经典媒体播放器)可以播放文件。此外,我可以在 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?我只是缺少编解码器吗?我的思路是不是稍微走对了,还是我的问题完全不同?
我还发现了这个相关的线程:Editing/Decoding AVI files using system-installed proprietary codecs,但是使用 avisynth 和 ffmpeg,我得到了与使用 VirtualDub 相似的结果。
我不能使用先转换所有文件然后在第二步中进行堆叠的解决方案 - 因为我必须处理的实际文件大约有 180 个视频,每个视频长约 8 小时,并且会消耗时间与我的可能性无关..
在过去的一周里,我真的在寻找解决方案,我想我已经接近了,但遗憾的是我对编程的了解还不够,无法自己解决。所以我也想原谅对于我的解释中有任何明显的愚蠢之处;) 非常感谢您的帮助
祝大家玩得开心
编辑: 所以我有更多信息和一个示例文件,我无法在这篇文章中链接 -.- 因为我 - 再次 - 没有足够的声誉,非常好。我会尝试评论并发布链接:)
这是 info() 命令带给我的: 色彩空间:YV24, 基于现场的(分离的)视频:否, 奇偶性:底场优先, 视频间距:320 字节, 音频:不, 检测到 CPU:x87 MMX ISSE SSE4.1 SSSE3
【问题讨论】:
-
没有屏幕截图或这种特殊格式的示例文件,很难说什么。安装编解码器后,我什至无法将任何文件编码为这种格式。要获取有关颜色空间和其他详细信息的信息,您可以在 AviSource 之后在 Avisynth 中使用“Info()”命令。您也可以尝试在每个 AviSource 之后放置“ConvertToYV12()”,以便 stacker 函数以更标准的色彩空间获取视频。
-
谢谢,我在帖子中添加了一些信息,这里是一个示例文件:LinkFile.de/download-02f83d35779d1914212cae6784e70d18.php 这里是 info-command 的结果:linkfile.de/download-8122ecf0e8a3dfbbd36d13b64aa30796.php 当我将它们转换为 YV12 时,它们看起来仍然一样播放它们时,问题仍然存在
标签: video ffmpeg avisynth virtualdub