Сохранение как Flash в C ++ - PullRequest
       57

Сохранение как Flash в C ++

5 голосов
/ 24 февраля 2011

Как сохранить IPLImage OpenCV в виде файла Flash?Может быть, есть библиотека, которая делает это?

Ответы [ 4 ]

4 голосов
/ 03 марта 2011

Если вы хотите сохранить вывод в виде флеш-видео (.flv), просто используйте ffmpeg (libavcodec / libavformat).Он кроссплатформенный и поддерживает формат .flv (помимо огромного количества других), и его должно быть довольно легко сделать.Вы также можете встраивать аудио.

Как примечание: ffmpeg частично включен в opencv (в зависимости от вашей сборки) как видеокодер / декодер, хотя я не знаю, можете ли вы заставить его записать как.flv (выбрав правильную строку кодека) из opencv.В любом случае не так уж сложно преобразовать IplImage в буфер ffmpeg и сохранить его оттуда.

Проблема, с которой вы можете столкнуться, заключается в том, что последний opencv (2.1) имеет проблемы с сборкой с поддержкой ffmpeg или сборкой с какой-то версией ffmpeg, которую выне хочуНо, как уже упоминалось выше, вам не нужно использовать ffmpeg через API opencv 2.1, так как вы можете использовать его напрямую с помощью API ffmpeg.

Посмотрите примеры в libavcodec о том, как написать видео, ипроверьте исходники opencv о том, как конвертировать из IplImage в AVPacket / AVFrame.Я делал это раньше, и это было довольно легко сделать.

1 голос
/ 28 февраля 2011

Я немного знаю Flash, но вы можете манипулировать указателем данных IplImage (с именем char * imageData).Данные доступны в виде от 1 до 4 битных планов в формате, который вы наверняка знаете.Попробуйте записать файл Flash из этого указателя данных.

0 голосов
/ 07 марта 2011

Вы можете записать ваши изображения в последовательность файлов, скажем, img00000.ppm, img00001.ppm, ..., а затем делегировать кодирование видео в MEncoder, который, согласно docs , поддерживает flv,

Это то, что мы обычно делаем для подготовки таких видео, как это .

0 голосов
/ 01 марта 2011

lital, ну, насколько мне известно, openCV не поддерживает создание flash. Мое решение для такой проблемы: Red5 Сервер

и как написано на их странице

Red5 - Flash Server с открытым исходным кодом. написанный на Java, который поддерживает:

  • Потоковое видео (FLV, F4V, MP4)

    • ....
...