Bonjour,

je suis en train de mettre au point une petite interface graphique pour des besoins spécifiques. Le but est de faciliter l'utilisation de FFmpeg: ne pas avoir à taper les commandes à la main.

J'ai donc fait mon application en C++ et Qt. Sous Linux tout fonctionne bien les commandes sont générées et exécutées correctement.

Mais sous Windows, pour une raison que je ne connais pas, aucune commande ne passe avec un system("...") ... sauf system("pause") qui elle marche. J'ai essayé de prendre la chaine de caractère générée qui correspond à la commande et de la coller directement dans l'invité de commande: ça marche très bien.

Voici le petit bout de code, qui fait les exécutions de commandes pour la HD (High Definition):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
if (needHd)
{
	for(int i=0;i<nbrCommandsHd;i++)
	{
		currentCommand ++;
		tempCommand = commandsEncode.commandsHd[i].commandline;
		generateCommand(&tempCommand, pathApp, pathInfile, basename, timePreview, idHd);
		//std::cout << tempCommand << std::endl;
		commandResultCurrent = system(StringToConstChar(tempCommand));
		system("pause");
		commandResultHdOk = commandResultHdOk && (commandResultCurrent==0);
		progressbarEncode->setValue(getPercentage(i + 1, nbrCommands));
	}
}
Si vous avez une explication ou une piste de réflexion, n'hésitez pas !

Thx.