Создание Motion JPEG кадр за кадром с переменной частотой кадров - PullRequest
4 голосов
/ 06 марта 2012

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

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

Кроме того, этот проект сделан с Delphi (нет, я не могу это изменить), и мне нужны средства, чтобы превратить эти кадры в видеофайл после каждого кадра. Я думал об использовании mencoder в качестве внешнего инструмента, но я читаю документацию и до сих пор не нашел варианта, позволяющего вставить рамку в уже закодированный видеофайл Motion JPEG. Поскольку мои изображения поступают в формате JPEG, я подумал, что было бы разумно использовать Motion JPEG, но даже это еще не точно. Кроме того, я не знаю, можно ли использовать mencoder в качестве библиотеки. Это очень помогло бы, если бы это сделало.

Что бы вы предложили?

1 Ответ

2 голосов
/ 06 марта 2012

Некоторые форматы медиа-контейнеров поддерживают переменную частоту кадров , но я не думаю, что MJPEG - хороший выбор из-за нехватки памяти.Я считаю, что лучшим способом было бы перекодировать кадры JPEG в формат MP4, используя как I-кадры, так и P-кадры.

Вы можете использовать FFMPEG Delphi / FP заголовочные файлы для транскодирования.

Редактировать:

Самую последнюю версию заголовков FFMPEG можно найти в хранилище GLScene на SourceForge.net ,Для просмотра файлов вы можете использовать эту ссылку

...