Трубка FFMPEG в графической магии - PullRequest
3 голосов
/ 27 июля 2011

Мне нужно снять что-то вроде этого:

foo.user$ ffmpeg -i -y foo.mediafile -ss 0 -vframes 1 -an out.jpg | gm identify out.jpg

По сути, для этого потребуется создать миниатюру видеокадра или неподвижного изображения с помощью ffmpeg, а затем запустить на нем gm. Как я могу напрямую передать миниатюру (или не очень миниатюру, она должна быть одного размера) в gm без необходимости писать в out.jpg. Кто-нибудь, кто знаком с ffmpeg piping / gm, не могли бы вы мне помочь? -Спасибо !!

P.S. если это помогает, этот процесс запускается из серверной части Javascript.

1 Ответ

4 голосов
/ 28 июля 2011

Ответил сам:

ffmpeg -i test.jpg -f mjpeg -ss 0 -vframes 1 -an - 2>/dev/null | gm identify -ping -verbose -

Это работает, чтобы взять test.jpg (или другой файл, .ogv, .png и т. Д.) И обработать его с помощью ffmpeg, а затем запустить его в gm. Важным битом являются тире, они действуют как анонимные каналы. Также важен параметр -f mjpeg, чтобы принудительно преобразовать канал в формат jpeg. Наконец, 2> / dev / null заставляет замолчать первую команду.

...