리눅스에서 exec 호출을 통해 ffmpeg를 실행하려고합니다. 그러나 나는 명령에서 따옴표를 사용해야한다 (ffmpeg 필요). 내가 processbuilder 및 exec 및 stackoverflow에 대한 질문 자바 의사를 통해 봤는데하지만 솔루션을 찾을 수 없습니다.인용 부호가있는 Java Runtime.getRuntime(). exec()
은 내가 아래 인수 문자열에 따옴표를 삽입해야
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";
모든 도움을 주시면 감사하겠습니다.
는 "새로운 String []"문자를 제거 할 수 있습니다; 중괄호는 자동으로 문자열 배열을 생성합니다. –
이것은 작동하지 않습니다 rtmp : //127.0.0.1/vod/sample start = xxx stop = xxx 에는 따옴표가 있어야합니다. 인수를 문자열 배열에 넣는 것은 도움이되지 않습니다. –
다음과 같이 이스케이프 된 인용 부호를 사용하면 도움이되지 않습니다. "\"rtmp : //127.0.0.1/vod/sample start = 1500 stop = 24000 \ "" – laher