Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Наборы обновлений для Windows XP/2003/Windows 7 (http://forum.oszone.net/forumdisplay.php?f=62)
-   -   K-Lite Mega Codec Pack (http://forum.oszone.net/showthread.php?t=64913)

seriy_wolk 26-04-2006 11:40 431713

K-Lite Mega Codec Pack
 
Никто не пробовал создать такой адон, поделитесь мнениями ...как бы это можно было обустроить

vampik 26-04-2006 13:43 431771

Сам k-lite mega codec pack вряд ли, т.к. он содержит варезные компоненты, тем более аддоном - нужен полноценный инсталлятор.
Я делал свой кодек-пак специально для диска с автоматической установкой Windows, но это уже не по теме этого раздела, а скорее в "Автоматическую установку приложений". Помимо полностью бесплатных кодеков и фильтров, он включает в себя перепакованный Real Alternative, который в свою очередь является перепаковкой бесплатной версии Real Player, и один фильтр из Nero (для проигрывания Quick Time файлов без Quick Time Player или Quick Time Alternative), который работает независимо от наличия на компьютере самого Nero и не требует серийного номера. Собственно, если модераторы не сочтут мой пак за варез (никаких серийников и взломанных файлов нет и не требуется), могу выложить в соседний раздел.

__Intruder__ 26-04-2006 15:22 431819

Когда то я делал свой пак видео-кодеков в inf-файле. Тогда для меня язык inf был немного сложен, и я полгода назад переписал его под Win32 инсталлер (InnoSetup). Но сам inf-файл еще остался.
Переделывать весь K-Lite Codec Pack - работа не из легких, да и в виде аддона он не всем пригодится. Я вот всегда использую только свой VideoCodecs Pack, т.к. мне нужны только компрессоры видеоданных (декомпрессоры не нужны, ибо для просмотра видео я использую MPlayer), причем установленны должны быть сразу несколько версий DivX(tm), чего я не видел ни в одном кодек паке. По этому я считаю более рациональным интегрировать в Windows XP MPlayer или VideoLAN, а K-Lite Codec Pack "фанаты-конвертаторы" могут и отдельно поставить.

Вот фрагменты VideoCodecs Pack из inf-файла.

Код:

[Version]
Signature = "$CHICAGO$"
Class = MEDIA

[SourceDisksNames]
1="VideoCodecs Pack - Install Disk",, 0001

[SourceDisksFiles]
DivX5.inf=1
; DivX 5.xx Codecs ----------------------------
divx502.dll=1
divx505.dll=1
divx511.dll=1
divx521.dll=1
divxdec.ax=1
mp4fil32.dll=1
; ---------------------------------------------
; DivX 3.11 Codecs ----------------------------
DivXc32.dll=1
DivXc32f.dll=1
; ---------------------------------------------
; DivX 6.0 Codec ------------------------------
divx.dll=1
divxsm.exe=1
divxsm.tlb=1
dpl100.dll=1
dpu11.dll=1
dpugui11.dll=1
dpus11.dll=1
dpv11.dll=1
dtu100.dll=1
qt-dx331.dll=1
; ---------------------------------------------
; XviD codec ----------------------------------
xvid.ax=1
xvidcore.dll=1
xvidvfw.dll=1
; ---------------------------------------------

[Installable.Drivers]
; DivX 5.xx Codecs ----------------------------
D502 = 1:divx502.dll, "vidc.D502", %DivX502% , , ,
D505 = 1:divx505.dll, "vidc.D505", %DivX505% , , ,
D511 = 1:divx511.dll, "vidc.D511", %DivX511% , , ,
D521 = 1:divx521.dll, "vidc.D521", %DivX521% , , ,
; ---------------------------------------------
; DivX 3.11 Codecs ----------------------------
DIV3 = 1:DivXc32.dll, "vidc.DIV3", %DivX311% , , ,
DIV4 = 1:DivXc32f.dll, "vidc.DIV4", %DivX311f% , , ,
; ---------------------------------------------
; DivX 6.0 Codec ------------------------------
DIVX = 1:divx.dll, "vidc.DIVX", %DivX600% , , ,
YV12 = 1:divx.dll, "vidc.YV12", %DivX600% , , ,
; ---------------------------------------------
; XviD codec ----------------------------------
XVID = 1:xvidvfw.dll, "vidc.XVID", %XviD% , , ,
; ---------------------------------------------

[DefaultInstall]
CopyFiles=MPEG4.Copy,MPEG4.Copy.Inf
Updateinis = MPEG4.Updateini
addreg = MPEG4.AddReg,MPEG4.DoReg
MediaType = SOFTWARE

[DefaultInstall.ntx86]
CopyFiles=MPEG4.Copy,MPEG4.Copy.Inf
addreg = MPEG4.AddReg,MPEG4.AddRegNT,MPEG4.DoReg
MediaType = SOFTWARE

[Remove_DivX]
AddReg = MPEG4.Unregister
DelReg = MPEG4.DelReg
DelFiles = MPEG4.Copy,MPEG4.Copy.Inf
UpdateInis = MPEG4.DelIni

[MPEG4.Copy]
; DivX 5.xx Codecs ----------------------------
divxdec.ax
divx502.dll
divx505.dll
divx511.dll
divx521.dll
DivXc32.dll
DivXc32f.dll
mp4fil32.dll
; ---------------------------------------------
; DivX 6.0 Codec ------------------------------
divx.dll
divxsm.exe
divxsm.tlb
dpl100.dll
dpu11.dll
dpugui11.dll
dpus11.dll
dpv11.dll
dtu100.dll
qt-dx331.dll
; ---------------------------------------------
; XviD codec ----------------------------------
xvid.ax
xvidcore.dll
xvidvfw.dll
; ---------------------------------------------

[MPEG4.Copy.Inf]
DivX5.inf

[MPEG4.UpdateIni]
; DivX 5.xx Codecs ----------------------------
system.ini, drivers32,,"vidc.D502=divx502.dll"
system.ini, drivers32,,"vidc.D505=divx505.dll"
system.ini, drivers32,,"vidc.D511=divx511.dll"
system.ini, drivers32,,"vidc.D521=divx521.dll"
; ---------------------------------------------
; DivX 3.11 Codecs ----------------------------
system.ini, drivers32,,"vidc.DIV3=DivXc32.dll"
system.ini, drivers32,,"vidc.DIV4=DivXc32f.dll"
; ---------------------------------------------
; DivX 6.0 Codec ------------------------------
system.ini, drivers32,,"vidc.DIVX=divx.dll"
system.ini, drivers32,,"vidc.YV12=divx.dll"
; ---------------------------------------------
; XviD codec ----------------------------------
system.ini, drivers32,,"vidc.XVID=xvidvfw.dll"
; ---------------------------------------------

[MPEG4.DelIni]
; DivX 5.xx Codecs ----------------------------
system.ini, drivers32,"vidc.D502=divx502.dll",
system.ini, drivers32,"vidc.D505=divx505.dll",
; ...

[MPEG4.AddReg]

[MPEG4.AddRegNT]
; DivX 5.xx Codecs ----------------------------
HKLM,SOFTWARE\Microsoft\Windows NT\CurrentVersion\drivers.desc,divx502.dll,,%DivX502%
HKLM,SOFTWARE\Microsoft\Windows NT\CurrentVersion\drivers32,vidc.D502,,divx502.dll
; ...
; ---------------------------------------------
; XviD codec ----------------------------------
HKLM,SOFTWARE\Microsoft\Windows NT\CurrentVersion\drivers.desc,xvidvfw.dll,,%XviD%
; ---------------------------------------------

HKLM,%UnInstallPath%,DisplayName,,%UninstallDispName%
HKLM,%UnInstallPath%,UninstallString,,"%11%\rundll32.exe setupapi,InstallHinfSection Remove_DivX 132 %17%\%InfFile%"

[MPEG4.DoReg]
; DivX 5.xx Codecs ----------------------------
HKLM,Software\Microsoft\Windows\CurrentVersion\RunOnce\Setup,"Registering %DivX502% ...",,"%11%\regsvr32.exe /s %11%\divx502.dll"
; ...

[MPEG4.DelReg]
; DivX 5.xx Codecs ----------------------------
HKLM,SYSTEM\CurrentControlSet\Control\MediaResources\icm\vidc.D502
HKLM,SYSTEM\CurrentControlSet\Control\MediaResources\icm\vidc.D505
; ...

; DivX 5.xx Codecs ----------------------------
HKLM,SOFTWARE\Microsoft\Windows NT\CurrentVersion\drivers.desc,divx502.dll,,""
; ...

; DivX 5.xx Codecs ----------------------------
HKLM,SOFTWARE\Microsoft\Windows NT\CurrentVersion\drivers32,vidc.D502,,""
; ...

[MPEG4.Unregister]
; DivX 5.xx Codecs ----------------------------
HKLM,Software\Microsoft\Windows\CurrentVersion\RunOnce\Setup,"Unregistering %DivX502% ...",,"%11%\regsvr32.exe /s /u %11%\divx502.dll"
HKLM,Software\Microsoft\Windows\CurrentVersion\RunOnce\Setup,"Unregistering %DivX505% ...",,"%11%\regsvr32.exe /s /u %11%\divx505.dll"
; ---------------------------------------------
; ...
; ---------------------------------------------
; XviD codec ----------------------------------
HKLM,Software\Microsoft\Windows\CurrentVersion\RunOnce\Setup,"Unregistering %XviD% ...",,"%11%\regsvr32.exe /s /u %11%\xvidvfw.dll"
HKLM,Software\Microsoft\Windows\CurrentVersion\RunOnce\Setup,"Unregistering %XviD% Decoder ...",,"%11%\regsvr32.exe /s /u %11%\xvid.ax"
; ---------------------------------------------

[DestinationDirs]
DefaultDestDir = 11
MPEG4.Copy = 11
MPEG4.Copy.Inf = 17

[Strings]
InfFile="DivX5.inf"
; Codecs Name --------------------------
DivX502="DivX 5.02 Pro Codec"
DivX505="DivX 5.05 Pro Codec"
DivX511="DivX 5.11 Pro Codec"
DivX521="DivX 5.21 Pro Codec"
DivX311="DivX 3.11 Slow Motion Codec"
DivX311f="DivX 3.11 Fast Motion Codec"
DivX600="DivX 6.00 Pro Codec"
XviD="XviD MPEG-4 Codec"
; --------------------------------------
UninstallDispName="VideoCodecs Pack"
UnInstallPath="Software\Microsoft\Windows\CurrentVersion\Uninstall\DIVXCodec"
MediaClassName="Media Devices"
mfgname="No more honey !"


vampik 26-04-2006 15:47 431828

Зачем 7 разных DivX-ов и XVid?? Я использую один ffdshow и всем доволен. И бесплатно, и удобно. А с inf-ом проблема не в сложности, а в недостатке возможностей.

vek 26-04-2006 16:12 431843

__Intruder__
Цитата:

причем установленны должны быть сразу несколько версий DivX(tm)
Согласен с vampik. Зачем?


__Intruder__ 26-04-2006 16:27 431851

Лично мне одного не достаточно. Я часто использую DivX 5.0.5, но бывает, что нужен DivX 5.2.1 или DivX 5.1.1. Версия 5.0.5 хорошо подходит для компрессии видео из уже хорошо сжатого источника, в то время как DivX 5.2.1 показвает хороший результат при конвертации DVD-видео высокого качества (не те, что по 3 фильма на диск :) ).

Цитата:

А с inf-ом проблема не в сложности, а в недостатке возможностей.
Например?.. ;)

