gpt4 book ai didi

java - 除了这个命令(合并)之外,ffmpeg 在 java 中大部分时间都可以正常工作,并且这个命令可以直接在终端中正常工作

转载 作者:行者123 更新时间:2023-11-29 05:23:38 27 4
gpt4 key购买 nike

当我从命令行运行它时它起作用了(并排合并两个视频):

/usr/local/bin/ffmpeg -i /Users/ron/Dropbox/JAMR/Technology/workspace/JAMR/sandbox/test.mov -i /Users/ron/Dropbox/JAMR/Technology/workspace/JAMR/sandbox/test1.mov -filter_complex "[0:v:0]pad=iw*2:ih[bg]; [bg][1:v:0]overlay=w" /Users/ron/Dropbox/JAMR/Technology/workspace/JAMR/sandbox/merged.mov

但是,当我在 java 中运行它时,我从控制台得到了这个:

[AVFilterGraph @ 0x7fd44ad00440] No such filter: '"'
Error configuring filters.

这是我要返回(直接复制)的文本,这是我要发送以供执行的文本。它完全一样,只是我在引号前使用了转义符,所以“变成了\”:

"/usr/local/bin/ffmpeg -i /Users/ron/Dropbox/JAMR/Technology/workspace/JAMR/sandbox/test.mov -i /Users/ron/Dropbox/JAMR/Technology/workspace/JAMR/sandbox/test1.mov -filter_complex \"[0:v:0]pad=iw*2:ih[bg]; [bg][1:v:0]overlay=w\" /Users/ron/Dropbox/JAMR/Technology/workspace/JAMR/sandbox/merged.mov";

所有其他 ffmpeg 测试都有效,除了这个....(我唯一使用 "字符的测试)

谁能算出来?

最佳答案

您应该将 Java 中的命令拆分为一个字符串数组,然后将其传递给 getRuntime().exec(String[])

简短示例:

String cmd[] = new String[]{
"ffmpeg",
"-r", String.valueOf(20/30f),
"-i", "assets/IMAG0054_BURST%03d.jpg",
"-i","assets/logo.png",
"-i","assets/guitar_tuning.wav","-r", "24", "-codec:a", "mp3",
"-filter_complex","[0:v][1:v]overlay=main_w-overlay_w-10:main_h-overlay_h-10,"+
"drawtext=fontfile=assets/OpenSans-Regular.ttf:text=1st scene:x=0:y=0:fontsize=100:fontcolor=white:enable='between(t,0.5,2.5)'," +
"drawtext=enable='between(t,2.6,5.5)':fontfile=assets/OpenSans-Regular.ttf:text=2nd scene:x=0:y=0:fontsize=100:fontcolor=white," +
"drawtext=enable='between(t,5.6,8.8)':fontfile=assets/OpenSans-Regular.ttf:text=3rd scene:x=0:y=0:fontsize=100:fontcolor=white," +
"drawtext=enable='between(t,8.9,30)':fontfile=assets/OpenSans-Regular.ttf:text=4rd scene:x=0:y=0:fontsize=100:fontcolor=white" +
"[out]",
"-map", "[out]", "-map", "2:0",
"-acodec","mp3",
//"-shortest " +
"simple_lapse.mp4"};

Process ffmpeg = Runtime.getRuntime().exec(cmd);

希望对你有帮助

关于java - 除了这个命令(合并)之外,ffmpeg 在 java 中大部分时间都可以正常工作,并且这个命令可以直接在终端中正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23643440/

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