编辑/解码的AVI文件使用系统安装专用的编解码器(Editing/Decoding AVI file

2019-09-17 04:41发布

我一直在寻找这几天了,但似乎没有相当回答或为我工作,所以请原谅我,如果我要问,似乎已在别处回答愚蠢的问题或一个。

我必须使用GMP4视频编解码器,目前安装在我的电脑上,所以我可以播放的文件在Windows Media Player例如编码的AVI文件。 我想要做的就是打开/解码进行编辑的文件,以便能够缝合两个视频文件一起。 我不要求它是在相同的格式输出,而只有打开进行编辑,得到帧,然后我可以输出更标准的格式。

我得到的问题是,有这种格式创建任何DirectShow过滤器,因此它不会打开使用,对我(没有工作要深入,但所有的样品无法加载视频文件)。 FFMPEG试图读取该文件,指出标头不正确,但它会尝试反正读它,然后死,说明我需要的GMP4编解码器。 正如我已经先前所说,我已经安装了特定的编解码器,但FFmpeg中似乎并没有注意到或访问它。

这有什么,让我使用系统安装的编解码器进行解码的视频帧? 我觉得奇怪,我说,Windows Media Player可以做一些事情,但我不能编程重复。 我不是局限于C ++或C#,虽然C#肯定是首选语言。

感谢所有,亚历克斯

Answer 1:

我花了一整天同样的问题。 解决办法是安装AviSynth的,然后你可以用FFMPEG对他们来说,该系统有一个VFW编解码器的任何AVI文件加载。 不是传递的ffmpeg你的AVI输入文件,创建一个.avs文件包含AviSource一行(“你-AVI文件名”)和通过的ffmpeg的.avs文件名。

假设你想你的input.avi转换成一个专有的视频编解码器为H263格式(假设你的input.avi已经支持H263帧大小):

echo AviSource("input.avi") > input.avs
ffmpeg -i inputs.avs -vcodec h263 output.avi


Answer 2:

努诺有一个伟大的答案,但要避免命令行转换,你可以使用AForge.Net C#库访问AFW编解码器,编解码器FFmpeg中甚至DSHOW编解码器(CCTV一些做的DVR编码在DSHOW)。

还有一种方式来打开Windows Media Player从它的交流#对象和抓帧。 给我发电子邮件,如果你想了解更多信息 - 这听起来就像我们在类似的项目。



文章来源: Editing/Decoding AVI files using system-installed proprietary codecs