我正在尝试拆分,转换和合并音频。我使用了writingMinds FFmpeg Android版。但是长时间播放音频会花费很多时间。
为了加快速度,我尝试在具有8个核心的手机上使用“ thread -4”命令,但并没有提高性能。
因此,我随后将音频分为4个部分(以使用4个线程),然后在单独的线程中调用FFmpeg.execute()进行多线程处理。但是FFmpeg库按顺序处理文件。 ffmpeg是否可以在4个线程中并行处理这4个部分?如果可以,怎么办?
更新
参见alex cohn's answer。
在这种情况下,也是由于FFmpegExecuteAsyncTask的调用方法,因为Asynctask类的execute方法仅允许在现代API中一次运行一个实例。
一种解决方法是使用此检查。
fruits = ["banana", "apple","mango"]
答案 0 :(得分:2)
你是对的。该Java包装器确保对ffmpeg的所有调用都是顺序的。如果删除此工具并自己加载二进制文件,则可以并行运行多个ffmpeg进程。请注意,它们不是线程,而是成熟的进程,因此执行此操作的成本可能比您预期的高。