gpt4 book ai didi

java - FFmpeg - 过滤器覆盖有一个未连接的输出

转载 作者:行者123 更新时间:2023-12-04 23:19:18 26 4
gpt4 key购买 nike

我正在使用库 implementation 'com.arthenica:mobile-ffmpeg-full-gpl:4.4.LTS' .
我需要将 3 个视频放在一起,添加 3 张图片和音乐。我正在生成以下代码:

-y -i /storage/emulated/0/Movies/video_20211111_141930.mp4 -i /storage/emulated/0/Movies/video_20211111_141946.mp4 -i /storage/emulated/0/Movies/video_20211111_141958.mp4 -i /storage/emulated/0/Pictures/Maramax/IMAGETEXT.png -i /storage/emulated/0/Pictures/Maramax/IMAGESTICKER.png -i /storage/emulated/0/Pictures/Maramax/logo.png -filter_complex [0:v:0][1:v:0][2:v:0]concat=n=3:v=1[merg0];[3]scale=1280:720[i0];[merg0][i0] overlay=0:0[merg1];[4]scale=1280:720[i1];[merg1][i1] overlay=0:0[merg2];[5]scale=195:136[i2];[merg2][i2] overlay=766:30[merg3] -c copy -threads 4 -vcodec libx264 -c:a aac -preset ultrafast -shortest -crf 20 -vsync 2 /storage/emulated/0/Pictures/Maramax/finalVideo0.8238299708746938.mp4
我将它作为一个 cmd 命令数组(我也用一行尝试过)传递给 FFmpeg.executeAsync:
Config.enableLogCallback(new LogCallback() {
public void apply(LogMessage message) {
Log.e(Config.TAG, message.getText());
}
});
FFmpeg.executeAsync(cmd, new ExecuteBinaryResponse(this.delegate, filepath));
我得到这个结果:
E/mobile-ffmpeg: Filter overlay has an unconnected output
未收集视频。如果我删除 -filter_complex 及其参数,问题就会消失,即此命令中的某处存在错误。尝试将 -filter_complex 的值包含在单引号和双引号中,会引发错误。在覆盖之前删除空间也没有帮助。在 Android 10 及更低版本上,一切正常。此错误发生在 Android 11 上。
这个库已经过时了,建议去 https://github.com/tanersener/ffmpeg-kit ,但是如果你能解决这个库的问题,过渡是不可取的,因为 ffmpeg-kit 也有很多问题。

最佳答案

问题: ffmpeg 不知道你要使用 [merg3]作为您的输出视频。
这就是为什么[merg3]是一个未连接的输出。它不用于任何事情。
解决方案:选择输出焊盘[merg3]map选项。
此外,您还可以使用 map从第一个输入中选择音频的选项:...;[merg2][i2] overlay=766:30[merg3] -map "[merg3]" -map 0:a -c copy ...

关于java - FFmpeg - 过滤器覆盖有一个未连接的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69943740/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com