java ffmpeg 包装器未知解码器 'copy'
java ffmpeg wrapper Unknown decoder 'copy'
嗨,我想 运行 ffmpeg -f concat -i test.txt -c copy output.mp4 in java。我的 FFmpegBuilder :
FFmpeg ffmpeg = new FFmpeg("C:\ffmpeg\bin\ffmpeg.exe");
FFprobe ffprobe = new FFprobe("C:\ffmpeg\bin\ffprobe.exe");
FFmpegBuilder builder = new FFmpegBuilder()
.setInput(path + fileName)
.addExtraArgs("-f", "CONCAT")
.addExtraArgs("-i", path+ "test.txt")
.addExtraArgs("-c", "copy")
.addOutput("outjava.mp4")
//.setAudioCodec("COPY")
// .setVideoCodec("COPY")
.done();
FFmpegExecutor executor = new FFmpegExecutor(ffmpeg, ffprobe);
executor.createJob(builder).run();
但我总是得到错误:
Unknown decoder 'copy'
Exception in thread "main" java.lang.RuntimeException: java.io.IOException: C:\ffmpeg\bin\ffmpeg.exe returned non-zero exit status. Check stdout.
at net.bramp.ffmpeg.job.SinglePassFFmpegJob.run(SinglePassFFmpegJob.java:46)
at Main.main(Main.java:47)
Caused by: java.io.IOException: C:\ffmpeg\bin\ffmpeg.exe returned non-zero exit status. Check stdout.
at net.bramp.ffmpeg.FFcommon.throwOnError(FFcommon.java:51)
at net.bramp.ffmpeg.FFcommon.run(FFcommon.java:113)
at net.bramp.ffmpeg.FFmpeg.run(FFmpeg.java:184)
at net.bramp.ffmpeg.FFmpeg.run(FFmpeg.java:202)
at net.bramp.ffmpeg.job.SinglePassFFmpegJob.run(SinglePassFFmpegJob.java:39)
... 1 more
为什么可以将所有参数包装到 .addExtraArgs 中,但 -c 复制参数失败?我的错误是什么? .setVideoCodec("COPY") 也失败了
-c copy
是一个输出参数。
将.addExtraArgs("-c", "copy")
放在addOutput("outjava.mp4")
之后:
FFmpegBuilder builder = new FFmpegBuilder()
.setInput(path + fileName)
.addExtraArgs("-f", "concat")
.addExtraArgs("-i", path+ "test.txt")
.addOutput("outjava.mp4")
.addExtraArgs("-c", "copy")
.done();
注意:
我没有机会测试我的答案。
按照下面的examples,应该可以。
请注意,具有 -c copy
的 concat
解复用器仅在所有输入文件具有相同特征时才有效。
嗨,我想 运行 ffmpeg -f concat -i test.txt -c copy output.mp4 in java。我的 FFmpegBuilder :
FFmpeg ffmpeg = new FFmpeg("C:\ffmpeg\bin\ffmpeg.exe");
FFprobe ffprobe = new FFprobe("C:\ffmpeg\bin\ffprobe.exe");
FFmpegBuilder builder = new FFmpegBuilder()
.setInput(path + fileName)
.addExtraArgs("-f", "CONCAT")
.addExtraArgs("-i", path+ "test.txt")
.addExtraArgs("-c", "copy")
.addOutput("outjava.mp4")
//.setAudioCodec("COPY")
// .setVideoCodec("COPY")
.done();
FFmpegExecutor executor = new FFmpegExecutor(ffmpeg, ffprobe);
executor.createJob(builder).run();
但我总是得到错误:
Unknown decoder 'copy'
Exception in thread "main" java.lang.RuntimeException: java.io.IOException: C:\ffmpeg\bin\ffmpeg.exe returned non-zero exit status. Check stdout.
at net.bramp.ffmpeg.job.SinglePassFFmpegJob.run(SinglePassFFmpegJob.java:46)
at Main.main(Main.java:47)
Caused by: java.io.IOException: C:\ffmpeg\bin\ffmpeg.exe returned non-zero exit status. Check stdout.
at net.bramp.ffmpeg.FFcommon.throwOnError(FFcommon.java:51)
at net.bramp.ffmpeg.FFcommon.run(FFcommon.java:113)
at net.bramp.ffmpeg.FFmpeg.run(FFmpeg.java:184)
at net.bramp.ffmpeg.FFmpeg.run(FFmpeg.java:202)
at net.bramp.ffmpeg.job.SinglePassFFmpegJob.run(SinglePassFFmpegJob.java:39)
... 1 more
为什么可以将所有参数包装到 .addExtraArgs 中,但 -c 复制参数失败?我的错误是什么? .setVideoCodec("COPY") 也失败了
-c copy
是一个输出参数。
将.addExtraArgs("-c", "copy")
放在addOutput("outjava.mp4")
之后:
FFmpegBuilder builder = new FFmpegBuilder()
.setInput(path + fileName)
.addExtraArgs("-f", "concat")
.addExtraArgs("-i", path+ "test.txt")
.addOutput("outjava.mp4")
.addExtraArgs("-c", "copy")
.done();
注意:
我没有机会测试我的答案。
按照下面的examples,应该可以。
请注意,具有 -c copy
的 concat
解复用器仅在所有输入文件具有相同特征时才有效。