Ich versuche, ffmpeg über den Exec-Aufruf unter Linux auszuführen. Allerdings muss ich Anführungszeichen im Befehl verwenden (ffmpeg benötigt es). Ich habe das Java-Dokument für processbuilder und exec und Fragen zu stackoverflow durchgesehen, aber ich kann nicht scheinen, eine Lösung zu finden.Java Runtime.getRuntime(). Exec() mit Anführungszeichen
brauche ich
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
ich Anführungszeichen in das unten Argument Zeichenfolge einfügen müssen, um laufen. Beachten Sie, dass das einfache Hinzufügen von einfachen oder doppelten Anführungszeichen, denen ein umgekehrter Schrägstrich vorangestellt ist, nicht funktioniert, da processbuilder die Befehle analysiert und ausführt.
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";
Jede Hilfe würde sehr geschätzt werden.
Sie die Zeichen "new String []" entfernen; Die Klammern erzeugen automatisch ein String-Array für Sie. –
Dies funktioniert nicht rtmp: //127.0.0.1/vod/sample start = xxx stop = xxx muss Anführungszeichen um es haben. Das Argument in ein String-Array zu bringen, hilft nicht. –
Tut mir leid, hilft es nicht, wenn Sie gemachte Zitate setzen, wie folgt: "\ rtmp: //127.0.0.1/vod/sample start = 1500 stop = 24000 \" " – laher