Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 5 495

/ вопрос открыт /

Доброго времени суток, уважаемые эксперты!
Есть такая проблема.
Имеется программа делающая снимки каждые n секунд (от 0.1 до 10-20).
Потом эти снимки склеиваются в видео (1 снимок = 1 кадр).
Так вот, за несколько часов количество сделанных снимков у меня дошло до 91000.
Вместе они склеиваются, но ужасно долго (около 5 часов).
Может можно при получении каждого нового снимка "приклеивать" его к видео?
Чтобы на выходе получалась не куча отдельных снимков, а видео в любом формате (какой попроще).

Gooddy Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Gooddy (статус: 3-ий класс)
Вопрос отправлен: 12 июля 2011, 11:47
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: Вадим К

Здравствуйте, Gooddy!
Думаю, самый простой способ - это использовать Mjpeg формат видео. Он представляет собой просто последовательно склеенные jpeg картинки + заголовок. И думаю, его можно сделать просто "дописывая".
Кое-какие либы для этого можно подсмотреть тут http://www.delphimaster.ru/cgi-bin/forum.pl?id=1227686777&n=7
Но не нужно думать, что 5 часов на склейку - это долго - это может быть ещё очень как быстро. Особенно, если пишутся полноэкранные (1280х1024 и больше) картинки.

Ответ отправил: Вадим К (статус: Академик)
Время отправки: 12 июля 2011, 12:07
Оценка за ответ: 5

Комментарий к оценке: Спасибо, в зависимости от настроек камеры, могут писаться гиганские картинки. Мои 640х400 весили 15 гигов.

Мини-форум вопроса

Всего сообщений: 9; последнее сообщение — 12 июля 2011, 19:05; участников в обсуждении: 3.
Gooddy

Gooddy (статус: 3-ий класс), 12 июля 2011, 12:04 [#1]:

Если кому интересно это нужно для "Timelapse" - замедленной киносъёмки.
Чисти код! Чисти код! Чисти код!
Gooddy

Gooddy (статус: 3-ий класс), 12 июля 2011, 12:10 [#2]:

Посмотрю либы, попробю. Как запорюсь напишу.
Чисти код! Чисти код! Чисти код!
Вадим К

Вадим К (статус: Академик), 12 июля 2011, 12:13 [#3]:

Думаю, правильно будет их сразу в jpeg жать и размер выбирать поменьше.
Галочка "подтверждения прочтения" - вселенское зло.
Gooddy

Gooddy (статус: 3-ий класс), 12 июля 2011, 12:13 [#4]:

Нет, думаю mjpeg не подойдёт. Сжатие слишком слабое. Есть ещё варианты?
Чисти код! Чисти код! Чисти код!
Gooddy

Gooddy (статус: 3-ий класс), 12 июля 2011, 12:14 [#5]:

Вадим К: я их сразу в jpeg и жму, но качество 100%.
Чисти код! Чисти код! Чисти код!
Вадим К

Вадим К (статус: Академик), 12 июля 2011, 12:23 [#6]:

тогда есть еще один вариант - некоторые камеры умеют сами уже жать видео, к примеру в mpeg2.

Другие, известные мне кодеки, не дадут возможности писать сразу, хотя, MPEG2 позволит дописывать кадры (его суть такая - пишем ключевой кадр, который есть обычной jpeg картинкой, а потом следующие кадры пишем как разность между текущим и предыдущим, а для улучшения позиционирования, один раз на 200-300 кадров - снова делаем ключевой кадр).

Думаю, для начала нужно взять virtualdub, загрузить по максимуму кодеков и подобрать оптимальный по качеству/скорости/размеру. А после этого уже искать как его использовать в делфи.
Галочка "подтверждения прочтения" - вселенское зло.
Gooddy

Gooddy (статус: 3-ий класс), 12 июля 2011, 13:15 [#7]:

Я знаю, например Canon EOS 500D с приложенным софтом может снимать TimeLapse сразу в видеофайлы, но похожие камеры стоят не дёшево, а я не фотограф, деньги итак есть куда потратить.
Чисти код! Чисти код! Чисти код!
Gooddy

Gooddy (статус: 3-ий класс), 12 июля 2011, 13:17 [#8]:

Спасибо за помощь, тему оставлю открытой, если будут предложения, а сейчас у меня другая проблема всплыла.
Чисти код! Чисти код! Чисти код!
bugmenot

bugmenot (статус: 3-ий класс), 12 июля 2011, 19:05 [#9]:

Цитата (Gooddy):

тему оставлю открытой

как-то необычно, сейчас же модно в течении 15 минут вопросы закрывать
виконання програми розпочинається з того самого мiсця, де призупинилося.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:52
Выполнено за 0.03 сек.