8

Я могу использовать следующую команду для извлечения изображений из видео с помощью ffmpeg, сохраняя их в файловой системе:

... | ffmpeg -i - -f image2 'img-%03d.png'

Я хотел бы передать эти изображения в другое приложение, а не сохранять их в файловой системе - то, как они разделены в конвейере, не имеет большого значения, поскольку это будет скрипт NodeJS, которым я сам управляю.

Следующее не работает:

... | ffmpeg -i - -f image2 pipe: | ...

Ошибка с

[image2 @ 0xe1cfc0] Could not get frame filename number 2 from pattern 'pipe:' (either set updatefirst or use a pattern like %03d within the filename pattern)
av_interleaved_write_frame(): Invalid argument

Есть ли способ передать изображения, извлеченные из видео, используя ffmpeg, без использования файловой системы?

1 ответ1

1

Да, есть!

добавьте аргумент -f image2pipe и укажите имя выходного файла в виде одиночного переноса (- , в этом контексте это означает стандартный stdout), а также укажите имя входного файла в виде одиночного переноса (-i - , в данном контексте это означает stdin поток ввода) и явно укажите формат вывода (например, для png: -c:v png), вот полный пример:

ffmpeg -i - -ss 00:00:3 -s 650x390 -vframes 1 -c:v png -f image2pipe -

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .