问题标签 [avi]
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.
delphi - 获取 AVI 文件持续时间时出错
我在 WinAPI 上使用 JEDI 包装器中的 VFW 单元。
我正在编写的代码旨在搜索用户驱动器并检测warez。我们进行 MP3、WMA 和一些图形文件搜索。现在我们要检测非法电影。我想打开 AVI 文件,从中读取一些详细信息并关闭它。我有以下代码:
有两个问题:
- lLenMinutes 等于 98,而电影大约是两个小时。dwRate 是 100 万,dwScale 是 40k,所以 FPS 是完美的 25。MSDN说:“单位由 dwRate 和 dwScale 定义”。
- 代码在 FreeAndNil 行崩溃。为什么?我假设我负责释放 lFile(至少我觉得应该释放文件)。如果不符合 FreeAndNil,我在退出程序时会出现访问违规。
那么,您知道如何从 AVI 文件中正确获取电影时长吗?为什么会崩溃?
编辑
电影是 2 小时一分钟,所以结果应该非常接近 120。lFile 在 Jedi 中声明为:
AVIFileOpen 在 JEDI 中声明为:
函数 AVIFileOpen(var ppfile: IAVIFILE; szFile: LPCWSTR; uMode: UINT; lpHandler: PCLSID): HResult; 标准调用;外部 AVIFILDLL 名称 'AVIFileOpenW';
在 MSDN 中:
STDAPI AVIFileOpen( PAVIFILE *ppfile, LPCTSTR szFile, UINT 模式, CLSID pclsidHandler );
MSDN 说:
“AVIFileOpen 函数打开一个 AVI 文件并返回用于访问它的文件接口的地址。”
所以我假设对象是由这个函数创建的。
编辑 2
avi 文件长度已移至新问题,因为 mghie 回答了这个问题。
delphi - 获取 AVI 文件持续时间
我在 WinAPI 上使用 JEDI 包装器中的 VFW 单元。
我正在编写的代码旨在搜索用户驱动器并检测warez(注意:确定某些文件是否合法超出了此问题的范围)。我们进行 MP3、WMA 和一些图形文件搜索。现在我们要检测非法电影。我想打开 AVI 文件,从中读取一些详细信息并关闭它。我有以下代码:
所以 lLenMinutes 等于 98,而电影的长度约为 121 分钟。这是一个巨大的差异。我究竟做错了什么?dwRate 是 100 万,dwScale 是 40k,所以 FPS 是完美的 25。dwLength 是 147k MSDN 说:“单位由 dwRate 和 dwScale 定义”。
注意:这是这个问题的后续,但是由于崩溃问题已经解决,我关闭了另一个问题并将改进的内容移到这里。
c# - 如何分割 AVI 文件
我正在尝试将大型 AVI 2.0(OpenDML 格式)文件拆分为较小的部分(在我的情况下小于 1GB),以便能够使用 VFW(avifil32.dll)打开这些部分。
实现这种拆分的最佳方法是什么(最好在 C# 中)?
一种选择是逐帧复制它。我在网上找到了一些例子,它们也是如此。但其中大多数使用 VFW,通常无法读取 2GB 以上的文件和 1GB 以上的 AVI 2.0 文件,因为最大 RIFF 部分大小为 1GB。
我需要 DirectShow 而不是 VFW。我很确定如果我尝试手动复制帧,我也会弄乱音频同步。
我正在寻找类似于 VirtualDub 对“直接流复制”所做的事情,它不会影响当前的压缩,只是拆分文件并创建正确的 AVI 索引。
.net - 从一系列图像创建视频流 (AVI)
有一个 IP 网络摄像头,我前段时间编写了一个 .NET 类。它基本上是一个 Timer 实现,每五秒从相机 ping 一个快照 CGI 脚本。相机本身非常简陋。它没有任何类型的 API 可供我使用,我唯一能以编程方式(远程)执行的操作就是调用此脚本。该脚本返回 640x480 JPEG 图像。简单的。
现在我需要做的是花几天时间处理这些图像,并从中创建一个“延时”AVI 视频流,最终将嵌入到网页中。如何使用 VB.NET 做到这一点?
windows - 将 BMP 转换为 avi
我想将位图中带有视频帧的文件夹转换为 avi 或 mpeg 文件。我已经有一个 VBScript,它对这些文件做了很多事情,所以集成一个功能来从我的脚本中自动转换这些文件夹会很巧妙。我只能找到看起来相当低级的解决方案,不幸的是我对视频文件格式知之甚少。在不重新发明轮子的情况下实现这一目标的最简单方法是什么?我的问题是似乎有太多的信息,我不知道从哪里开始。
python - python中的BMP2avi
我正在寻找一个 python 代码,它采用一系列 BMP 文件并将它们合并到 Avi 文件中(并从用户那里获取每秒的参数帧)
有人知道从哪里开始吗?
爱丽儿
c++ - C++ - 我需要哪些库或命令行程序来创建一个将 AVI 文件刻录到 DVD 的程序?
我的目标是创建一个将 AVI 文件作为输入的程序,然后执行任何必要的操作将其刻录到 DVD。
目前,我使用三个独立的程序来完成此任务。第一个工具需要我将它从 AVI 文件转换为 MPEG。第二个工具采用 MPEG 并创建 DVD 文件(一个 VIDEO_TS 文件夹,其中包含一些文件)。第三个工具将文件夹刻录到 DVD。我想将这三个工具合二为一,如果可能的话,跳过 AVI 到 MPEG 的转换,只创建 DVD 文件并刻录它们。
目标平台是 Windows 7,我要使用的语言是 C++。
哪些库或命令行程序将帮助我追求荣耀?
编辑:澄清一下,我想创建一个视频 DVD 来在 DVD 播放器上播放电影。(谢谢杰瑞)
编辑 2:我最终在 Linux 上使用 Python 来自动化一切。这是脚本以防万一有人需要它。(注意:这是我的第一个 python 脚本,所以它可能不是很好)
java - Java:从帧制作动画/视频
你好!对于一个研究项目(在 Java 中),我必须找到某种方法将图形动画保存为某种文件格式。现在我已经让程序正常绘制每一帧。问题是,由于没有学习整个 GIF 或 AVI 文件格式,我不知道如何以编程方式将帧组合成某种动画或视频文件。文件格式并不重要——输入或输出。我只需要一些方法将框架放在一起并保存!
现在我想最简单的格式是动画 GIF 或 AVI。不过,再一次,只要它有效,它真的无关紧要。
非常感谢!
c# - 如何在 C# 中将 AVI 转换为 3gp?
是否可以在 C# 中将 AVI 文件转换为 3gp?如果是这样,我该怎么做?任何想法将不胜感激,在此先感谢。
indexing - 在关键帧上分割视频 (avi/h264)
你好。
我有一个很大的视频文件。ffmpeg
和tcprobe
其他工具说,它是 AVI 容器中的 h264 流。
现在我想从视频中剪下小块。
问题:视频接缝的索引损坏/损坏。我通过
mplayer -forceidx -saveidx <IndexFile> <BigVideoFile>
. 这里的问题是,我现在被 mplayer/mencoder 困住了,它可以通过-loadidx <IndexFile>
. 我已经尝试像man aviindex
(mplayer -frames 0 -saveidx mpidx broken.avi ; aviindex -i mpidx -o tcindex ; avimerge -x tcindex -i broken.avi -o fixed.avi
) 中描述的那样更正索引,但这并没有修复我的视频 - 这意味着我测试过的大多数工具都无法在视频文件中搜索。问题:我通过以下命令剪切了部分视频:
mencoder -loadidx in.idx -ss 8578 -endpos 20 -oac faac -ovc x264 -sws 9 -lavfopts format=mp4 -x264encopts <LotsOfOpts> -of lavf -vf scale=800:-10,harddup in.avi -o out.mp4
. 现在的问题是,有些视频一开始就损坏了。我认为这是因为事实上,我不一定在关键帧处剪切。
问题:
修复 avi“内联”索引的最佳方法是什么,以便每个工具都可以再次按预期工作?
如何在关键帧处拆分?有没有一个mencoder选项呢?
关键帧是否有频率出现?如何找出这个频率?(所以通过一些数学计算应该可以计算下一个关键帧并在那里剪切)
有没有其他完全不同的方式来分割这部电影?手工做是没有选择的,我必须切出 1000 多个块......
非常感谢!