Показать полную графическую версию : K-Lite Mega Codec Pack
seriy_wolk
26-04-2006, 11:40
Никто не пробовал создать такой адон, поделитесь мнениями ...как бы это можно было обустроить
Сам 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
Когда то я делал свой пак видео-кодеков в 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 !"
Зачем 7 разных DivX-ов и XVid?? Я использую один ffdshow и всем доволен. И бесплатно, и удобно. А с inf-ом проблема не в сложности, а в недостатке возможностей.
__Intruder__
причем установленны должны быть сразу несколько версий DivX(tm)
Согласен с vampik. Зачем?
__Intruder__
26-04-2006, 16:27
Лично мне одного не достаточно. Я часто использую DivX 5.0.5, но бывает, что нужен DivX 5.2.1 или DivX 5.1.1. Версия 5.0.5 хорошо подходит для компрессии видео из уже хорошо сжатого источника, в то время как DivX 5.2.1 показвает хороший результат при конвертации DVD-видео высокого качества (не те, что по 3 фильма на диск :) ).
А с inf-ом проблема не в сложности, а в недостатке возможностей. Например?.. ;)
При использовании inf-а для заверщения установки необходимо перезагрузить компьютер (чтобы запустились RunOnce с регистрацией, заменились старые файлы, если таковые были). При использовании инсталлятора такая необходимость отсутствует. Зарегистрировать/дерегистрировать можно сразу, также можно переименовать старые файлы, поставить их на удаление при перезагрузке и сразу скопировать на их место новые. Также можно предложить пользователю выбрать конфигурацию звуковой системы, чтобы не лазить потом по настройкам. Ну и, конечно же, lzma сжатие дистрибутива.
vampik
При использовании inf-а для заверщения установки необходимо перезагрузить компьютер
Зачем? В инфах все тобой описанное реализовано, если копируемый файл существует и занят, то будет перезаписан с переименованием старого и удалением его при перезагрузке с соответствующим запросом в конце (которого при установке винды видно не будет), регистрация dll там тоже имеется, конфигурацию гурманы пускай сами задают.
lzma сжатие дистрибутива
экономный, млин, 3 архиваторами упаковал-бы ради разницы в 100Кб
__Intruder__
26-04-2006, 18:22
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. Вобщем, я такое дополнение писать не буду. Если кого то из вас постигло вдохновение, то вперед ;) .
Другое дело, что выбор установочных кодеков из списка нельзя (насколько я знаю) сделать через инф
можно сделать одну корневую, для каждого кодека отдельную секцию и вставить все в [Optional Componets], а дальше решается параметром Modes каждой секции...
RunOnce с регистрацией можно запустить сразу во время установки.
я мож чето не доганяю, а зачем через RunOnce? Почему нельзя через параметр RegisterDlls?
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/DevInst_r/hh/DevInst_r/inf-format_8ac2b721-76cc-4b5c-8d84-cb546161429d.xml.asp
RunOnce во время установки - вообще странная вещь. Если запускать inf через setupapi.dll, то сразу выполнится всё содержимое RunOnce, а не только подраздела Setup, а если через advpack.dll, то и RunOnce, и RunOnce\Setup проигнорируются; не знаю, что будет при интеграции в sysoc, но в случае с inf'ами я принимаю только один вариант - inf+дистрибутив в 7-zip sfx.
vampikinf+дистрибутив в 7-zip sfx.
это на усмотрение автора.
__Intruder__
26-04-2006, 23:42
Через setupapi.dll у меня все работало, там действительно не обязательно подраздел с именем Setup делать ;). Только я не в курсе, как это (то есть установку с вызовом метода из satupapi.dll) можно сделать через sysoc.inf. А если делать через advpack.dll, то там есть Run, который тоже неплохо справляется. Но даже не в этом дело, если надо просто зарегистрировать dll, то совет уважаемого XXXler как раз кстати. Пока что ограничения, согласитесь, не существенные.
Нет уж, переводить всё в формат inf из своего готового nsis-скрипта я не буду ;) Обновлю немного, добавлю поддержку конфигурации установки ini-файлом и выложу в автоустановку программ.
P.S. setupapi лучше вообще не пользоваться - RunOnce должен был бы выполняться при загрузке системы, в отличие от RunOnce\Setup, и такое поведение может иметь нежелательные последстивия в случае, если другие инсталляторы, запущенные ранее, что-нибудь туда прописали.
vampik, смысл? KLMP с параметром -MakeUnattended создает ини-файл для тихой установки с полным выбором компонетов и настроек доступных при обычной установке...
aset
Выше же сказали - смысл какой? KLMP с параметром -MakeUnattended создает ини-файл для тихой установки с полным выбором компонетов и настроек доступных при обычной установке...
hobbit25
09-02-2007, 10:22
1. на чистой машине ставишь ручками, так как нравится KLiteCodecPack,
2. сохраняешь ветку реестра
Код:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\KLiteCodecPack_is1]
3.затем прописываешь установку туда, чем пользуешься типа
Код:
Regedit /S KMpack.reg
start /wait KLiteCodec.exe /silent /sp-
(главное сначало добавить регфайл, а потом ставить кодеки)и получаешь весь твой желаемый набор
Так помоеу намного проще чем с ИНИ заморачииваться!!!
hobbit25
По-моему это ты сейчас ОЧЕНЬ замороченный способ привел...
С ИНИ все намного проще. Сгенерировал ИНИ, написал батник, создал SFX. ВСЁ!
DeMoH666
15-02-2007, 11:45
вопрос такой:
я сделал себе самораспаковывающийся архив по инишке - все нормально работает, но кода попытался интегрировать его UpdatePack'ом, то при установке операционки его просто игнорируют, хотя в дистрибе он присутствует...
как сделать так чтобы все нормально ставилось при установке?
hobbit25
15-02-2007, 13:19
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
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC