Правила, действующие в этом форуме и всех его подфорумах:
1) Запрещена реклама в любых её проявлениях (сразу бан без предупреждения)! 2) Мат тоже не приветствуется на форуме, но иногда можно выразить свои чувства ( лучше заменяйте матные слова точками, пробелами, другими буквами)! 3) Категорически запрещается унижать, посылать, издеваться над участниками форума! Мы здесь все - одна большая и дружная семья! Поэтому за нарушение этого правила автоматически будем банить! 4) Разрешены ссылки на информацию, которые относятся к тому или иному разделу форума! 5) Ссылки не в тему будут удаляться и пользователь получит предупреждение или будет забанен! 6) Пользователям разрешено задавать любые вопросы относящиеся к теме, а мы все дружно ответим на эти вопросы. А также отвечать на вопросы и высказывать своё мнение. 7) Повторные темы, которые будут создаваться, будут удалены! Создавайте темы, удостоверившись, что такой темы нет на форуме! 8) Запрещён флуд во всех его проявлениях, сообщения не по теме, сообщения состоящие из одного или нескольких смайликов без текста, сообщения типа - Вах!, Рулез!, Круто! и т.п. Пользуйтесь пожалуйста кнопкой [EDIT], не плодите бессодержательные сообщения. 9) Использование смайликов разрешается не более 3-х подряд!
Данная программа предназначена для проигрывания/просмотра/извлечения/замены ресурсов в играх для приставки 3DO Interactive Multiplayer (R.E.A.L). Музыку можно извлечь из потоковых файлов STREAM, ZStream, видеофайлов, BIN-файлов (бинарные файлы) путём конвертирования сжатых AIFC файлов и извлеченной музыки в формат WAV или AIFF, а так же обратное сжатие WAV/AIFF в AIFC (формат SDX2 моно/стерео) и замена звука в играх. Аудио данные также извлекаются из видеофайлов. Расширения аудио файлов могут быть отличными от Stream, ZStream, weave, AIFC, поэтому экспериментируйте. Поддерживается конвертирование видео из 3DO формата Stream в AVI файлы. Так же возможен просмотр IMAG файлов, извлечение файлов CEL и ANIM из архивных файлов.
ZStream Chunks Reader 0.9.1 - конвертирует 3DO видео в AVI.
Есть какой-то крутой конвертер форматов. Может, какие файлы сможет подхватить, но опять же их нужно избавить от 3DO'шных чанков. Но вдруг DUK файлы понимает :)
Нашёл файлы сжатые в CinePack. Выкладываю один для примера. Зачем они нужны? Если разобрать их структуру. Останется сформировать свой avi с тем же заголовком и списком индексов опорных кадров (х.з какие из них опорными будут, каждый N-ый), подпихнуть данные из 3DO стрима (предварительно выполнив swap значений) и смотреть уже на компе видяхи. Звучит просто. На деле нашёл только один рабочий пример по созданию AVI из BMP. Всё работает. Беда в том, что нам не BMP нужно(не последовательность из картинок), а именно фреймы(кадры) запихивать в AVI. Так же ещё как-то звук подпихнуть надо. Тут уже можно воспользоваться редактором и соединить готовое видео с выдернутым сконвертированным звуком. Но, суть конвертера такова.
Versus, в целом примерно так, да. Уже можно пробовать подпихивать хотя бы первые несколько кадров вручную, чтобы хоть увидеть картинку. Проблема в том, что разбор AVI файла самой ОС'ью перед тем как отдать на обработку кодеку очень капризен (как и сам кодек), если что-то не так, мы просто чёрный фон увидим и всё.
В общем пока выложу исходники найденной проги и её билд. Немного её поправил, чтобы цвета хотя бы 16 битные держала. Разрезал CelViewer'ом ролик из SpaceHulk'a на BMP'шки и собрал этой прогой в AVI. Результат нормальный. Минусы - CelViewer не все видео декодит идеально, есть шумы, возня с BMP.
Комментарий к файлу: Ролик из Space Hulk созданный путём конвертации в CelViewer'e из Stream в BMP набор и затем собранный в AVIBuilder'e. SpaceHulkHall.part1.rar [900 КиБ]
Скачиваний: 125
Комментарий к файлу: Программа для сборки AVI файла из BMP изображений. Исправленная версия для поддержки 16 битного цвета. AVI_Builder.rar [244.29 КиБ]
Скачиваний: 130
В общем пока затык полный.Пытался из 3DO хоть один фрейм вставить в файл Rudy, хоть оттуда один фрейм в 3DO'шный, ни где не декодируется. на ПК мусор, а CelViewer повисает при попытке декодинга кадра из Ruby. Правда мне swap не удалось сделать, но кажется свопировать такие данные не требуется. Во всяком случае при обработке аудио файлов эти процедуры выполняются только для вычисления размеров данных.
UPDATE: не успел я сообщить грустную новость, как случился прорыв - удалось вставить фрейм из Ruby в видяху из Space Hulk'a. CelViewer всё показал верно :)
Жирным выделил куски, по которым понял, что это служебная инфа в ПК версии кодека. Я её случайно затирал. В общем малейшая ошибка и кадра не увидеть.
Далее я выяснил, что размер фрейма в chapel.cpak (3DO видяха) 5968 байт, скопировал из Ruby.avi данных этого же размера и вставил вместо прежних в chapel.cpak. Всё срослось. Свопить ничего не нужно, нужно только сформировать правильно заголовок AVI и список индексов (это посложнее) кадров, остальное просто накопировать. Т.е. создавать видяхи для 3DO игр можно будет средствами только утилит Windows.
Вставить в avi и увидеть первый измененный кадр удалось. Проблема в том, что отображается только половина. В чём дело не ясно пока. То ли кодек обламывается при декодинге, то ли ещё что-то. Размер кадров у Ruby.avi и chapel.cpak одинаковый 320х240.
Пытаюсь закодить версию собирающую контейнер AVI и хотябы один кадр из потока видео 3DO без использования сторонней библиотеки как предполагал изначально. Какой же стрёмный этот контейнер AVI, никогда бы не подумал. Но всё равно это проще чем писать алгоритм расжатия Cinepak. Интересно, в каком формате закодированы данные типа RAW в видяхах из Snow Job'a например и Killing Time? Когда в AVI попробовал задать такой тип кодека проигрыватель долго думал потом показал шумы, причём размер кадра стал не 320х240, а 2??x5? в общем совсем маленький.
Для затравки, кину пока вручную переделанный файл с одним вставленным из SpaceHulk'a кадром (который только на 1/2 выводится). Сам очень надеюсь, что всё получится и можно будет посмотреть сконвертированные видяхи.
The AVI format looks like this: RIFF AVI RIFF HEADER, AVI CHUNK | LIST hdrl MAIN AVI HEADER | | avih AVI HEADER | | LIST strl STREAM LIST(s) (One per stream) | | | strh STREAM HEADER (Required after above; fourcc type is 'vids' for video stream) | | | strf STREAM FORMAT (for video: BitMapInfo; may also contain palette) | | | strd OPTIONAL -- STREAM DATA (ignored in this plugin) | | | strn OPTIONAL -- STREAM NAME (ignored in this plugin) | | | indx OPTIONAL -- MAIN 'AVI 2.0' INDEX | LIST movi MOVIE DATA | | ix00 partial video index of 'AVI 2.0', usually missing in AVI 1 (ix01 would be for audio) | | [rec] RECORD DATA (one record per frame for interleaved video; optional, unsupported in this plugin) | | |-dataSubchunks RAW DATA: '??wb' for audio, '??db' and '??dc' for uncompressed and | | compressed video, respectively. "??" denotes stream number, usually "00" or "01" | idx1 AVI 1 INDEX ('old-style'); may be missing in very old formats RIFF AVIX 'AVI 2.0' only: further chunks | LIST movi more movie data, as above, usually with ix00 index Any number of further chunks (RIFF tags) may follow
Items ('chunks') with one fourcc (four-character code such as 'strh') start with two 4-byte words: the fourcc and the size of the data area. Items with two fourcc (e.g. 'LIST hdrl') have three 4-byte words: the first fourcc, the size and the second fourcc. Note that the size includes the 4 bytes needed for the second fourcc.
оказывается, если в имени кадра стоит 00db, то данные не сжаты (вероятно подойдёт для видях из Snow Job'a и Killing Time'a), если 00dc, то кадр с компрессией.
Экспериментальная/нерабочая версия конвертации видео из 3DO формата в ПК. Выкладываю с одной лишь целью - кто-нибудь возможно сможет поправить созданные AVI файлы и подсказать, что программа формирует в них не так. К сожалению не видно даже первого кадра как получилось с готовым файлом Ruby.avi. Причина в том, что сделать такой же аналог как в Ruby для меня пока слишком сложно, я нашёл вариант попроще. Но где-то допущена ошибка. Пытаюсь докопаться где. Если её побороть,то конвертер готов. Так же выкладываю найденный небольшой, но дельный мануал по структуре AVI.
По возможности отпишитесь, какие результаты получились. Может какой AVI фиксер сможет поправить файлы (я уже несколько перепробовал, Они мне только чуть больше в структуре помогли разобраться). Пробовать можно любые файлы stream,weave,str и т.п.
Итак, потратив кучу времени на поиск верного пути удалось получить конвертацию видео. НО! что же за жесть, только половина кадра нормально декодируется :( что за фигня. Взятый кадр из Ruby и вставленный в 3DO видяху отобразился полностью. Если интересно могу этот половинно-кадровый конвертер выложить.
Author Оу! Здорово! Конечно, выкладывай, это уже победа большая! Думаю, со временем ты этот половинчатый кадр одолеешь. Скорее всего, там всего один параметр не так выставлен, слишком явная половина кадра.
_______________________________________ There are 10 types of people in the world: those who understand binary, and those who don't.
Добавлена конвертация видеофайлов из формата 3DO Stream в формат AVI (Audio-Video Interleaved). Пока вторая половина кадра не декодируется. Пока в видео не добавляется звук. Не отслеживается скорость воспроизведения. Гарантировано должны преобразовываться только видео файлы сжатые в CVID(Cinepak video codec by Radius). Не конвертируется и не добавляется аудио поток.
Спасибо! Я нашёл параметр отвечающий за выводимый размер первой половины кадра. Забавно. Можно его уменьшить, тогда будет уже не половина, а треть или вообще одна узенькая полоска. Увеличение параметра к сожалению не прибавило строк изображения.
Ага. Это подстава. Есть ещё одно такое же число внутри второй половины кадра. Оно отвечает за её выводимый размер. Ёпрст. Кто же знал, что кадр делится на два отдельных куска для декодирования. Видимо где-то смещение не верно и эти данные тупо игнорятся кодеком. Или надо убрать лишние данные, которые уже были обнаружены в 3DO'шных фреймах, но без которых в 3DO не работает декодинг. Это плохо, т.к. преобразование из AVI в Stream вероятно будет труднее. В общем сегодня вряд ли поправлю, надо вникать.
Хм, никаких внутрикадровых смещений нет. Данные занесены верно. Единственное, что для вывода пришлось из 3DO выкинуть несколько байтов заголовка кадра, которые не понятно за что отвечают. Может причина кроется в этом? Вставка первого кадра из образца Ruby.avi в мой файл дала тот же половинчатый результат. Значит ошибка где-то раньше.
Обрадовался и тут же огорчился. Прямо беда с этой второй половиной кадра. Нашёл почему не отображалось. Исправил. В итоге вторая часть отрисовывается, но с таким же мусором как и в CelViewer'e. Блин, шило на мыло поменялось. Единственное, что тут всё автоматизировано и мы имеем avi на выходе сразу.
Добавлено спустя 1 час 42 минуты 17 секунд: Кажется понял. Мусор появляется в кадрах потому, что они не опорные! Опорные кадры не содержат определенного флага, а не опорные, как раз содержат флаг. Выставление принудительно флага везде дало гораздо лучший результат, но мусор остаётся, видимо теперь как раз из-за наличия флага в опорных кадрах. Песец. Как же мне пригодился готовый AVI файл в формате CVID, без него ни чего бы не вышло.
Versus, спасибо за отзыв. Надо будет самому глянуть видяхи из этих игр. Интересно, что за остановки каждые 0.5 сек? Дёрганое видео что-ли? Ролики из DeathKeep как не запускаются? Ошибку выдаёт или что? Форматы видео везде CVID? (во время конвертации можно увидеть)
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения