问题标签 [virtualdub]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - 在不影响 YUV 图像亮度的情况下调整色调/角度
我正在编写一个 VirtualDub 插件,其中需要在不影响亮度的情况下更改图像的色调/色度。
这是一些代码:
在转换为 RGB 之前,我需要通过 x 角度调整 UV 的色调。紫外线范围介于 -0.5 和 +0.5 之间。是否有一个转换表/公式/已经编写的函数可以在颜色空间中将色调调整 -45 度?
rgb - 旋转色度时保留亮度 (YUV <> RGB)
这是此线程的后续问题。我现在已经设法在不接触亮度的情况下旋转 UV 分量(色度)......有点。
我使用此解决方案从 RGB 转换为 YUV ,更改 UV 值并转换回 RGB。
然而,亮度似乎仍然受到影响——虽然不知道为什么。它似乎也不限于我的代码——可能发生了一些我不明白的事情——因为我在其他 VirtualDub 插件(例如 Donald Graft 的 hue 插件)中看到了这种情况。
举个例子,我在每行上随机旋转了不同值的色度。这里的图像显示了这一点。
左上角是原始图像。右边的两个图像是 U 和 V,左下角是 Y 分量(亮度)。如您所见,在本节中,色彩鲜艳的亮度部分受到色度变化的影响。任何想法为什么会这样?这与 RGB 颜色空间中的剪辑有关吗?有没有办法克服这个问题?
c - VirtualDub 过滤器帧缓冲区 - 释放内存
我正在编写一个 VirtualDub 过滤器,它需要一个单独的帧缓冲区用于 fa->src.data 和 fa->dst.data 之间的中间图像处理(.data 本质上是一个指向像素数据的指针)。
我使用以下方法创建了一个指向上述内容的 char 指针:
然后,这允许我逐行将数据从源帧复制到目标帧:
现在我想要一个中间缓冲区,我可以从 *dst 复制到缓冲区,然后从缓冲区复制到 *src。我怎样才能做到这一点?
我尝试了几件事并取得了不同程度的成功。
然后:
大多数时候,这似乎有效。但是,过了一会儿,我得到“模块中发生了越界内存访问(访问冲突)”。问题是我似乎用完了系统内存(VirtualDub 会在一段时间后占用所有可用内存)。
我需要释放缓冲区吗?看起来很奇怪,因为它每帧都被初始化。我怎样才能释放它?
我尝试了 free(dstbuf) 和 free(&dstbuf) 但在运行时出现“Debug Assertion Failed”错误,表达式:_CrtIsValidHeapPointer(pUserData)... 没有别的。
有任何想法吗?
codec - AviSynth 无法打开我的 AVI 文件:“AVISource:找不到用于fourcc dvds 的解压器”
我只是想用 AviSynth 打开一个 AVI 文件并将其输入 VirtualDub。但是,当我打开我的.avs
脚本(仅包含一个AviSource()
调用)时,我收到以下错误:
Avisynth 打开失败:AVISource:找不到用于fourcc dvds 的解压器(H:\Videos\QTGMC\test.avs,第 1 行)
根据名为 GSpot 的软件(识别视频文件所需的编解码器),似乎安装了所需的 dvsd 编解码器。有谁知道为什么我无法打开这个文件以及如何修复它?
video - VirtualDub 安装视频编解码器
我花了几个小时尝试在我的 32 位版本的 VirtualDub 上安装 xvid 编解码器
我知道优秀的网页: http: //granjow.net/virtualdub-tutorial-exporting.html#content
... 不起作用,编解码器列表仅包含一个 ... 查看图片
你能帮助我吗 ?
此致
帕斯卡
virtualdub - virtualdub 剪辑视频的脚本
我有想要处理的视频,以便在开头删除 x 秒。因为我有大约 140 个视频,所以我开始编写脚本来这样做,但是......它不起作用!
我现在的脚本是:
您可能会注意到,我还更改了帧速率并压缩了视频。
我的命令行是: "C:\Program Files\VirtualDub-1.10.4\VirtualDub.exe" /s "C:\Users...\framerate.vdscript" /c /b "C:\Users... \video" "C:\Users...\输出" /r /x
这使我可以处理“C:\Users...\video”文件夹中的所有视频,并将它们保存在“C:\Users...\output”文件夹中。
帧率更改和压缩效果完美,但修剪效果不佳!令人费解的是,当我在 VDub 中打开其中一个视频时,我加载了脚本,它实际上定义了一个范围并完全按照我的意愿处理它!!!
另一个问题是我如何为每个视频文件定义特定的开始(我可能会更改打开每个文件设置范围的脚本,关闭它并有一个例程来根据每个文件更改范围 - 不确定它是否可能在脚本中,我不知道该怎么做,但我还没有检查)。
任何帮助将不胜感激!
泽维尔
ffmpeg - 如何使用 ffmpeg -vcodec copy 重新导出损坏的 AVI 中的关键帧
我发现一些损坏的 AVI 文件,当我尝试播放它们时,VLC 抱怨索引损坏。我可以直接播放而无需滚动时间线或等待...等待...建立索引(但未保存)并正常播放。其他一些玩家可以毫无怨言地玩它们,而另一些则拒绝玩。
我可以在VirtualDub中无缝解决这个问题,方法是在 Open with “re-derive keyframe flags”中打开带有 “extended options” 的 .avi,然后保存一个带有直接流复制视频和音频的新 .AVI 文件。生成的文件可以完美播放。
我也可以用ffmpeg解决问题,但并非没有问题。
重要:只有流副本和相同的容器是有意义的。
生成的文件在 VLC 中播放没有任何抱怨或下一个问题,但在许多其他播放器中,当在时间轴上跳转时,视频会在跳转目的地立即失真,并保持严重失真,直到流中的下一个 I 帧。使用 VirtualDub 处理时,所有这些都不会发生。
ffmpeg 更快,但最重要的是它是可编写脚本的,并且可以使许多文件自动化。使用 VirtualDub,必须手动处理每个文件并等待很长时间,以便打开的进程首先重新导出关键帧标志。不介意 ffmpeg 速度是否因为它可以提供的自动化而丢失。
到目前为止,我只在这里找到了一个非常古老的未答复邮件列表帖子
如果没有上述问题,ffmpeg 可以修复此类文件吗?如果是,如何?
谢谢你。