Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我应该使用FFMPEG库还是CLI_Java_Spring Boot_Ffmpeg - Fatal编程技术网

Java 我应该使用FFMPEG库还是CLI

Java 我应该使用FFMPEG库还是CLI,java,spring-boot,ffmpeg,Java,Spring Boot,Ffmpeg,就性能而言,使用FFMPEG库(如)还是FFMPEG命令行界面更好?我最初的想法是:这是一个“固执己见”的问题,因此离题了。但是,我认为这有一个明确的技术答案 基本上,您希望以编程方式使用FFMPEG从Java应用程序中解决一些问题。因此,答案非常直截了当:当您希望以编程方式处理问题时,请使用该接口,该接口用于编程用途 意思是:与使用“原始”系统命令调用手动调用客户机相比,您肯定更喜欢API 原因: 库/API为您提供了编译时安全性。您有类型的方法调用,等等 气候。。。仅允许您“手动”拉起一根

就性能而言,使用FFMPEG库(如)还是FFMPEG命令行界面更好?

我最初的想法是:这是一个“固执己见”的问题,因此离题了。但是,我认为这有一个明确的技术答案

基本上,您希望以编程方式使用FFMPEG从Java应用程序中解决一些问题。因此,答案非常直截了当:当您希望以编程方式处理问题时,请使用该接口,该接口用于编程用途

意思是:与使用“原始”系统命令调用手动调用客户机相比,您肯定更喜欢API

原因:

  • 库/API为您提供了编译时安全性。您有类型的方法调用,等等
  • 气候。。。仅允许您“手动”拉起一根线,并触发该线。如果有效:很好,但如果不行。。。只有在运行时才能发现
除此之外:如果您正在谈论一个“严肃”的项目,那么您的代码迟早会想要做不同的事情。然后上面的点就是“多个”。您知道动态构建该字符串,而不是准备一个命令行字符串


长话短说:对于一个简单的问题,CLI可能是一个很好的解决方案。但是,那么:为什么要用java来包装它呢?那么,您也可以编写一个小shell或python脚本,作为对所需调用的小包装

我担心的另一个问题是Java包装器迟早会过时。例如,Xuggler是一个很好的库,但现在被弃用了。“很难决定一种包装纸可以长期使用。”劳伦:我同意。但请注意:最后,问题是:您是真的使用第三方API,还是创建自己的API。因为这是使用CLI的最终结果,但是在java代码中“构建”该CLIvideos@Lauren那么我宁愿写一个python脚本;-)另一个考虑可能涉及许可。ffmpeg命令是GPL,只要您这样使用它,您的解决方案可能是封闭源代码的。ffmpeg库是LGPL,这意味着您必须非常小心地链接到它们,否则将面临后果。反之亦然。LGPL允许与封闭源代码组件链接。GPL没有。在任何情况下,ffmpeg CLI可以是LGPL或GPL,也可以是非免费的。