Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/209.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
针对android的预编译FFmpeg与使用android NDK构建FFmpeg_Android_Performance_Ffmpeg_Android Ndk_Android Ffmpeg - Fatal编程技术网

针对android的预编译FFmpeg与使用android NDK构建FFmpeg

针对android的预编译FFmpeg与使用android NDK构建FFmpeg,android,performance,ffmpeg,android-ndk,android-ffmpeg,Android,Performance,Ffmpeg,Android Ndk,Android Ffmpeg,我正在构建一个android应用程序,它可以进行一些视频处理 我目前正在使用来自的预编译FFmpeg。另一个选项是下载FFmpeg源代码,并使用Android NDK进行编译。我考虑选项2的原因是为了提高性能。我的问题是 上述两种选择之间有区别吗 如果是,有什么区别。它是提高性能还是结果完全相同,还是有其他的优点或缺点 当他们声明预编译FFmpeg时,是否意味着它是使用Android NDK为特定架构编译的 请让我知道 提前谢谢你 ffmpeg可以使用非常不同的选项构建。某些组件可能被禁用,这可

我正在构建一个android应用程序,它可以进行一些视频处理

我目前正在使用来自的预编译FFmpeg。另一个选项是下载FFmpeg源代码,并使用Android NDK进行编译。我考虑选项2的原因是为了提高性能。我的问题是

上述两种选择之间有区别吗

如果是,有什么区别。它是提高性能还是结果完全相同,还是有其他的优点或缺点

当他们声明预编译FFmpeg时,是否意味着它是使用Android NDK为特定架构编译的

请让我知道


提前谢谢你

ffmpeg可以使用非常不同的选项构建。某些组件可能被禁用,这可能会显著减小二进制文件的大小。中的预构建二进制文件包括GPL组件,例如x264编码器。这意味着在应用程序中使用它可能会遇到法律问题,除非它是开源的。请注意,我不是一个爱唠叨的人,所以请毫不犹豫地咨询专业人士

另一个在使用预编译二进制文件时有疑问的问题是,这是一个单片二进制。如果您需要ffmpeg的某些特定功能,它可能会基于ffmpeg库libavcodec、libavformat等构建一个自定义库。如果您使用ffmpeg转换长视频文件,此优势可以忽略不计,但如果您必须处理许多小数据块,则开销可能会很大。您也可以找到针对Android的预构建库。

性能上可能会有很大差异 主要问题是链接到的二进制文件在x264配置中使用了-disable asm。当在ffmpeg中通过libx264编码时,此选项禁用特定于平台的程序集优化,并导致H.264编码速度显著降低。我不确定二进制提供程序为什么使用此选项

使用ffmpeg时,请参考控制台输出。如果显示[libx264]正在使用cpu功能:无!那么,您的编码速度就不是最佳的,而且会非常慢。作为参考,Android用户通常应该看到NEON ARMv7或类似的东西,而不是没有


避免此错误配置的二进制文件。正确地自己编译它将使您能够利用ASM优化,从而加快编码速度。

除非您实际上正在对构建过程进行某些操作,例如编译器切换或更改源代码。。那么它会是一样的吗?仅仅因为您自己编译它并不能提高性能。还是你想问别的问题?谢谢!想知道它是否会提高性能,同时,建议在生产级应用程序中使用预编译版本还是使用自己的编译版本?会出什么问题吗?re:performant ffmpeg/android。。。您可能想熟悉stagefright库中的硬件集成。如果某些东西没有改变,ffmpeg在mobileThank上的速度会很慢。相信您,我会熟悉stagefright的。谢谢!1.使用较少组件的建筑是否会提高执行速度,例如在视频上叠加图像过滤器?2您是指Android中为视频处理而预建的库吗?如果是的话,你能推荐一些吗?经验法则是:如果你能在Linux命令行上顺利地执行任务,你就可以在Android上使用单片二进制。如果您的任务涉及复杂的脚本编写,或者编写C可执行文件,那么在Android上,您还应该使用库,避免产生单独的过程。您需要什么样的视频处理?OpenCV?在视频上放置图像过滤器谢谢您的回复!是的,表演很慢。我将尝试自己编译并测试它。你知道有其他二进制文件没有在我可以使用的x264配置中使用-disable asm吗?@AppDeveloper我不知道有任何适用于Android用户的。