vampik 26-04-2006 17:03 431864

При использовании inf-а для заверщения установки необходимо перезагрузить компьютер (чтобы запустились RunOnce с регистрацией, заменились старые файлы, если таковые были). При использовании инсталлятора такая необходимость отсутствует. Зарегистрировать/дерегистрировать можно сразу, также можно переименовать старые файлы, поставить их на удаление при перезагрузке и сразу скопировать на их место новые. Также можно предложить пользователю выбрать конфигурацию звуковой системы, чтобы не лазить потом по настройкам. Ну и, конечно же, lzma сжатие дистрибутива.

XXXler 26-04-2006 17:26 431873

vampik
Цитата:

При использовании inf-а для заверщения установки необходимо перезагрузить компьютер
Зачем? В инфах все тобой описанное реализовано, если копируемый файл существует и занят, то будет перезаписан с переименованием старого и удалением его при перезагрузке с соответствующим запросом в конце (которого при установке винды видно не будет), регистрация dll там тоже имеется, конфигурацию гурманы пускай сами задают.
Цитата:

lzma сжатие дистрибутива
экономный, млин, 3 архиваторами упаковал-бы ради разницы в 100Кб

__Intruder__ 26-04-2006 18:22 431894

vampik, XXXler прав ;). Вообще лично я, создавая установщики на основе inf-файлов, серъезных недостатков не видел ниразу.
RunOnce с регистрацией можно запустить сразу во время установки.
Цитата:

