Скомпилируйте пример кода FFmpeg

Я пытался скомпилировать пример кода FFmpeg ЗДЕСЬ , который иллюстрирует, как использовать фильтры, используя его C API.

Я скомпилировал код (через универсальный make). Как следует из использования, я делаю это:

./filtering_video test.mp4

Но это производит некоторую мешанину на экране. Я ожидал, что он создаст выходной .mp4файл, который можно воспроизвести.

Как его правильно запустить?

И работает ли он с любым заданным видеофильтром, который передается в FFmpeg через -vf, если я просто изменю указанное описание фильтра?

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

Ответы (1)

Он не создает никакого выходного файла.

После фильтрации display_frame()вызывается, которая просто выводит на консоль.

/* 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);
да, я видел персонажей. Как я могу отобразить это визуально? например, переход к ffplay, сохранение в виде файла и т. д.?
+ работает ли код, если я просто передаю какое-либо описание фильтра?
См. пример транскодирования
Я изменил описание на freezedetect=n=-60dB:d=8. Но этот фильтр создает метаданные, а не кадры (например, lavfi.freezedetect.freeze_start: 10.01). Как я могу показать эти данные вместо этого?