Преобразовать видеофайл в TIFF с помощью ffmpeg.dll или avcodec.dll? Возможно ли на лету?

Я хочу создать программу, которая получает видеофайл из Qt, преобразует этот видеофайл в TIFF-файлы и отправляет их алгоритму, который обрабатывает эти TIFF-файлы.
Мои вопросы:

  • возможно ли с ffmpeg или avcodec не конвертировать видеофайл в TIFF-файлы сначала на жестком диске, а затем отправлять их в алгоритм, а конвертировать кадр за кадром и сразу отправлять в алгоритм?
  • Более важный вопрос: можно ли это сделать не внешним процессом с ffmpeg.exe, а с помощью ffmpeg.dll? Или это возможно только с avcodec.dll? (Это не должно быть «на лету», как в моем пункте выше) Как я могу создать ffmpeg.dll с заголовком и библиотекой?

person Berschi    schedule 11.11.2009    source источник
comment
Я не мастер использовать слова, но я бы кое-что изменил здесь. Я предполагаю, что под алгоритмом вы подразумеваете программу или скрипт, а не сохраняя сначала на жесткий диск, вы подразумеваете захват его как переменной на вашем скрипте, что действительно было бы намного быстрее, и, наконец, не с помощью внешнего процесса вы, вероятно, имели в виду включение его в вашу программу на С++ через dll. Так что я также предполагаю, что вы уже решили все это. :)   -  person cregox    schedule 10.04.2010


Ответы (2)


для экспорта tif: http://www.repaire.net/forums/cinema-numerique/215306-projet-dencodage-dcp.html

person Miomoi    schedule 19.01.2011

Создание tiff из секунды 29 в mpeg, с помощью ffmpeg dd201110 можно сделать так:

ffmpeg -i 'test.mpg' -vframes 1 -compression_level 0  -ss 29 'test.tiff' 

YMMV :-D Если вы не хотите хранить изображение в виде файла, взгляните на ffmpeg-php

http://ffmpeg-php.sourceforge.net/

$movie->getFrame([Integer framenumber])

Возвращает кадр из фильма в виде объекта ffmpeg_frame.

$frame->toGDImage()

Возвращает GD-изображение кадра в истинном цвете.

Под ним может быть код C, который вы можете использовать повторно.

person commonpike    schedule 27.10.2011