Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.10.2010, 18:03   #11
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Цитата:
Сообщение от sekenr Посмотреть сообщение
BOBAH13, немог бы ты поподробнее объяснить про вывод каждого кадра в отдельный буфер с помощью SampleGrabber'а, а то если честно слабо понятно как закидывается в буфер и как потом из него извлекать и использовать.
А что не ясно то? BmpHead: PBitmapInfoHeader; вот вам описание всей информации о Bitmap, а вот pBuffer: PByte; биты изображения, т.е. само изображение по сути. Более ничего не надо. Теперь создавайте CreateDIBSection (кажется) или CreateBitmap после чего получаете HBITMAP, и далее можете работать с GDI/GDI+ либо создавайте соответствующие структуры для работы с DirectX, весь исходный материал уже имеется.
BOBAH13 вне форума Ответить с цитированием
Старый 24.10.2010, 14:59   #12
sekenr
 
Регистрация: 23.10.2010
Сообщений: 6
По умолчанию

огромное спасибо, вот только вопрос, в буфер получается текущий кадр, но тут не видел нигде момента инициализации SampleGraber'a и нужно ли для этого SampleGraber.SetOneShot(true/false) и каким образом осуществить последующее чтение остальных кадров? через MediaSeeking? если знаешь, хорошую книгу по этому или полное описание функций скажи пжл, а то столкнулся впервые и туго идет.

Последний раз редактировалось sekenr; 24.10.2010 в 15:10. Причина: (косяк)
sekenr вне форума Ответить с цитированием
Старый 24.10.2010, 15:35   #13
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Хм, я книг не видел, статей 2 видел, очень скудных. Сам разобрался спустя долгое время. А 8й пост http://programmersforum.ru/showpost....32&postcount=8 вам его мало как стартовать ставить паузу и останавливать? Зачем осуществлять чтение следующих кадров? При проигрывании обработчик сам будет вызываться. MediaPosition или MediaControl хватает вполне.

+ сами попробуйте хоть малость написать, я вам 99% выложил готовое.
BOBAH13 вне форума Ответить с цитированием
Старый 24.10.2010, 15:52   #14
sekenr
 
Регистрация: 23.10.2010
Сообщений: 6
По умолчанию

на mediacontrol.pause уж слишком сильно матерится отладчик, да и мне требуется элементарно разбить видео на кадры и работать с каждым в отдельности.
MediaPosition.get_Duration(VideoLen ) - этот момент не совсем понятен, так как возвращает длинну видео MediaSeeking.GetFrameCount (если не ошибаюсь так пишется).
П.С. видимо все же у меня руки кривые, но момент с выделением в буфер ничерта не пойму. Подключение к потоку вообще не вижу чтобы использовалось, скорее всего надо почитать повнимательнее литературу или примеры. Видимо не совсем разобрался

Последний раз редактировалось sekenr; 24.10.2010 в 15:55.
sekenr вне форума Ответить с цитированием
Старый 24.10.2010, 15:58   #15
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Какой раз говорю, Метод проб и ошибок. Функции обработчики они уже сами буду выполняться в параллельном потоке. Если вопрос как добраться до него, смотрим какой interface эти функции описывают (или наоборот) после читаем про него детально )) и опа, все становится ясно.
BOBAH13 вне форума Ответить с цитированием
Старый 24.10.2010, 16:01   #16
sekenr
 
Регистрация: 23.10.2010
Сообщений: 6
По умолчанию

Ну про ошибки и пробы это естественно=) Да и я понимаю что само не заработает. То есть выходит при запуске MediaControl он будет поочереди скидывать кадры в буфер и обрабатывать их можно будет в описаной выше процедуре SampleCB?
sekenr вне форума Ответить с цитированием
Старый 24.10.2010, 16:10   #17
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Та емае ))) тут все вообще очень просто. После рендеринга у вас появляется древо графов (если не знаете что такое граф и с чем его едят, читаем и учим) которое из исходного файла(данных) преобразовывает в итоге в 2 потока, звука и видео. В моем случае описанном, аудио поток идет сам собой, проигрывается через стандартное устройство ПК. Видео поток генерируется и при проигрывании файла(данных) в обработчик будет поставляться каждый кадр для дальнейшего вывода куда либо.

