问题标签 [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.

0 投票
2 回答
788 浏览

delphi - 获取 AVI 文件持续时间时出错

我在 WinAPI 上使用 JEDI 包装器中的 VFW 单元。

我正在编写的代码旨在搜索用户驱动器并检测warez。我们进行 MP3、WMA 和一些图形文件搜索。现在我们要检测非法电影。我想打开 AVI 文件,从中读取一些详细信息并关闭它。我有以下代码:

有两个问题:

  1. lLenMinutes 等于 98,而电影大约是两个小时。dwRate 是 100 万,dwScale 是 40k,所以 FPS 是完美的 25。MSDN:“单位由 dwRate 和 dwScale 定义”。
  2. 代码在 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 回答了这个问题。

0 投票
1 回答
1965 浏览

delphi - 获取 AVI 文件持续时间

我在 WinAPI 上使用 JEDI 包装器中的 VFW 单元。

我正在编写的代码旨在搜索用户驱动器并检测warez(注意:确定某些文件是否合法超出了此问题的范围)。我们进行 MP3、WMA 和一些图形文件搜索。现在我们要检测非法电影。我想打开 AVI 文件,从中读取一些详细信息并关闭它。我有以下代码:

所以 lLenMinutes 等于 98,而电影的长度约为 121 分钟。这是一个巨大的差异。我究竟做错了什么?dwRate 是 100 万,dwScale 是 40k,所以 FPS 是完美的 25。dwLength 是 147k MSDN 说:“单位由 dwRate 和 dwScale 定义”。

注意:这是这个问题的后续,但是由于崩溃问题已经解决,我关闭了另一个问题并将改进的内容移到这里。

0 投票
2 回答
2003 浏览

c# - 如何分割 AVI 文件

我正在尝试将大型 AVI 2.0(OpenDML 格式)文件拆分为较小的部分(在我的情况下小于 1GB),以便能够使用 VFW(avifil32.dll)打开这些部分。

实现这种拆分的最佳方法是什么(最好在 C# 中)?

一种选择是逐帧复制它。我在网上找到了一些例子,它们也是如此。但其中大多数使用 VFW,通常无法读取 2GB 以上的文件和 1GB 以上的 AVI 2.0 文件,因为最大 RIFF 部分大小为 1GB。

我需要 DirectShow 而不是 VFW。我很确定如果我尝试手动复制帧,我也会弄乱音频同步。

我正在寻找类似于 VirtualDub 对“直接流复制”所做的事情,它不会影响当前的压缩,只是拆分文件并创建正确的 AVI 索引。

0 投票
4 回答
27059 浏览

.net - 从一系列图像创建视频流 (AVI)

有一个 IP 网络摄像头,我前段时间编写了一个 .NET 类。它基本上是一个 Timer 实现,每五秒从相机 ping 一个快照 CGI 脚本。相机本身非常简陋。它没有任何类型的 API 可供我使用,我唯一能以编程方式(远程)执行的操作就是调用此脚本。该脚本返回 640x480 JPEG 图像。简单的。

现在我需要做的是花几天时间处理这些图像,并从中创建一个“延时”AVI 视频流,最终将嵌入到网页中。如何使用 VB.NET 做到这一点?

0 投票
1 回答
304 浏览

windows - 将 BMP 转换为 avi

我想将位图中带有视频帧的文件夹转换为 avi 或 mpeg 文件。我已经有一个 VBScript,它对这些文件做了很多事情,所以集成一个功能来从我的脚本中自动转换这些文件夹会很巧妙。我只能找到看起来相当低级的解决方案,不幸的是我对视频文件格式知之甚少。在不重新发明轮子的情况下实现这一目标的最简单方法是什么?我的问题是似乎有太多的信息,我不知道从哪里开始。

0 投票
1 回答
284 浏览

python - python中的BMP2avi

我正在寻找一个 python 代码,它采用一系列 BMP 文件并将它们合并到 Avi 文件中(并从用户那里获取每秒的参数帧)

有人知道从哪里开始吗?

爱丽儿

0 投票
3 回答
1307 浏览

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 脚本,所以它可能不是很好)

0 投票
2 回答
3107 浏览

java - Java:从帧制作动画/视频

你好!对于一个研究项目(在 Java 中),我必须找到某种方法将图形动画保存为某种文件格式。现在我已经让程序正常绘制每一帧。问题是,由于没有学习整个 GIF 或 AVI 文件格式,我不知道如何以编程方式将帧组合成某种动画或视频文件。文件格式并不重要——输入或输出。我只需要一些方法将框架放在一起并保存!

现在我想最简单的格式是动画 GIF 或 AVI。不过,再一次,只要它有效,它真的无关紧要。

非常感谢!

0 投票
2 回答
1336 浏览

c# - 如何在 C# 中将 AVI 转换为 3gp?

是否可以在 C# 中将 AVI 文件转换为 3gp?如果是这样,我该怎么做?任何想法将不胜感激,在此先感谢。

0 投票
2 回答
6478 浏览

indexing - 在关键帧上分割视频 (avi/h264)

你好。

我有一个很大的视频文件。ffmpegtcprobe其他工具说,它是 AVI 容器中的 h264 流。

现在我想从视频中剪下小块。

  1. 问题:视频接缝的索引损坏/损坏。我通过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) 中描述的那样更正索引,但这并没有修复我的视频 - 这意味着我测试过的大多数工具都无法在视频文件中搜索。

  2. 问题:我通过以下命令剪切了部分视频: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. 现在的问题是,有些视频一开始就损坏了。我认为这是因为事实上,我不一定在关键帧处剪切。

问题:

  1. 修复 avi“内联”索引的最佳方法是什么,以便每个工具都可以再次按预期工作?

  2. 如何在关键帧处拆分?有没有一个mencoder选项呢?

  3. 关键帧是否有频率出现?如何找出这个频率?(所以通过一些数学计算应该可以计算下一个关键帧并在那里剪切)

  4. 有没有其他完全不同的方式来分割这部电影?手工做是没有选择的,我必须切出 1000 多个块......

非常感谢!