Ich habe versucht, HIER einen FFmpeg-Beispielcode zu kompilieren , der veranschaulicht, wie Filter mit seinen C-APIs verwendet werden.
Ich habe den Code kompiliert (durch ein universelles make
). Wie die Verwendung schon sagt, mache ich das:
./filtering_video test.mp4
Aber es erzeugt ein Durcheinander auf dem Bildschirm. Ich hatte erwartet, dass es eine Ausgabedatei erzeugt .mp4
, die abgespielt werden kann.
Wie wird es richtig ausgeführt?
Und funktioniert es mit jedem beliebigen Videofilter, der an FFmpeg übergeben wird -vf
, wenn ich einfach die angegebene Filterbeschreibung ändere?
const char *filter_descr = "scale=78:24,transpose=cclock";
Es erzeugt keine Ausgabedatei.
Nach dem Filtern display_frame()
wird aufgerufen, was einfach an die Konsole ausgegeben wird.
/* 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);
Tina J
Tina J
Gyan
Tina J
freezedetect=n=-60dB:d=8
. Aber dieser Filter erzeugt Metadaten, keine Frames (wielavfi.freezedetect.freeze_start: 10.01
). Wie kann ich diese Daten stattdessen anzeigen?