ffmpeg statis vs dev技术选型?

ffmpeg 官方提供了三个版本,static,shared和dev,static和shared可以在命令行中直接调用,他们的区别在于:

引用文章中的描述

  1. Static里面只有3个应用程序:ffmpeg.exe,ffplay.exe,ffprobe.exe,每个exe的体积都很大,相关的Dll已经被编译到exe里面去了。
  2. Shared里面除了3个应用程序:ffmpeg.exe,ffplay.exe,ffprobe.exe之外,还有一些Dll,比如说avcodec-54.dll之类的。Shared里面的exe体积很小,他们在运行的时候,到相应的Dll中调用功能。
  3. Dev版本是用于开发的,里面包含了库文件xxx.lib以及头文件xxx.h,这个版本不包含exe文件。

那么在实际开发时,我们是选择static版本还是dev版本呢,由于shared也是调用命令行,在这里把它和static相同看待,相信其他初学者会和有同样的想法,以下是个人的选型分析:

  1. 调用命令行会提高开发效率
  2. 调用命令行一旦发现有bug,修改源码bug后,重新编译即可
  3. 源码开发会引入更多的bug
  4. 源码开发能监控转码的细节(分析效率或debug时有用)
  5. 源码开发对编码对平要求高,还要了解ffmpeg的细节

有一个共性问题,多任务并发进行时,调用命令行是开启一个进程,源码开发时也会fork一个进程,但其具体的效率暂无测试。

综上,所以我选择调用命令行。

发布了21 篇原创文章 · 获赞 15 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/Tangs_/article/details/78293616