Java Runtime.getRuntime().exec() 带引号

2024-01-04

我正在尝试通过 linux 上的 exec 调用运行 ffmpeg。但是我必须在命令中使用引号(ffmpeg 需要它)。我一直在查看 processbuilder 和 exec 的 java 文档以及 stackoverflow 上的问题,但我似乎找不到解决方案。

我需要跑

ffmpeg -i "rtmp://127.0.0.1/vod/sample start=1500 stop=24000" -re -vcodec copy -acodec copy -f flv rtmp://127.0.0.1/live/qltv

我需要在下面的参数字符串中插入引号。请注意,由于 processbuilder 解析和运行命令的方式的性质,仅在前面添加反斜杠的单引号或双引号是行不通的。

String argument = "ffmpeg -i rtmp://127.0.0.1/vod/"
                    + nextVideo.getFilename()
                    + " start=" + nextVideo.getStart()
                    + " stop=" + nextVideo.getStop()
                    + " -re -vcodec copy -acodec copy -f flv rtmp://127.0.0.1/live/qltv";

任何帮助将不胜感激。


做一个数组!

exec 可以采用字符串数组,这些字符串用作命令和参数数组(而不是命令数组)

像这样的东西...

String[] arguments = new String[] { "ffmpeg", 
"-i", 
"rtmp://127.0.0.1/vod/sample start=1500 stop=24000",
"-re",
...
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java Runtime.getRuntime().exec() 带引号 的相关文章

随机推荐