es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

ffmpeg ha generado un código de salida inesperado 1 para -list_devices y -list_options.

Descripción

Si ejecuto cualquiera de los siguientes comandos de los ejemplos en la documentación, utilizando ffmpeg 4.2.2 en Windows 10, la información solicitada se muestra correctamente en la consola, pero el proceso finaliza con el código de salida 1, en lugar del esperado 0 (éxito).

ffmpeg -list_devices true -f dshow -i dummy

ffmpeg -list_options true -f dshow -i video="MyCamera"

En lo que sé, el código de salida 1 en Windows implica “Función incorrecta”, por lo que considero que este comportamiento es inesperado.

Si transmito la entrada de la cámara al disco, utilizando por ejemplo ffmpeg -f dshow -i video="MyCamera" "myfile.mp4", y luego detengo el proceso usando q, el código de salida es 0, como se espera.

Pregunta

¿El código de salida 1 constituye un comportamiento normal para ffmpeg, o estoy haciendo algo mal?

Importancia

Cuando se ejecutan los comandos manualmente desde la línea de comandos, el código de salida no tiene mucha importancia, siempre y cuando se muestre la información solicitada.

Sin embargo, cuando se ejecutan los comandos de forma programática, puede causar problemas. Por ejemplo, al utilizar el subprocess.run(..., check=True) de Python, el código de salida distinto de cero causa un CalledProcessError.

Por supuesto, existen formas de solucionarlo, como utilizar check=False, pero el punto es que una solución no debería ser necesaria si ffmpeg se comportara como se espera, es decir, devolviendo 0.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Basándonos en la información proporcionada, parece que el código de salida 1 devuelto por ffmpeg al ejecutar los comandos ffmpeg -list_devices true -f dshow -i dummy y ffmpeg -list_options true -f dshow -i video="MyCamera" en Windows 10 es inesperado y no constituye un comportamiento normal para ffmpeg. Es posible que haya un problema con ffmpeg en Windows 10 o que haya un error en la sintaxis del comando. Este comportamiento puede causar problemas al ejecutar los comandos programáticamente, especialmente con herramientas como subprocess.run(..., check=True) de Python, que espera un código de salida cero para una ejecución exitosa. Hay soluciones alternativas disponibles, como usar check=False, pero el comportamiento esperado debería ser que ffmpeg devuelva un código de salida 0 al ejecutarse correctamente. Es posible que se necesite una investigación adicional para determinar la causa del comportamiento inesperado.

Comments are closed.