请解决implementation 'com.github.AnJoiner:FFmpegCommand:1.2.2-lite' fun getFFmpegCmd(inputFilePath: String, outputFilePath: String, watermarkFilePath: String): Array<String?>{ var height = videoHeight - DisplayHelper.dip2px(this, 50f) var width = videoWidth - DisplayHelper.dip2px(this, 100f) var strCommand = "ffmpeg -y -i ${inputFilePath} -i ${watermarkFilePath} -filter_complex [0:v]scale=iw:ih[outv0];[1:0]scale=0.0:0.0[outv1];[outv0][outv1]overlay=${width}:${height} -preset superfast ${outputFilePath}" val commands: Array<String?> = strCommand.split(" ".toRegex()).toTypedArray() return commands } fun addBitmapToVideo(inputFilePath: String, outputFilePath: String, watermarkFilePath: String) { LogUtil.d("inputFilePath=${inputFilePath},\noutputFilePath=${outputFilePath}") val addWaterMark = getFFmpegCmd(inputFilePath, watermarkFilePath, outputFilePath) try { CoroutineScope(Dispatchers.IO).launch { FFmpegCommand.runCmd(addWaterMark, object : IFFmpegCallBack { override fun onCancel() { } override fun onComplete() { finishVideo(VIDEO_COMPLETE) } override fun onError(errorCode: Int, errorMsg: String?) { LogUtil.w("水印视频错误_onError=${errorCode},${errorMsg}") finishVideo(VIDEO_ERROR) } override fun onProgress(progress: Int, pts: Long) { finishVideo(VIDEO_PROGRESS, progress) } override fun onStart() { } }) } } catch (e: Throwable) { // FFmpeg 不支持当前设备 LogUtil.w("Exception-e=${e.message}") } } backtrace: #00 pc 0x00000000000dba18 /apex/com.android.runtime/lib64/bionic/libc.so (strspn+12) #01 pc 0x0000000000339dec /data/app/~~EKJofAZ4BmKzTXggwqbGhw==/com.zsyj.facefancy-LE00NsHFRSow2FsnifHViQ==/lib/arm64/libffmpeg-org.so (avfilter_graph_parse2+80)
时间: 2024-02-14 19:28:44 浏览: 304
com.serenegiant:common:1.5.20
根据您提供的信息,问题似乎与使用的 FFmpeg 版本或库有关。在您的代码中,您使用了名为 "com.github.AnJoiner:FFmpegCommand:1.2.2-lite" 的库。然而,根据您提供的错误信息,在调用 "avfilter_graph_parse2" 函数时发生了问题。
解决这个问题的步骤如下:
1. 确保您使用的 FFmpeg 版本与您的库版本兼容。尝试升级 FFmpeg 版本或检查库的兼容性列表。
2. 确保您正确地配置了 FFmpeg 库和相关依赖项。请按照库的文档或指南进行正确的配置和集成。
3. 如果您的代码在其他设备或环境中正常工作,但在特定设备上出现问题,请确认该设备是否支持所需的 FFmpeg 功能和库。
4. 检查您的代码是否存在其他问题,例如无效的参数传递、资源释放问题或未处理的异常。
如果问题仍然存在,请提供更多详细信息,例如完整的堆栈跟踪和其他相关代码,以便我能够更好地帮助您解决问题。
阅读全文