我正在使用BravoBit dependency来执行Android中的ffmpeg命令。下面是依赖项
implementation 'nl.bravobit:android-ffmpeg:1.1.5'执行ffmpeg命令需要一个String[]命令。但我无法理解如何以数组格式传递复杂的命令。每当我试图执行命令时,我都会得到无效的参数错误。下面是我试图使用的命令之一。
String[] cmd = new String[]{"-i", uri,
"-i",overlayUri , "-filter_complex","[0:v]setpts=PTS-STARTPTS", "scale=1920x1080[top]","[1:v]loop=-1:size=750","setpts=N/FRAME_RATE/TB","scale=1920x1080","format=yuva420p", "colorchannelmixer=aa=0.5[bottom]"
, "[top][bottom]overlay=shortest=1, format=yuv420p", outputPath};这里,uri、overlayUri是输入和覆盖文件路径,outputPath是输出文件的路径。
我所犯的错误
NULL @ 0xf6d44e00无法为'1:vloop=-1:size=750‘1:size=750:size=750找到合适的输出格式
发布于 2018-11-16 09:35:21
经过大量的命中和尝试的方法,我得到了以下格式的工作。
String[] cmd4 = new String[]{"-i", uri,"-f" ,"lavfi",
"-i","movie="+overlayUri+":loop=200,setpts=N/FRAME_RATE/TB","-filter_complex","[1:v][0:v]scale2ref[ua][b];[ua]setsar=1,format=yuva444p,colorchannelmixer=aa=0.5[u];[b][u]overlay", outputPath};我使用上述命令的目的是在另一个视频上覆盖一个视频,并将覆盖视频循环到输入视频的长度。我在这里理解的是,以-开头的任何内容都是一个子命令,应该是命令数组中的索引。
https://stackoverflow.com/questions/51888832
复制相似问题