所以我知道这是一个相当大的挑战,但我想使用FFmpeg库在c#中编写一个基本的电影播放器/转换器.但是,我需要克服的第一个障碍是将FFmpeg库包装在c#中.我已经下载了ffmpeg但无法在Windows上编译它,所以我为我下载了一个预编译版本.太棒了.然后我开始寻找C#包装器.
我环顾四周,发现了一些包装器,如SharpFFmpeg(http://sourceforge.net/projects/sharpffmpeg/)和ffmpeg-sharp(http://code.google.com/p/ffmpeg-sharp/).首先,我想使用ffmpeg-sharp作为其LGPL而SharpFFmpeg是GPL.但是,它有很多编译错误.事实证明它是为单声道编译器编写的,我尝试用单声道编译它但无法弄清楚如何.然后我开始自己手动修复编译器错误,但遇到了一些可怕的错误,并认为我最好不要单独留下它们.所以我放弃了ffmpeg-sharp.
然后我看着SharpFFmpeg,它看起来像我想要的,所有P/Invoked函数.不过它的GPL?AVCodec.cs和AVFormat.cs文件看起来像avcodec.c和avformat.c的端口,我估计我可以移植自己?然后不必担心许可.
但是我想在开始编码之前做到这一点.我是不是该:
要么
首先要考虑的是我在C++方面并不擅长,因为我很少使用它,但我知道它足以绕过它.我认为#1的原因可能是更好的选择,因为大多数FFmpeg教程都是用C++编写的,而且我对内存管理的控制也比我在c#中做的要多.
你怎么看?您是否也碰巧使用FFmpeg有任何有用的链接(也许是教程)?
好的.其实我主要需要的是mp4格式.但是,如果有可能获得其他类型,那将是不错的.我只需要读取文件的持续时间.我怎么能用C#4.0做到这一点?
所以我需要的是这个视频就像: 13 minutes 12 seconds
我也可以使用3个第三方的前任.就像他们将有关文件的信息保存到文本文件中一样.我可以解析该文本文件.
谢谢.
我一直在谷歌和StackOverflow上搜索好几个小时.在StackOverflow上似乎有很多类似的问题,但它们都是大约3-5岁.
如今使用FFMPEG仍然是从.NET Web应用程序中的视频文件中提取元数据的最佳方式吗?如果是这样,那里最好的C#包装器是什么?
我试过MediaToolkit,MediaFile.dll没有任何运气.我看到ffmpeg-csharpe,但看起来好几年没有被触及过.
我还没有找到关于这个主题的任何现有数据.是否能够从内置于最新版.NET的视频中提取元数据?
我现在基本上都在寻找任何方向.
我应该补充说,无论我使用什么,每小时都可以调用数千次,因此需要高效.