我正在使用 ffmpeg 解码文件并在 Android 设备上播放它。我有这个工作,现在想同时解码两个流。我已经阅读了一些关于需要使用 ffmpeg 调用 av_lockmgr_register() 的评论,不幸的是我不确定如何使用这些以及使用这些锁时流程将如何工作。
目前,我在 Java 端有单独的线程通过 JNI 向与 ffmpeg 通信的 native 代码发出请求。
线程是否需要在 native (NDK) 端,或者我可以在 java 端管理它们?我是否需要进行任何锁定,如果需要,那如何与 ffmpeg 一起使用?
***更新 我现在有这个工作,似乎在 java sdk 级别设置线程转移到 native 级别的单独线程。这样我就可以用我的变量创建一个结构,然后将一个变量传递给 native 层以指定每个视频使用的结构。所以因为我需要在 native 级别使用任何互斥锁或锁,并且没有任何问题。
有谁知道如果我不使用 ffmpeg 这样做可能会遇到的潜在陷阱?
最佳答案
我会回答这个问题,我最新的更新方法似乎有效。通过从 Java 层控制线程并在单独的线程上进行 native 调用,一切正常,我没有遇到任何问题。
关于android - ffmpeg 同时解码多个流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8966706/