Если хотите редактировать каждый кадр, запускаете рендеринг файла далее устанавливая время думаю будут вызываться оброботчики кадров, их получаете и смотрите время каждого кадра, заносите куда надо в программе и все дела вообщем учите и пробуйте, я не буду все разжевывать, каков смысл так.
BOBAH13 вне форума Ответить с цитированием
Старый 24.10.2010, 16:17   #18
sekenr
 
Регистрация: 23.10.2010
Сообщений: 6
По умолчанию

Цитата:
Сообщение от BOBAH13 Посмотреть сообщение
Та емае ))) тут все вообще очень просто. После рендеринга у вас появляется древо графов (если не знаете что такое граф и с чем его едят, читаем и учим) которое из исходного файла(данных) преобразовывает в итоге в 2 потока, звука и видео. В моем случае описанном, аудио поток идет сам собой, проигрывается через стандартное устройство ПК. Видео поток генерируется и при проигрывании файла(данных) в обработчик будет поставляться каждый кадр для дальнейшего вывода куда либо.

Если хотите редактировать каждый кадр, запускаете рендеринг файла далее устанавливая время думаю будут вызываться оброботчики кадров, их получаете и смотрите время каждого кадра, заносите куда надо в программе и все дела вообщем учите и пробуйте, я не буду все разжевывать, каков смысл так.
Ну MediaSeeking позволяет перескакивать сразу по кадрам.. Про граф фильтров или дерево фильтров читал. Правда вот считал, что автоматически граф фильтров после инициализации рендерит видео и аудио в 2 потока, по идее он же и ищет в системе по ассоциации файлов в реестре стандартные кодеки для воспроизведения. Ну а вообще я согласен, что в принципе все просто, но так как я в этом не силен, хотелось бы разобраться глубже, чем пока получается. Делать программу абыкак не хочется.


И еще я не совсем понимаю смысл такого объявления : TArRGBTriple = array[0..0] of TRGBTriple; разве это не пустой массив выйдет?

В любом случае огромное спасибо за разъяснение.

Последний раз редактировалось sekenr; 24.10.2010 в 16:25.
sekenr вне форума Ответить с цитированием
Старый 24.10.2010, 16:25   #19
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Цитата:
И еще я не совсем понимаю смысл такого объявления : TArRGBTriple = array[0..0] of TRGBTriple; разве это не пустой массив выйдет?
А где вы тут видите массив вообще? подзадумайтесь
BOBAH13 вне форума Ответить с цитированием
Старый 24.10.2010, 16:33   #20
sekenr
 
Регистрация: 23.10.2010
Сообщений: 6
По умолчанию

ну насколько я помню array это массив =\

каюсь, понял ошибку

Последний вопрос (надеюсь) какие параметры для sampletime и psample предполагаются? я так и не пойму с какими параметрами запускать эту функцию. Что конкретно нужно задавать?

все решалось с помощью IBasicVideo и метода GetCurentImage.. а то, что якобы "готовое" во-первых, сырой код без коментариев, а во-вторых, если уж взялся отвечать - отвечай по-человечески, а не выстебывайся. Да и в принципе твой вариант ничерта не дает=)

Последний раз редактировалось mihali4; 02.12.2010 в 17:12.
sekenr вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Видеоплеер blatm100 Фриланс 12 26.04.2010 12:07
Видеоплеер littlecoder Мультимедиа в Delphi 3 16.12.2008 01:09
Ищу видеоплеер Квэнди Софт 8 25.06.2008 14:32
Как открыть БД, написанную в Delphi если нf другой машине Delphi нет? dagarik БД в Delphi 7 22.10.2007 17:54
компонент видеоплеер @Ri$91 Общие вопросы Delphi 5 25.11.2006 13:55