[MPEG4.DoReg]
; DivX 5.xx Codecs ----------------------------
HKLM,Software\Microsoft\Windows\CurrentVersion\RunOnce\Setup,"Registering %DivX502% ...",,"%11%\regsvr32.exe /s %11%\divx502.dll"
Доступ к реестру есть, к ини-файлам - есть, к файловой системе - тоже есть. Что же еще надо? K-Lite [Mega] Codec Pack без особых проблем можно организовать в виде аддона. Другое дело, что выбор установочных кодеков из списка нельзя (насколько я знаю) сделать через инф. По этому такой аддон не сможет стать популярным - кто то захочет видеть QuickTime Alternative, а кому то он не нужен, но нужен On2 VP7. Вобщем, я такое дополнение писать не буду. Если кого то из вас постигло вдохновение, то вперед ;) .

XXXler 26-04-2006 19:06 431901

Цитата:

Другое дело, что выбор установочных кодеков из списка нельзя (насколько я знаю) сделать через инф
можно сделать одну корневую, для каждого кодека отдельную секцию и вставить все в [Optional Componets], а дальше решается параметром Modes каждой секции...
Цитата:

RunOnce с регистрацией можно запустить сразу во время установки.
я мож чето не доганяю, а зачем через RunOnce? Почему нельзя через параметр RegisterDlls?
http://msdn.microsoft.com/library/de...61429d.xml.asp

