Bonjour à tous,
J'observe un blocage (une fois sur trois) de ffmpeg (outil de transcodage vidéo) lorsque la commande qui lui est envoyée est exécutée à partir d'un objet de type Process dans un service Windows en c#.
Le service attend (il ne peut connaitre le temps de traitement à l'avance et ce traitement peut être très long) que le process ffmpeg soit terminé est ainsi bloqué.
La commandes se passe très bien en mode ligne de commande et on peut observer une gestion particulière de la console par ffmpeg : à savoir qu'il rafraichit la dernière ligne qu'il envoie sur la sortie standard avec l'évolution du traitement.
Est ce que quelqu'un a déjà rencontré un problème similaire ?
PS : ci joint ci dessous un extrait du code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 string parametres = "-y -i " + TMPFILEM2EDIT + " -i " + TMPFILEFFMPEG + " -vcodec copy -acodec copy -f vob " + "\"" + OUTFILE_TMP + "\"" + " -map 0:0 -map 0:1 -map 1:0 -acodec copy -newaudio"; #region -- Initialisation du processus ffmpeg de multiplexage //Objet process qui stocke les infos sur le process Process process = new Process(); process.StartInfo = new ProcessStartInfo(urlFFmpeg + "ffmpeg", parametres); //process.StartInfo.UseShellExecute = false; process.StartInfo.UseShellExecute = false; process.StartInfo.CreateNoWindow = true; process.StartInfo.RedirectStandardError = false; process.StartInfo.RedirectStandardOutput = false; #endregion #region On lance le processus ffmpeg de multiplexage try { process.Start(); process.WaitForExit();
Partager