Delphi下使用ffmpeg的解决方案

ffmpeg基本上已经成为多媒体文件解码、编码、转码等任务的标准平台,这个开源的多媒体解决方案在无论是windows还是Linux平台上甚至是各种移动平台上(包括现在如日中天的iOS和android)的应用都非常广泛。支持跨平台、编解码效率很高、使用方便并且开源免费,使得目前能看到的所有多媒体播放器中都包含有ffmpeg的影子。
ffmpeg主要使用C/C++语言来实现,在VC等C语言的框架下调用非常方便,但在Delphi等non-C环境下的使用就需要再做一下处理。目前在Delphi平台上来使用ffmpeg的方案主要包含以下几种:
1.FFVCL
国人自己使用ffmpeg开发的delphi控件。官方网站上提供了测试版安装包和完备的测试DEMO,目前的最新版已经可以支持到Delphi XE。由于是控件形式,使用上当然是比较简单,功能上也很强大,基本上ffmpeg能提供的功能它都有了,但封装成控件以后使用起来当然就不像直接调用动态链接库函数那么灵活和高效了,正式版是收费的(按理说几千块甚至就可以拿到源码了,真的不算贵)。如果不是很在乎那几千块钱,并且对性能要求不是很极致的话可以尝试使用一下这个方案,在这里帮作者推广一下,毕竟这个控件算是国内比较优秀的delphi控件了。
官方网站:http://www.ccavc.com/。
2.FFDec
一个老外基于ffmpeg提取出来解码功能并进行简单封装的动态链接库和header,使用起来很方便简单。但是功能相对单一,只有解码功能。开源免费,比较适合只是使用ffmpeg中解码功能的用户。
官方网站:http://sourceforge.net/projects/ffdec/
3.Delphi+ffmpeg
使用windows平台上其他C编译器编译出来的ffmpeg动态链接库,加上用Delphi改写的header,这应该是最干净和最彻底的ffmpeg使用方式,但是工作量很大,而且用户一定要对ffmepg本身比较熟悉,否则改写header一定是个非常痛苦的事情。网上有一个外国的程序员改写好的delphi headers和使用demo的下载,本人测试了一下,跟在VC下使用ffmpeg基本上没有区别。只是已经很久没有更新了,如果要使用最新版的ffmpeg就得自己去另外编译和修改了。
网站:http://www.iversenit.dk/dev/ffmpeg-headers/

总结一下:
如果需要方便快捷的调用ffmpeg的功能,又不愿意去对ffmpeg做很深入的了解,建议使用FFCVL;
如果只是需要使用到ffmpeg中的多媒体解码功能,建议使用FFDec;
如果需要自己在Delphi中把握ffmpeg的方方面面,而且本身对ffmpeg比较熟悉,可以使用Delphi+ffmpeg的方式。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享