![]() |
Модераторы: Rickert, Alexeis, BorisVorontsov |
![]() ![]() ![]() |
|
cipher |
|
|||
Unregistered |
Господа есть вопрос на засыпку - надо взять avi пожатый divx, xvid либо mpeg-2(любым из них) и распаковать, а каждый кадр натянуть как текстуру на некую поверхность. Как это провернуть? У Nehe есть пример(за номером 35), но там avi не сжат и нет звука. А может кто подскажет где взять бесплатную компонету для VisualC++ чтобы распаковывать любой из этих форматов?
|
|||
|
||||
empter |
|
|||
![]() Фанат ![]() Профиль Группа: Участник Сообщений: 224 Регистрация: 20.5.2005 Репутация: 3 Всего: 4 |
DitectX SDK9.0.
После установки заходи в папку Samples там куча проигырывателей всего что тольно можно на C++, C#, VB. Одно НО в коде можно разобраться, если есть опыт работы с DirectX. Другой вариант - поискать ActiveX компонент, но тогда фишка:
не получится. |
|||
|
||||
Guest |
|
|||
Unregistered |
А с использованием Video for Windows можно как нибудь провернуть такой фокус?
|
|||
|
||||
cipher |
|
||||||
Unregistered |
Я думаю что надо всё-таки юзать video for windows в связке с Video Compression Manager. Но у меня что-то не выходит ничего
...
без сжатия всё нормально играется, а вот как распаковать не пойму. Кодеки в системе стоят, crystal player играет эту авиху. |
||||||
|
|||||||
cipher |
|
|||
Unregistered |
Я что-то не пойму неужели никто ни разу не юзал Video for Windows, что никто не пытался проиграть XviD или DivX? Большая прозьба откликнуться господа программеры!
|
|||
|
||||
p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 2 Всего: 112 |
Сейчас точно сказать не могу, но насколько я помню, если в AVIStreamGetFrameOpen указать формат битмапа, то распаковывать вручную ничего не надо будет - фреймы будешь получать распакованными...
И имхо стоит порыть DirectShow, там скорее всего должна быть такая фишка, как рендеринг в текстуру или поверхность, тогда будет всё очень просто... Но я этого не делал... -------------------- С уважением, г-н Посол. |
|||
|
||||
cipher |
|
|||
Unregistered |
p0s0l наконец-то хоть кто-то понимает про чё речь идёт. А по подробнее можно про LPBITMAPINFOHEADER(ведь речь про него верно?). Надо юзать ICCompressGetFormat()? Я блин всё знаю, но никак не могу сложить этот пазл. Не получается в правильной последовательности применить операторы. Может кто поможет примером?
![]() Что касается этого треклятого DirectX - ну не использую я его, ну вот такой я баран, все в OGL хочу реализовать |
|||
|
||||
p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 2 Всего: 112 |
Суть такова: в AVIStreamGetFrameOpen нужно указать формат, в котором ты хочешь получать кадры с помощью последующих вызовов AVIStreamGetFrame... Никаких ICCompressGetFormat использовать не надо...
Примерно как-то так должно быть:
-------------------- С уважением, г-н Посол. |
|||
|
||||
cipher |
|
|||
Unregistered |
p0s0l огромное мерси, немного поморочил и всё вышло именно так как ты и говоришь
|
|||
|
||||
Guest |
|
|||
Unregistered |
Встала другая проблема, а как проиграть аудио поток из этой avi? Статейку как выдернуть данные аудио потока я нашел, но автор не говорит чем потом всё это богатство проиграть(http://www.gamedev.net/reference/articles/article840.asp). Попробовал MCI'ные sendCommand и sendString ничего не выходит.
|
|||
|
||||
chaos |
|
|||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: нет Всего: 44 |
смотри макросы начинающиеся на MCIWnd
|
|||
|
||||
cipher |
|
|||
Unregistered |
Поробовал налабать консольку с таким кодом. m_hPlayer равен 0, а result во всех случаях 0. Звук не проигрывается это раз. Два, мне интересно будет ли он проигрываться отдельным потоком, поскольку мне надо и видео параллельно выводить?(аудио можно и из wav читать, а не совать потоком в avi). |
|||
|
||||
chaos |
|
||||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: нет Всего: 44 |
MCIWndCreate создает контрол, так что консоль не подойдет, необходимо оконное приложение |
||||
|
|||||
cipher |
|
|||
Unregistered |
Попробовал воткнуть в WinApi тоже ничего не проигрывает. В MCIWndCreate() указал HWND и HINSTANCE
|
|||
|
||||
![]() ![]() ![]() |
Вы можете найти полезным что... | |
|
|
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |