cuando hago el siguiente comando en DOS no tendrán ningún problemaProcess.Start()
ffmpeg -f image2 -i frame%d.jpg -vcodec mpeg4 -b 800k video.avi
Cuando trato de utilizar la clase de procedimiento en C#, sin los argumentos, se carga ffmpeg en una ventana de la consola luego desaparece como de costumbre. Sin embargo, cuando trato de usar el argumento como hago arriba, formateado exactamente igual ... ¡no funciona! ffmpeg todavía carga, sin embargo, desde la ventana de la consola se cierra tan rápido que no puede determinar lo que es el error:/
Process ffmpeg = new Process();
ffmpeg.StartInfo.FileName = path + "//" + "ffmpeg.exe";
ffmpeg.StartInfo.Arguments = " -f image2 -i frame%d.jpg -vcodec mpeg4 -b 800k video.avi";
ffmpeg.Start();
Cualquiera sabe qué es esto? ¿Por qué el comando funcionaría desde dos y luego no funcionaría usando C# incluso cuando los argumentos son exactamente iguales? He utilizado este método antes para muchas cosas y nunca he encontrado esto.
¿Estás seguro de que 'FileName' es correcto? ¿No deberían ser las barras \\ en vez de //? –
Use System.IO.Path.Combine (ruta, "ffmpeg.exe") en su lugar. Esto coloca el separador de directorio correcto en la ruta, si es que uno ya no está allí. – Tergiver
si la propiedad del nombre del archivo es correcta, como he dicho, el proceso en realidad está comenzando, entonces el archivo debe ser encontrado, son los argumentos que están fallando. Traté de concatenar la cadena y luego pasar eso a los argumentos en lugar de los anteriores, todavía no alegría: < – brux