Compilar código de ejemplo de FFmpeg

Estaba tratando de compilar un código de ejemplo de FFmpeg AQUÍ que ilustra cómo usar filtros usando sus API de C.

Compilé el código (a través de un universal make). Como sugiere el uso, estoy haciendo esto:

./filtering_video test.mp4

Pero produce una salida desordenada en la pantalla. Esperaba que produzca un .mp4archivo de salida que se pueda reproducir.

¿Cómo ejecutarlo correctamente?

¿Y funciona con cualquier filtro de video dado que se pasa a través de FFmpeg -vf, si simplemente cambio la descripción del filtro especificado?

const char *filter_descr = "scale=78:24,transpose=cclock";

Respuestas (1)

No produce ningún archivo de salida.

Después de filtrar, display_frame()se llama, que simplemente envía a la consola.

/* Trivial ASCII grayscale display. */
p0 = frame->data[0];
puts("\033c");
for (y = 0; y < frame->height; y++) {
    p = p0;
    for (x = 0; x < frame->width; x++)
        putchar(" .-+#"[*(p++) / 52]);
    putchar('\n');
    p0 += frame->linesize[0];
}
fflush(stdout);
Sí, vi personajes. ¿Cómo puedo mostrarlo visualmente? por ejemplo, pasar a ffplay, almacenar como un archivo, etc.?
+ ¿Funciona el código si simplemente paso cualquier descripción de filtro?
Ver el ejemplo de transcodificación
Cambié la descripción a freezedetect=n=-60dB:d=8. Pero este filtro produce metadatos, no marcos (como lavfi.freezedetect.freeze_start: 10.01). ¿Cómo puedo mostrar estos datos en su lugar?