【发布时间】:2017-02-03 22:48:46
【问题描述】:
String[] code = new String[]{"ffmpeg", "-i","D:/ffmpeg/20170201_164127.mp4",
"-i","D:/ffmpeg/cc.png", "-filter_complex",
"[0:v][1:v]overlay=main_w-overlay_w-5:main_h-overlay_h-5",
"drawtext=fontfile=/ffmpeg/Arial.ttf:text='TESTING'fontcolor=white@1.0:fontsize=70:x=10:y=H-th-10:box=1:boxcolor=black@0.5:boxborderw=5:x=10:y=H-th-10",
"[out]","-map", "[out]", "-map", "2:0",
"-acodec","mp3", "D:/ffmpeg/test7.mp4"};
Process processDuration = new ProcessBuilder(code).redirectErrorStream(true).start();
StringBuilder strBuild = new StringBuilder();
try (BufferedReader processOutputReader = new BufferedReader(new InputStreamReader(processDuration.getInputStream(), Charset.defaultCharset()));) {
String line;
while ((line = processOutputReader.readLine()) != null) {
strBuild.append(line + System.lineSeparator());
}
processDuration.waitFor();
}
String outputJson = strBuild.toString().trim();
System.out.println(outputJson);
}
当我只使用图像时,代码是正确的。但是当我使用所有代码时,会发生这种情况:
[NULL @ 00000000006abe60] 找不到合适的输出格式 'drawtext=fontfile=/ffmpeg/Arial.ttf:text='TESTING'fontcolor=white@1.0:fontsize=70:x=10:y=H-th-10:box=1:boxcolor=black@0.5:boxborderw =5:x=10:y=H-th-10' drawtext=fontfile=/ffmpeg/Arial.ttf:text='TESTING'fontcolor=white@1.0:fontsize=70:x=10:y=H-th-10:box=1:boxcolor=black@0.5:boxborderw= 5:x=10:y=H-th-10: 无效参数
【问题讨论】:
-
请添加更多信息:如果您尝试在 CMD 中运行该命令会发生什么?这个消息来自什么(抛出异常、标准输出流、错误流)?
-
您告诉
ffmpegdrawtext 过滤器是输出文件。我不是 Java 用户,但这可能是引用、逗号和/或换行问题。显示代码生成的实际ffmpeg命令将显示问题所在。此外,对于 MP4,使用 aac 而不是 mp3:一些主流、糟糕的播放器无法解码这种组合。 -
当我尝试使用 cmd 代码时,程序可以正常工作。但是当我尝试使用 java 时不起作用。