J'essaie d'exécuter ffmpeg via l'appel exec sur linux. Cependant, je dois utiliser des guillemets dans la commande (ffmpeg l'exige). J'ai regardé le doc java pour processbuilder et exec et questions sur stackoverflow mais je n'arrive pas à trouver une solution.Java Runtime.getRuntime(). Exec() avec des guillemets
Je dois exécuter
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
Je dois insérer des citations dans la chaîne d'arguments ci-dessous. Notez simplement que l'ajout de guillemets simples ou doubles précédés d'une barre oblique inversée ne fonctionne pas en raison de la nature de la façon dont processbuilder analyse et exécute les commandes.
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";
Toute aide serait grandement appréciée.
vous pouvez supprimer les caractères "new String []"; les accolades produiront automatiquement un tableau de chaînes pour vous. –
Cela ne fonctionnera pas comme rtmp: //127.0.0.1/vod/sample start = xxx stop = xxx doit être entouré de guillemets. Mettre l'argument dans un tableau de chaînes n'aide pas. –
Désolé, n'a pas d'aide si vous mettez des guillemets échappés, comme suit: "\" rtmp: //127.0.0.1/vod/sample start = 1500 stop = 24000 \ "" – laher