Приветствую всех. Если не сложно подскажите интернет ресурс, где сие можно взять. Интересует собно хедер, +описалово использования, на крайняк без хедера. В google найти не удалось, везде качалово самой библы. .
n0name Спасибо, похоже на то, опробую. Правда в экспорте библы есть ещё функции, работы с окном например. Может она умеет сразу рендерить в окно!?
Ну SDK платно, и последнии версии доступны только зареганым пользователям по FTP. Не самую новую можешь скачать http://kosfiz.narod.ru/sdk/binksdk.7z
Решил продолжить данную темку. n0name Сенкью вери мач. Сдк этот похоже тоже не официальный, а хакерский. Так как инфа там по существу только та что на вики, плюс некоторые наработки для удобства, но для разгона очень помогло. Проблема в том, что извлечь видео данные с плоскостей как там написано оказалось невозможным. Зато после непродолжительного анализа одной игры удалось более менее понять работу одной из функций, которая как раз позволяет извлечь эти данные. Засим всем представляю сделанный плеер. P.S Новая версия 0.3.2.2, конвертирует в avi.
Для него необходима сама Binkw32.dll (работает с версиёй 1.8, с другими не проверял) Аттачу для тех у кого её нету.
Для тех кто в танке. Данный плейер проигрывает видео .bik формата, широко юзаемого в играх. Качайте, комментируйте, только не забудьте положить в папку с плейером Binkw32.dll.
Интересно - файл в бик формате это нечто уже заранее смонтированное, обработанное и запихнуто по типу AVI, или нечто вроде набора моделей со скриптами для действия и видео которое видим на экране генерируется в реальном времени? В частности интересует возможность вытаскивания моделей из ролика.
Booster,твой плеер хорош,но ты бы мог продолжить его модернизацию,например,сделать конвертер bik->avi(это возможно)
Lamer_Pavel Я вообщем-то и не против, тем более фича была бы интересная. Только я же без SDK работаю, так что всех возможностей не знаю. Если только просто декодированные данные кидать к файл. Но тут есть пара трудностей: пока не понятно как быть со звуком, в плеере звук играет сама библиотека, самих данных я не получаю. Хотя если подумать, то можно было бы эту проблему решить. Потом я не знаю формата AVI, имхо там несколько его вариаций (Майкрософтский и ещё какой-то). С майкрософтским надо вроде через API, с другим вообще не знаю как.
Lamer_Pavel Вообще-то AVI - это контейнер, нужно еще кодек определить. Иначе получается, что ты универсальный конвертор предлагаешь сделать. ======================================== http://www.radgametools.com/binkhlp2.htm Раз уж они quicktime в AVI конвертируют, то родной bik - наверняка.
valterg В RAD tools (бесплатный) есть и проигрыватель и конвертор. Проигрыватель там гумно. Конвертер нормальный.
Booster,искав долго информацию про bik в инете,наткнулся на коды и примеры В архиве есть список флагов для функции BinkOpen(их там примерно 30),практически все функции и структуры,но это часть BinkSDK(нету некоторых header-ов),но я думаю,что ты разберёшся,как их использовать. Качай отсюда. ------------------- http://avangard.data.cod.ru/26082833136 или http://bbs.vbstreets.ru/viewtopic.php?t=35098&highlight=bik ------------------- P.S В RAD tools конвертер очень медленно конвертирует в bik,а при конвертировании bik->avi надо выбирать самые низкие параметры аудио,т.к иначе он это делать не будет(поэтому насладится stereo-звуком врятли можно будет). Booster,прежде чем вывести видео фаил на обьект с hwnd(как я понял),например,форма(используя BinkBufferSetHWND) ты копируешь файл в буфер. Если этим буфером можно манипулировать,то и его можно использовать И еще:посмотри сюда http://www.theswapmeet-forum.com/viewtopic.php?p=38243&sid=22c5785c89954ebc505b1302dd464b86
Что и неудивительно, ибо заявлена упаковка в 3 раза лучшая, чем для обычных кодеков. За все надо платить.
Lamer_Pavel Спасибо, буду разбирать, вроде есть кое-что интересное, в особенности касательно звука. Проблем с видеоданными нету. Функция которую я откопал, прекрасно их декодирует. То есть я получаю указатель на буфер с декодированными видео данными, а затем копирую их на поверхность DirectDraw. Но вот звук играет сама библиотека (Miles, DirectSound, WaveOut). В той доке, что ты передал вроде описана функция передающая звуковой буфер. Так что буду смотреть. Скорее всего c AVI буду работать через стандартный механизм WinAPI, со всеми вытекающими последствиями.
Не обязательно работать с AVI при помощи WinAPI. На sourceforge.net,codeplex.com поищи проекты,связанные с FFMpeg,Mplayer(а именно с их dll avcodec.dll,avformat.dll и т.п).Они полностью с открытым кодом и умеют конвертировать не только в AVI(могут в MP4,OGM,MPG и т.п).Ты им должен будешь передать указатель на буфер,всевозможные параметры,а они всё cделают сами(как я думаю).Но на мой взгляд,легче будет использовать WinAPI А насчет звука,вроде вот это ------------------------------ struct BINKSND; typedef S32 (RADLINK PTR4* BINKSNDOPEN) (struct BINKSND PTR4* BnkSnd, U32 freq, S32 bits, S32 chans, U32 flags, HBINK bink); typedef S32 (RADLINK PTR4* BINKSNDREADY) (struct BINKSND PTR4* BnkSnd); typedef S32 (RADLINK PTR4* BINKSNDLOCK) (struct BINKSND PTR4* BnkSnd, U8 PTR4* PTR4* addr, U32 PTR4* len); typedef S32 (RADLINK PTR4* BINKSNDUNLOCK) (struct BINKSND PTR4* BnkSnd, U32 filled); typedef void (RADLINK PTR4* BINKSNDVOLUME) (struct BINKSND PTR4* BnkSnd, S32 volume); typedef void (RADLINK PTR4* BINKSNDPAN) (struct BINKSND PTR4* BnkSnd, S32 pan); typedef void (RADLINK PTR4* BINKSNDMIXBINS) (struct BINKSND PTR4* BnkSnd, U32 PTR4* mix_bins, U32 total); typedef void (RADLINK PTR4* BINKSNDMIXBINVOLS) (struct BINKSND PTR4* BnkSnd, U32 PTR4* vol_mix_bins, S32 PTR4* volumes, U32 total ); typedef S32 (RADLINK PTR4* BINKSNDONOFF) (struct BINKSND PTR4* BnkSnd, S32 status); typedef S32 (RADLINK PTR4* BINKSNDPAUSE) (struct BINKSND PTR4* BnkSnd, S32 status); typedef void (RADLINK PTR4* BINKSNDCLOSE) (struct BINKSND PTR4* BnkSnd); typedef BINKSNDOPEN (RADLINK PTR4* BINKSNDSYSOPEN) (UINTa param); typedef struct BINKSND { BINKSNDREADY Ready; BINKSNDLOCK Lock; BINKSNDUNLOCK Unlock; BINKSNDVOLUME Volume; BINKSNDPAN Pan; BINKSNDPAUSE Pause; BINKSNDONOFF SetOnOff; BINKSNDCLOSE Close; BINKSNDMIXBINS MixBins; BINKSNDMIXBINVOLS MixBinVols; U32 sndbufsize; // sound buffer size U8 PTR4* sndbuf; // sound buffer U8 PTR4* sndend; // end of the sound buffer U8 PTR4* sndwritepos; // current write position U8 PTR4* sndreadpos; // current read position UINTa sndcomp; // sound compression handle U32 sndamt; // amount of sound currently in the buffer U32 sndconvert8; // convert back to 8-bit sound at runtime U32 sndendframe; // frame number that the sound ends on U32 sndprime; // amount of data to prime the playahead U32 sndpad; // padded this much audio U32 BestSizeIn16; U32 BestSizeMask; U32 SoundDroppedOut; S32 NoThreadService; S32 OnOff; U32 Latency; U32 VideoScale; U32 freq; S32 bits,chans; U8 snddata[256]; } BINKSND; -------------------------------
Booster,хедер,которого не хватало(radbase.h) находится во втором файле в архиве,так что получается,что это практически полное SDK