vampik 26-04-2006 19:44 431911

RunOnce во время установки - вообще странная вещь. Если запускать inf через setupapi.dll, то сразу выполнится всё содержимое RunOnce, а не только подраздела Setup, а если через advpack.dll, то и RunOnce, и RunOnce\Setup проигнорируются; не знаю, что будет при интеграции в sysoc, но в случае с inf'ами я принимаю только один вариант - inf+дистрибутив в 7-zip sfx.

XXXler 26-04-2006 21:45 431950

vampik
Цитата:

inf+дистрибутив в 7-zip sfx.
это на усмотрение автора.

__Intruder__ 26-04-2006 23:42 431972

Через setupapi.dll у меня все работало, там действительно не обязательно подраздел с именем Setup делать ;). Только я не в курсе, как это (то есть установку с вызовом метода из satupapi.dll) можно сделать через sysoc.inf. А если делать через advpack.dll, то там есть Run, который тоже неплохо справляется. Но даже не в этом дело, если надо просто зарегистрировать dll, то совет уважаемого XXXler как раз кстати. Пока что ограничения, согласитесь, не существенные.

vampik 26-04-2006 23:55 431977

Нет уж, переводить всё в формат inf из своего готового nsis-скрипта я не буду ;) Обновлю немного, добавлю поддержку конфигурации установки ini-файлом и выложу в автоустановку программ.
P.S. setupapi лучше вообще не пользоваться - RunOnce должен был бы выполняться при загрузке системы, в отличие от RunOnce\Setup, и такое поведение может иметь нежелательные последстивия в случае, если другие инсталляторы, запущенные ранее, что-нибудь туда прописали.

XXXler 27-04-2006 12:33 432142

vampik, смысл? KLMP с параметром -MakeUnattended создает ини-файл для тихой установки с полным выбором компонетов и настроек доступных при обычной установке...

Jilted 09-02-2007 08:14 547665

aset
Выше же сказали - смысл какой?
Цитата:

KLMP с параметром -MakeUnattended создает ини-файл для тихой установки с полным выбором компонетов и настроек доступных при обычной установке...

hobbit25 09-02-2007 10:22 547715

1. на чистой машине ставишь ручками, так как нравится KLiteCodecPack,
2. сохраняешь ветку реестра
Код:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\KLiteCodecPack_is1]

3.затем прописываешь установку туда, чем пользуешься типа
Код:
Regedit /S KMpack.reg
start /wait KLiteCodec.exe /silent /sp-
(главное сначало добавить регфайл, а потом ставить кодеки)и получаешь весь твой желаемый набор

Так помоеу намного проще чем с ИНИ заморачииваться!!!

Jilted 09-02-2007 15:13 547814

hobbit25
По-моему это ты сейчас ОЧЕНЬ замороченный способ привел...
С ИНИ все намного проще. Сгенерировал ИНИ, написал батник, создал SFX. ВСЁ!

DeMoH666 15-02-2007 11:45 550268

вопрос такой:

я сделал себе самораспаковывающийся архив по инишке - все нормально работает, но кода попытался интегрировать его UpdatePack'ом, то при установке операционки его просто игнорируют, хотя в дистрибе он присутствует...

как сделать так чтобы все нормально ставилось при установке?

hobbit25 15-02-2007 13:19 550339

Jilted Это все легко на самом деле я тоже пакую в SFX и в CMD прописываю

Regedit /S setup.reg
start /wait klcodec281f.exe /silent /sp-
exit

Моно таким спсобом на любой машине посавить!

а можн просто еще и интегрировать сразу через RunOncex.cmd

REG ADD %KEY%\%i% /VE /D "KL" /f
REG ADD %KEY%\%i% /V 1 /D "%CDROM%\DRV\ Regedit /S setup.reg " /f
REG ADD %KEY%\%i% /V 2 /D "%CDROM%\DRV\klcodec281f.exe" /f
SET /A i+=1


Время: 14:01.

Время: 14:01.
© OSzone.net 2001-