Log in

View Full Version : DGVC1Index for the Future


Isochroma
17th December 2007, 01:45
This is very premature, but it seems that only one format remains since MPEG-2 is handled by DGIndex, AVC by DGAVCIndex.

The remainder is VC-1, for which there is no frame-accurate decoder as of yet, and it is the last of the approved formats for HD-DVD / Blu-ray.

It seems like a triptych will one day be formed by these "big three" and their respective decoders. Completing a VC-1 indexer would close the entire chapter of works, and form the final cornerstone of a decoder empire :)

Guest
17th December 2007, 02:04
We need a high-performance, open source VC-1 decoder. Are you aware of one?

Isochroma
17th December 2007, 02:07
ffdshow contains one, I use it and it works just fine for most videos. Also, there's one guy on this forum who started work on a vc1source() plugin here (http://forum.doom9.org/showthread.php?t=121466), but development is stalled: it's been seven months since his last post.

Guest
17th December 2007, 02:11
OK, good. I'm doing some things to DGAVCDec right now, so you'll have to be patient. Maybe you could take it on?

Isochroma
17th December 2007, 02:13
I so wish I had that kind of programming knowledge, but mostly quickbasic, dos batch files, etc. I only posted it as a note for the future, so that it's not forgotten. Your hands are plenty full for now.

Inventive Software
18th December 2007, 12:56
I mentioned something similar in the DGAVCDec thread, for the record. ;)

guru1968
31st March 2008, 23:24
until there is this DGVC1Index available, is there any other way to index a VC1 movie?

Doom9
1st April 2008, 19:08
Pipe the source through avisynth using directshowsource.. it's not as reliable as the DG.. toolsuite, but it has done the trick for many.

Of course, I'd like to see a DGVC1Index or even better a DGIndexEverything(TM) but this is a project that depends on free time and motivation so we'll just have to wait patiently.

guru1968
4th April 2008, 20:15
Pipe the source through avisynth using directshowsource..

Doesn't work: doing that, only the keyframes are detected (VirtualDubs Info shows no deltaframes!), resulting in a video being way too short...

Isochroma
4th April 2008, 20:16
Uh, unless vdub is decoding video itself through VFW, it will ALWAYS show all keyframes. How can it know what type frames are when they're delivered as predecoded from avisynth? If you have missing frames look elsewhere for the problem.

guru1968
4th April 2008, 20:40
Uh, unless vdub is decoding video itself through VFW, it will ALWAYS show all keyframes. How can it know what type frames are when they're delivered as predecoded from avisynth? If you have missing frames look elsewhere for the problem.

good point...

the problem is that I really can't say if frames are missing, when playing this avisynth script, mplayerc says e.g. 1:17 hour playtime, video and audio seem synchronous; when playing via vdub, it says playtime 47 minutes, and the audio gets out of sysnc rather fast - the video seems (from my perspective) not choppy...

BTW: I also have this phenomenon (video shorter than audio) when using DirectShowSource() on let's say mpeg2 files; only after DGIndex, those files are in sync...

Inventive Software
4th April 2008, 23:37
Add the actual framerate, from memory like the following:

DirectShowSource("Source.vc1",23.976)

23.976 you change to the actual source frame-rate. DirectShowSource cannot find VC-1's framerate without there being a proper indexing tool for it. VC1Source in the AviSynth thread would be a start.

guru1968
6th April 2008, 18:39
I already did specify the framerate (no success), but actually it is (at least I THINK it is) the frameCOUNT what the DirectSchowShource() filter does not report correctly...

I'm now trying the following:
<AVS>
LoadPlugin("NicAudio.dll")
audio=NicAC3Source("audio.ac3")
numframes = int((23.976 * audiolength(audio)) / audiorate(audio))
DirectShowSource("video.vc1",audio=false,fps=23.976,seekzero=false,seek=true,framecount=numframes)
</AVS>

so it's calculating the framecount based upon the audio-length... that should give me enough video (up to when the audio ends)
the framerate I got from tsMuxeR, hope this is correct

It's now busy encoding - can take a couple of hours (if not days) to report feedback.
<EDIT>
the encoded divX (video-only) avi works quite well (i.e. it does play on the PS3 with the correct length);
though I do have problems muxxing (divXMux freezes)
- but this I research in the according (divx) thread...
</EDIT>

BTW: I had a quick look at the VC1Source thread - but this filter is not yet in public-betatest state plus the few selected testers seem to have a lot of trouble with it

greetz,
guru

lubczyk
10th May 2008, 15:35
I just use this script to feed Microsoft Expression Encoder using the latest DirectShowSource plugin that supports VFR:

________________________________

Video = DirectShowSource("test.vc1", fps = 23.976, convertfps=true)

Audio = DirectShowSource("test.ac3", fps = 23.976, convertfps=true)

AudioDub(Video,Audio)

_________________________

It seems to get the job done. Am I doing anything wrong?