execvp et vlc sous linux erreur avec les arguments pour vlc
Bonjour
j'ai un souci pour exécuter VLC avec ces arguments en ligne de commande via la fonction execvp.
Voila au début, j'ai créer un programme qui exécute la lecture d'un flux réseaux via le lecteur VLC.
Je me suis inspirer de votre topic concernant execl, execv, execle, execve, execlp, et execvp
ce qui ma permis d'aboutir à ce code.
Code:
1 2 3 4
|
//On execute VLC avec lecture sur l'adresse local sur le port 1235.
char *argv[] = { "vlc","rtp://@:1235", NULL };
execvp ( "vlc", argv); |
Ce programme marche et VLC lit bien le flux rtp entrant.
Ensuite j'ai voulu modifier le programme avec pour objectif d'enregistrer le flux vidéo et de le sauvegarder via le lecteur VLC.
la ligne de commande sous linux pour executer ce que je désire c'est:
Citation:
vlc rtp://@:1235 --sout "#std{access=file,mux=avi,dst=fichier.avi}"
ou
Citation:
vlc rtp://@:1235 --sout '#std{access=file,mux=avi,dst=fichier.avi}'
les deux marches.
C'est là où arrive mon problème, dans la logique des choses, j'ai fait ceci
Code:
1 2 3
|
char *argv_v[] = { "vlc","rtp://@:1235", "--sout '#std{access=file,mux=avi,dst=fichier.avi}'", NULL };
execvp ( "vlc", argv); |
vlc ne prend pas en compte le deuxième argument, ou plutôt le deuxième argument est compris comme le premier, j'ai eu beau mettre le deuxième argument avec le premier, changer le execvp par les autres, j'ai toujours cette même erreur.
Si vous avez une idée
merci d'avance