View Full Version : More codecs support !!!
PatchWorKs
10th October 2003, 11:57
Theora(VP3+Vorbis)
Rududu (wavelet !)
and... well where is Vorbis support ?
OGM ? Matroska ?
Check out many interesting functions of DVX (http://www.planetdvb.net/)...
Happy coding !
len0x
10th October 2003, 12:42
If you make an effort and search development forum then you'll have no more questions...
PatchWorKs
10th October 2003, 13:11
I searched in the forums and here are the results...
VP3:
GK Development: Sorry - no matches. Please try some different terms.
GK: Faith or Reality? (http://forum.doom9.org/showthread.php?s=&threadid=50162&highlight=vp3)
Theora:
GK Development: Sorry - no matches. Please try some different terms.
GK: OGM container in GordianKnot (http://forum.doom9.org/showthread.php?s=&threadid=52478&highlight=theora)
Rududu:
GK Development: Sorry - no matches. Please try some different terms.
GK: More codecs support !!! (http://forum.doom9.org/showthread.php?s=&threadid=63035&highlight=rududu)
So, please let me understand what you mean for you'll have no more questions... thanks.
PatchWorKs
10th October 2003, 13:13
sorry... my mistake... this is a reply for the More codecs support !!! (http://forum.doom9.org/showthread.php?s=&threadid=63039) thread.
len0x
10th October 2003, 14:57
You could have at least found info about OGM, Vorbis and Matroska there which I was referring to ...
Regarding whatever codec (I have not heard about) support in GK - please find me a 100 ppl who'd be wishing to use those ones in GK and then I'd be willing to hear you out :)
P.S. I'd be especially careful when putting exclamation marks in your subject, btw...
jggimi
10th October 2003, 15:19
Thread called "?" merged with this thread, and moved to GKnot Development Forum.
stax76
10th October 2003, 16:59
it's a big problem to add codecs that don't save in the registry, I'll try to do it like described here http://forum.doom9.org/showthread.php?s=&threadid=63048
for codecs that save in the registry I made a eval function by compiling code on the fly and use dvx macros to be able to make a codec class to remove all codec specific code out of the program, adding a codec like shown below is than a matter of five lines code and five minutes work
Dim divxCodec As Codec.VideoCodec = New Codec.VideoCodec("DivX", "Software\DivXNetworks\DivX4Windows", "divx", "0x78766964,0,10000,0", 9, 2, Root.CurrentUser)
divxCodec.SetDynamic("Bitrate", "Return %video_bitrate% * 1000")
divxCodec.SetDynamic("Log File Name", "%source_dir%%target_name%_DivX.log")
divxCodec.SetDynamic("MV File Name", "%source_dir%%target_name%_DivXMV.bin")
divxCodec.SetDynamic("Nth Pass debug file name", "%source_dir%%target_name%_DivXNth.txt")
Dim xvidCodec As Codec.VideoCodec = New Codec.VideoCodec("XviD", "Software\GNU\XviD", "xvid", "0x64697678,0,10000,0", 2, 2, Root.CurrentUser)
Dim desired_size As String
desired_size = "Dim sec As Double = %target_seconds%" + vbCrLf
desired_size += "Dim rate As Double = CDbl((""%target_rate%"").Replace("","", "".""))" + vbCrLf
desired_size += "If %credits_start% > 0 Then" + vbCrLf
desired_size += "sec = %credits_start% / rate" + vbCrLf
desired_size += "End If" + vbCrLf
desired_size += "Return CInt((((%video_bitrate% * sec) / 8) / 1.024) + (sec * rate * 0.024))"
xvidCodec.SetDynamic("stats1", "%source_dir%%target_name%.stats")
xvidCodec.SetDynamic("desired_size", desired_size, List.First Or List.Second)
len0x
10th October 2003, 17:21
Originally posted by Dolemite
it's a big problem to add codecs that don't save in the registry, I'll try to do it like described here http://forum.doom9.org/showthread.php?s=&threadid=63048
That's not enough if you don't know the structure of codec string after base 64 decoding... And moreover with every single new version of the codec this has to be updated.
Originally posted by Dolemite
for codecs that save in the registry I made a eval function by compiling code on the fly and use dvx macros to be able to make a codec class to remove all codec specific code out of the program, adding a codec like shown below is than a matter of five lines code and five minutes work
Looks good, but only if don't care completely about all other parameters of the codec. If you do, then it's more dependency anyway...
stax76
10th October 2003, 20:53
That's not enough if you don't know the structure of codec string after base 64 decoding... And moreover with every single new version of the codec this has to be updated.
if you don't wan't to change the codec data for instance to change the bitrate then it shouldn't be hard to support those codecs if you know how to deal with the WinAPI (I try to figure it out atm). The user then must configure manually but it's better than no support
Looks good, but only if don't care completely about all other parameters of the codec. If you do, then it's more dependency anyway...
it's only a few default values which are not necessary but helpful for people who don't
know how to configure the codec
Dim divxCodec As Codec.VideoCodec = New Codec.VideoCodec("DivX", "Software\DivXNetworks\DivX4Windows", "divx", "0x78766964,0,10000,0", 9, 2, Root.CurrentUser)
divxCodec.SetStatic("Bidirectional Encoding", 1)
divxCodec.SetStatic("VBR Mode", CInt(DivXPasses.MultiFirst), List.First)
divxCodec.SetStatic("VBR Mode", CInt(DivXPasses.MultiNth), List.Second)
divxCodec.SetStatic("VBR Mode", CInt(DivXPasses.Quality), List.Credits Or List.CompTest)
divxCodec.SetStatic("use_mvfile", 1, List.First Or List.Second)
divxCodec.SetStatic("Max Keyframe Interval", 100)
divxCodec.SetStatic("Write log file", 1)
divxCodec.SetStatic("Disable feedback", 1)
divxCodec.SetStatic("Quality", 5)
divxCodec.SetStatic("Psychovisual Enhancement", 1)
divxCodec.SetStatic("5.0 Psychovisual Mode", 2)
divxCodec.SetStatic("VBR Quality v5", 250, List.Credits)
divxCodec.SetStatic("VBR Quality v5", 20, List.CompTest)
divxCodec.SetStatic("Disable Profile Page", 1, List.Credits Or List.CompTest)
divxCodec.SetDynamic("Bitrate", "Return %video_bitrate% * 1000")
divxCodec.SetDynamic("Log File Name", "%source_dir%%target_name%_DivX.log")
divxCodec.SetDynamic("MV File Name", "%source_dir%%target_name%_DivXMV.bin")
divxCodec.SetDynamic("Nth Pass debug file name", "%source_dir%%target_name%_DivXNth.txt")
PatchWorKs
11th October 2003, 00:25
Well, i don't know how mutch people are... but you can simply figure by clicking on [author] here (http://www.xiph.org/archives/theora/masterindex.html) and probably here too (http://zebra.fh-weingarten.de/~maxi/html/mplayer-dev-eng/).
Oh and, well... on Doom9 forums:
New A/V Formats - Codecs
New A/V Formats - Containers
seems that there are mutch more posts/threads there than on GKnot Dev.
Happy coding !
len0x
11th October 2003, 01:11
Originally posted by Dolemite
if you don't want to change the codec data for instance to change the bitrate then it shouldn't be hard to support those codecs if you know how to deal with the WinAPI (I try to figure it out atm).
well, this is kinda unrealistic. for instance - you don't know the exact size of the audio because you haven't encoded it yet, so bitrate has to be adjusted on the fly. this is very simple scenario which already cannot be performed the way you describe...
len0x
11th October 2003, 01:28
Originally posted by PatchWorKs
Oh and, well... on Doom9 forums:
New A/V Formats - Codecs
New A/V Formats - Containers
seems that there are mutch more posts/threads there than on GKnot Dev.
i'm not saying there is nothing worthy out there, but you have to understand that gk is not a testing field for new formats/codecs. in the forums that you mentioned there are indeed a lot of ppl who works with new formats and lets hope in the end we get lot more choices or at least one new good one. but this happens there. i have not heard any request for the codecs you mention in this forum, apart from lots and lots and lots of request regarding ogm/vorbis/matroska, which support will be in the next version of gk. but everyone who reads this forum knows that already... and now you, who have never posted in gk forum before and obviously never read it, made your first post with shouting requests. do you really expect me to take you seriously?
stax76
11th October 2003, 01:30
it would be still better than no support, audio could be encoded before and then just be muxed. I failed to figure out how to do the interop so there will be no support in DVX anyway in the near future
PatchWorKs
11th October 2003, 08:59
I don't want to appear aggressive, but you've not understand me:
many other similar DVD-backup suites (as DVX (http://www.planetdvb.net/), for example) codec support seems difficult.
The right way, in my opinion, is to implement a 'vfw support' so any codec can be used without rewriting anything. VirtualDub can help for this reason...
Happy coding !
bond
11th October 2003, 13:07
the rududu author himself recommends on his homepage not to use rududu for backing up video copies as "the current stream version of Rududu will not be supported in the next versions"
theora isnt available till now (and i doubt that windows hating xiph people will release a vfw version)
Nero Digital and RV9 will not be available as vfw
vp3's quality isnt comparable to other available codecs
so...
len0x
11th October 2003, 18:08
Finally some sensible comments from somebody :)
P.S. I missed the time when you became a mod. Congrat! :cool:
PatchWorKs
11th October 2003, 21:58
As you can see, in my previous posts i never claimed that vp3 is better than divx or rududu is the best codec.
Personally i think that the best is Huffyuv (lossless) :eek: ... but this is not the point.
I'm simply asking a vfw support: in this way anyone can use any fu**ing codec... even MJPEG !
Am I wrong ? :rolleyes:
Happy coding !
Note: i'm actually converting my video materials with VirtualDubMod, so i don't need any other application... anyway this would be a constructive critique. :cool:
bond
11th October 2003, 22:30
i understand what you mean but the point is that gknot is some sort of GUI for making a/v encoding (dvd back-ups, etc..) much easier
so if you want to test other vfw codecs just use vdm ;)
i personally dont see any problem in gknot being a gui for encoding only with the best codecs available (for testing i can also use the codecs themselves in vdm and the last thing i want is to see newbies starting to use vp3 or any other codec which brings lower quality than possible with others)
so to say i totally understand if len0x decides not to implement such a feature cause imo it would be a lot of work without much profit...
Originally posted by len0x
I missed the time when you became a mod. Congrat! :cool: thanks :)
len0x
11th October 2003, 23:19
Originally posted by PatchWorKs
Note: i'm actually converting my video materials with VirtualDubMod, so i don't need any other application...
then why do you request all those things ???
you can live without it, all others can live without it - why waste time discussing it ? and bond gave you good explanation why nodoby needs this features in gk...
PatchWorKs
12th October 2003, 13:57
Sorry for the thread: I thought that constructive critics were necessary for open source developers.
But I evidently mistook. Sorry again.
stax76
12th October 2003, 15:10
I figured out how to do the P/Invoke, it was quite simple :)
Doom9
14th October 2003, 08:31
codec support is based on market requirements. Gknot is a DivX / XviD encoding tool because those are the most widely used codecs. If you want to add a dozen codecs you quickly turn the program too complicated for the average users because there are just too many codecs to choose from. You have to weigh the benefit of more codecs versus complexity for the user and time required to implement. If 0.1% of the users are going to use a new codec then it makes no sense implementing it. And you can still use GKnot for bitrate calculations and AviSynth script creations (that's how I use it for codec comparisons.. ).
stax76
14th October 2003, 14:30
If you want to add a dozen codecs you quickly turn the program too complicated for the average users because there are just too many codecs to choose from
adding features don't mean necessary adding complexity, it's more a question of the program design. I just added new codecs to DVX (not released yet) and the only difference the user will see is there are some more codecs in the codec selection dropdown. If Rududu, Windows Media 9 VCM etc. are not installed, there isn't even a difference because only actual installed codecs will be available for selection.
The problems in GK and DVX as well is XviD and DivX are codecs which save in the registry and therefore bitrate, logfile paths etc. can easily adjusted by simply changing a registy value while other codecs would require to reverse engineer the structure of the codec settings. This is a lot work, can introduce bugs and will break compatibility when the structure changes which is the case on almost every new codec release. This is why GK didn't support XviD for so long and was always broke when a new codec version came out. Luckily when I started DVX I was new to programming and didn't know how to reverse engineer the codec settings structure so I found out about the trick with the registry which now all programs use.
The other problem is in GK is almost everything hardcoded simply because back then when TheWef worked on it there wasn't container formats or codecs to chose from. Adding now a new codec or container is in any case a lot work, either hacking all the codec/container relevant locations or making a more flexible design/interface
If you want to add a dozen codecs you quickly turn the program too complicated for the average users because there are just too many codecs to choose from
I'm not sure if the GK program design is made for the average user, I consider it more for advanced users (which maybe would like to test new codecs from time to time). Based on my experience I think it's pretty hard to figure out how it works without either knowing all the basics what the program actually does or without the help of guides and research
Soulhunter
14th October 2003, 20:11
I don't think average users need Theora or Rududu...
But WMV9 would be still nice to add... ! ;)
Could be useful for the "1CD-rip-league" I think... :D
Bye
bond
15th October 2003, 10:13
Originally posted by Soulhunter
But WMV9 would be still nice to add... ! ;)
Could be useful for the "1CD-rip-league" I think...wmv9 cant be supported as it doesnt store the settings in the registry...
and i still think that xvid is better for 1cd solutions :p
stax76
15th October 2003, 11:35
it can be supported with the limitation you have to configure the codec manually like you would do in VirtualDbuMod. It's still easier than VirtualDubMod because you don't have to make a job for each pass, you can simply click on a first pass, second pass, credits and comptest button to open the original codec dialog (in DVX, recent GK version work similar afaik)
Soulhunter
15th October 2003, 17:21
...and i still think that xvid is better for 1cd solutions
I like WMV9 for low bitrates, DivX5 for medium ones, and XviD for high ones... :p
But... different PPL, different favors ! ;)
Bye
vBulletin® v3.8.5, Copyright ©2000-2012, Jelsoft Enterprises Ltd.