Я пытался скомпилировать пример кода FFmpeg ЗДЕСЬ , который иллюстрирует, как использовать фильтры, используя его C API.
Я скомпилировал код (через универсальный make
). Как следует из использования, я делаю это:
./filtering_video test.mp4
Но это производит некоторую мешанину на экране. Я ожидал, что он создаст выходной .mp4
файл, который можно воспроизвести.
Как его правильно запустить?
И работает ли он с любым заданным видеофильтром, который передается в FFmpeg через -vf
, если я просто изменю указанное описание фильтра?
const char *filter_descr = "scale=78:24,transpose=cclock";
Он не создает никакого выходного файла.
После фильтрации 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);
Тина Дж
Тина Дж
Гьян
Тина Дж
freezedetect=n=-60dB:d=8
. Но этот фильтр создает метаданные, а не кадры (например,lavfi.freezedetect.freeze_start: 10.01
). Как я могу показать эти данные вместо этого?