2012-03-06 2 views
4

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

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

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

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

ответ

2

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

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

Edit:

Наиболее актуальной версии заголовков FFmpeg можно найти на GLScene repository on SourceForge.net. Для просмотра файлов вы можете использовать this link

+0

Ничего себе, что-то вроде этого мне отчаянно нужно. Посмотрите внимательно на номера версий avformat - .dll. Из предоставленной ссылки вы получите версию 50, в то время как код указывает 52. Затем вам нужно скачать swscale-0.dll, которую вы можете скачать с http://www.dll-file-download.com/dll-files/?classid= 19 & ID = 16612 & pathid = 0. Я буду экспериментировать дальше, если кто-то заработает, мне интересно услышать. – Arnold

+0

На самом деле самая последняя версия, которую я могу найти, которая соответствует последним DLL, можно найти в репозитории GLScene на SourceForge.net. Ссылка просмотра SVN: http://glscene.svn.sourceforge.net/viewvc/glscene/branches/GLScene_1_2_0/Source/FFmpeg/ –

+0

Ну, avcodec требует ctypes, и для этого нужны следующие файлы, которые я не могу найти на sourceforge , Кажется, что-то не хватает, какие-то идеи? – Arnold

Смежные вопросы