Sla*_*yev 6 java linux exec runtime.exec
我试图通过Linux上的exec调用运行ffmpeg.但是我必须在命令中使用引号(ffmpeg需要它).我一直在浏览java doc for processbuilder和exec以及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
Run Code Online (Sandbox Code Playgroud)
我需要在下面的参数字符串中插入引号.注意,由于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";
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激.
做一个阵列!
exec可以接受一个字符串数组,这些字符串用作命令和参数数组(与命令数组相对)
像这样......
String[] arguments = new String[] { "ffmpeg",
"-i",
"rtmp://127.0.0.1/vod/sample start=1500 stop=24000",
"-re",
...
};
Run Code Online (Sandbox Code Playgroud)