sous-processus d'appel ffmpeg (ligne de commande)

J'ai été incorporant des sous-processus des appels dans mon programme. J'ai pas eu de problèmes avec les sous-processus des appels pour d'autres commandes, mais j'ai de la difficulté à obtenir l'entrée de ligne de commande

ffmpeg -r 10 -i frame%03d.png -r ntsc movie.mpg

À l'intérieur d'un sous-processus.call()

J'ai essayé les sans succès:

subprocess.call('ffmpeg -r 10 -i %s frame%03.d.png - r ntsc movie.mpg')

Toute pensée? Dois-je séparer les différentes commandes, dois-je spécifier une chaîne de caractères, entier, etc. avec %s, %d?

Exécuter votre commande, mais avec chaque argument split dans une liste. Si vous le faites qu'une seule chaîne de caractères, alors vous devrez spécifier shell=True qui vous probablement ne voulez pas le faire de toute façon. Donc, en supposant que votre commande est construit comme variable cmd, exécutez subprocess.call(cmd.split()) et attendre pour la magie.
Quelle est l'erreur? shell=True peut le résoudre.
Merci, oui, shell=True me permet d'exécuter les commandes comme une grande chaîne, mais j'étais également curieux de voir la syntaxe pour elle si je remplace le " film.mpg' avec un nom de variable.
La commande que vous souhaitez exécuter a frame%03d.png. La commande que vous êtes en cours d'exécution avec subprocess a frame%03.d.png . Il dispose également d'un supplément de %s qui ne correspond à rien dans votre commande. Alors... qu'est-ce exactement que vous essayez de faire? Quelle est la réelle ligne de commande que vous souhaitez exécuter?
Non, mais vous devez utiliser -framerate au lieu de -r lors de l'utilisation de la image2 demuxer depuis, autant que je me souvienne, c'est moins pointilleux si les entrées varient selon la taille de l'image ou format de pixel.

OriginalL'auteur user3295674 | 2014-09-21