Log in

View Full Version : How to serve VC-1 from an EVO via Avisynth?


Guest
16th August 2007, 01:09
My first foray into HD-DVD!

I've got Planet Earth HD-DVD. I decrypted the first EVO (with DumpHD) and then demuxed it with EVO demux. This gave me:

PEVOB001.VC-1.stream.0.mpv
PEVOB001.DD+.stream.00.mpa

The MPA played in VLC. But the MPV plays in neither VLC nor MPC. I tried renaming it to .vc1 but it did not help.

Can some kind soul please explain to me how I can decode the VC-1 elementary stream and serve it via Avisynth? Thank you.

Failing that I'd be interested in knowing of HD-DVDs for which AVC or MPEG2 is used and for which the keys are known. I am trying to capture HD content for demos, etc.

Terranigma
16th August 2007, 01:12
My first foray into HD-DVD!

I've got Planet Earth HD-DVD. I decrypted the first EVO (with DumpHD) and then demuxed it with EVO demux. This gave me:

PEVOB001.VC-1.stream.0.mpv
PEVOB001.DD+.stream.00.mpa

The MPA played in VLC. But the MPV plays in neither VLC nor MPC. I tried renaming it to .vc1 but it did not help.

Can some kind soul please explain to me how I can decode the VC-1 elementary stream and serve it via Avisynth? Thank you.

Failing that I'd be interested in knowing of HD-DVDs for which AVC or MPEG2 is used and for which the keys are known. I am trying to capture HD content for demos, etc.
Well I know of a workaround. You could mux it in a matroska container and then use directshowsource or ffmpegsource to decode it through avisynth; Other than that, I have no idea.

Kurtnoise
16th August 2007, 06:41
http://forum.doom9.org/showthread.php?p=1034314#post1034314

Guest
16th August 2007, 14:51
You could mux it in a matroska container What software do you recommend for that?

Guest
16th August 2007, 14:53
http://forum.doom9.org/showthread.php?p=1034314#post1034314 I tried that. The input VC1 is 7GB. The resulting AVI is 4GB. So something is not right. Then when I open the AVI in VirtualDub it starts reconstructing the index block, so it's obviously goofed up.

Nikos
16th August 2007, 18:05
Graphedit --> DirectShow Filters -->
FileSource (Async.) your VC1 --> Sonic HD Demuxer -- > Sonic Video Decoder

You need "Sonic CinePlayer HD DVD Decoder 4.2".

Save the graph.

Then --> Avisynth -->
DirectShowSource("your graph.grf", audio=false, fps=23.976, seek=false, framecount=xxx)
ConvertToYV12()

seek=false, because the seek is wrong.

Framecount from evodemux report, like this:
202921 calculated frames (2:21:03:488) in video stream 0.
Subtract about 50 frames from calculated frames.

Guest
16th August 2007, 18:59
Where do I buy Sonic CinePlayer HD DVD Decoder 4.2? I cannot find it. Thank you.

Terranigma
16th August 2007, 19:37
Where do I buy Sonic CinePlayer HD DVD Decoder 4.2? I cannot find it. Thank you.
neuron2, I found it Here (http://www.sonic.com/products/Consumer/CinePlayer/Decoder/quicklook.aspx).
Hope that it works for you. :)

Nikos
16th August 2007, 19:43
Where do I buy Sonic CinePlayer HD DVD Decoder 4.2? I cannot find it. Thank you.

The forum rules prohibit to say where you may find it :)
Sorry.

Another solution:
Buy the Sonic CineVision v2.x.x package, after install go in the filter folder copy the sonicavcvd.ax, sonicmpgdmx.ax and SonicVC1vd.ax files to your system32 folder and regsvr32 .....

Terranigma
16th August 2007, 19:50
Try what Nikos said. I see that the version I pointed you to isn't the correct one. I did find it though through a search engine, but it was warez, not for buy. :(

Terranigma
16th August 2007, 21:20
What software do you recommend for that?
Oops, excuse me, somehow I missed this question. MKVToolnix (http://www.bunkus.org/videotools/mkvtoolnix/downloads.html). I suggested this tool, because I encoded some files to .mpv using mainconcept's h.264 avc encoder as an elementary stream and had similar issues, so I muxed it using mkvtoolnix and everything was fine. I had to set the framerate and A:R though. I haven't tested vc-1 yet, but matroska should be able to handle a vc-1 stream. I don't see why it could'nt as it's supposedly able to handle any video, audio, picture, and subtitle file. Try It. :)

Guest
16th August 2007, 21:33
I don't mind buying, really, it's my company's money. :)

Nevertheless, I have received it from a little bird and will treat it as a trial and buy it if it meets our needs.

First results are good, I have made GRFs and an AVS that serves the audio and video into VirtualDub and I am encoding a DivX for testing.

Thank you, all, especially Nikos.

Nice forum you've got there. :)

Nikos
16th August 2007, 22:30
@neuron2 with VC1 streams (SonicVC1vd.ax) we have the option to output in YV12 from .grf file.
I don't now if i must enable this option (I fear Sonic's converter). Usually i make the convert in avisynth script with ConvertToYV12().
Which is your opinion?
By the way which is the native colorspace in Blue-Ray and HDDVD elementary video streams?
Thanks

EVO with vc1 to mkv
1. Mux the first evo (preferable video only) with gdsmux.exe (haali package).
The resultant mkv have wrong framerate.

2. Make a Timecode text file with these llines:
# timecode format v1
assume 23.976

3. Remux the first mkv file with mkvmerge and insert the above Timecode File.

4. You will see some warnings but it's ok.

5. Now you have a mkv file with correct time, full seek and you
don't need framecount value, you need only fps=23.976 in avisynth.

6. Do the same for the second evo.

7. Merge the two mkv in avisynth.

This method don't work with h.264 EVO files.

Guest
16th August 2007, 22:38
I'd have to do some experiments. I'll do that and report back.

I also don't know the native color space but I would guess it is 4:2:0 so maybe it's best to output YV12 from the decoder.

I'm just getting started in HD-DVD. :)

Here's a question for you: can I just binary concatenate the EVOs for a main movie like I can for VOBs?

Guest
16th August 2007, 22:50
Hey Nikos, I didn't see a way to control output from the GRF. How are you doing that?

Nikos
16th August 2007, 23:20
I didn't see a way to control output from the GRF. How are you doing that?
Simply right click and enable only YV12. I use SonicVC1vd.ax filter from Cinevision.
http://blue-whitegt.com/covers/Sonic_YV12.jpg

can I just binary concatenate the EVOs for a main movie like I can for VOBs?
Theoretically yes, but i tried once without success. I am a beginner too in HD :)
With Blue-Ray m2ts files no problem, copy /b and then remux with tsremux to fix the timestamps.

Another faster way for evo with seek and correct time:
Haali spliter(EVO file) --> Sonic video decoder

For me the most reliable method until now is:
FileSource (Async.) your VC1 --> Sonic HD Demuxer or Sonic Mpeg Demultiplexer -- > Sonic Decoder
as in my first post.

Guest
16th August 2007, 23:26
I guess I don't have the same version, because I get nothing on a right click. Wanna send it to me? If so, PM please.

Nikos
16th August 2007, 23:55
@neuron2 i send you PM with my mail.

bluesk1d
20th August 2007, 14:49
You can also skip demuxing and serve the VC-1 stream directly from the EVO using the following graph: Haali Splitter > Windows Media Decoder DMO (It will decode the commercial VC-1 as well as WVC-1)

ACrowley
21st August 2007, 12:32
You can also skip demuxing and serve the VC-1 stream directly from the EVO using the following graph: Haali Splitter > Windows Media Decoder DMO (It will decode the commercial VC-1 as well as WVC-1)

No good Idea because it can cause incorrect Frames/Frameskips/duplicated Frames (outputs 29.97fps and not 100% correct Framecount with fps=23.976)

"Always" mux Evo with VC1 in mkv first.
1.gdsmux/ HaaliMatroskamuxer ( VC1 EVO to mkv)
2.mkvmerge ,remux the mkv with 23.976 Timecode

Build grf :
Haalimediasplitter-WMVideodecoderDMO

avs
DirectShowSource("G:\Matrix1\Matrix1.grf",audio=false,fps=23.976)

----------------------
For demuxed VC1 better use SonicCinemasterVideoDecoder4.2
NOT SonicVC1Decoder. The SonicVC1 Decoder from Cinevision2 is based on MainconceptSDK Decoder.
I noticed some Problems with it (with H264 Decoder too)where Cinemaster Decoder works perfect.
And when you use the SonicVC1Decoder, set it to Skipmode=none to avoid skipped Frames!
And never forget to use the Framecountvalue on demuxed VC1 otherwise you get garbage

1. Evodemux ( demux VC1 to elem. Stream) #note calculated Framecount in Evodemux
2. Build this grf :
Filesource(async)-SonicHDDemuxer-SonicCinemasterVideoDecoder4.2 # I prever ElecardMPEGDemultiplexer

avs :
DirectShowSource("G:\Matrix1\Matrix1.grf",audio=false,fps=23.976,Framecount=196071)

Note that you cant seek the avs on "demuxed" VC1. When you need to seek use Method 1 with mkv"remux"

These are the proven Methods and i suggest to use it :)

greets

Guest
21st August 2007, 13:17
I noticed some Problems with it (with H264 Decoder too) where Cinemaster Decoder works perfect. What problems did you notice?

1. Evodemux ( demux VC1 to elem. Stream) #note calculated Framecount in Evodemux Technically, what is the difference between counted frames and calculated frames in EVOdemux?

I prever ElecardMPEGDemultiplexer Why?

Nikos
21st August 2007, 14:23
I noticed some Problems with it (with H264 Decoder too) where Cinemaster Decoder works perfect.
For me the SonicVC1/H264 Decoder from Cinevision2 and SonicCinemasterVideoDecoder4.2 from Cineplayer work without problems. The SonicVC1 Decoder from Cinevision2 output and YV12, while the SonicCinemasterVideoDecoder4.2 output only RGB and YUY2.
In my avisynth script i prefer seek=false for safe reasons. The avisynth's cache is enough for simple filters, i don't know for IVTC and others more complex filters or functions.

Technically, what is the difference between counted frames and calculated frames in EVOdemux

No difference but similarity :)
Both of them are unreliably by a few frames.
Usually i subtract about 50 or more frames from calculated frames.
In one movie i noticed If framecount>real number of frames then the encoder continue to encode random frames.

I prever ElecardMPEGDemultiplexer
I don't prefer Elecard's software :)
I remember some versions had bugs.
I prefer Sonic mpeg Demultiplexer or Sonic HD Demuxer.

By the way neuron the real resolution inside the HD streams is 1920x1080 or 1920x1088.
Tell us your opinion and how the dgindex/dgavcdec treat them.
Thanks

Guest
21st August 2007, 14:37
By the way neuron the real resolution inside the HD streams is 1920x1080 or 1920x1088.
Tell us your opinion and how the dgindex/dgavcdec treat them. DGIndex detects the case of extra 8 padded lines and treats it correctly. DGAVCIndex is still too early to address details like that; you can crop the padding in your Avisynth script if needed.

woah!
23rd August 2007, 03:52
i personally use the WMVideo DMO filter in my graph filter as i found i had audio sync errors using any of the sonic filters.

EVO --> WMVideo DMO


i have backed up about 30 of my hd-dvd's this way and all are perfect on playback in my HD-A2

Guest
23rd August 2007, 04:37
I can't get File source (async) to connect to the WMVideo DMO filter. How are you making that graph?

woah!
23rd August 2007, 05:22
i drag and drop the evo into graphedit and let it connect to whatever it wants too, then i delele all the filters and add the DMO one and link it. seems to work for me.

if not use the File source (async) --> Haali Media Splitter (AR) ---> WMVideo Decoder DMO


this has to be with a .EVO file not a vc1 file yes?

i rebuild the 2 evo files in evodemux to a single evo file and pass that though graphedit

Nikos
23rd August 2007, 09:25
My opinion.
1. Haali Media Splitter (your evo) --> WMVideo Decoder DMO

2. Haali Media Splitter (your evo) --> Sonic VC1 Decoder

ACrowley
23rd August 2007, 13:39
There are in fact some Problems on some VC1/H264 Streams with SonicVC1Decoder and with SonicH264/AVC Decoder where SonicCinemasterVideoDecoder4.2/WMVideodecoderDMO works clean .
Few Artefact in Apocalypto and FlagsOfOurFathers Bluray (H264)with SonicH264/Decoder etc
To be safe use the proven Cinemaster Decoder on VC1/ H264
Ofcourse all Decoders Combinations can cause Problmes on some Streams...not only a MainconceptSDK Problem

@ Nicos
You dont like Elecard ? Well, the SonicH264/VC1Decoder and SonicMPEGDemutliplexer ar based on the same Decoder/Filter because theyre from MainconceptSDKs :)
Take a look into the Decoder Settings..identical

SonicH264/AVC Decoder is almost identical to Elecard/Mainconcept H264/AVCDecoder
SonicMPEGDemuxltiplexer is the same as ElecardMPEgDemutiplexer :)

- SonicCinemasterVideoDecoder Output is 1920x1088 YU2 .Nevermind. Use Converttoyv12() and crop the 8 black Pixels off

@Neuron
You cant connect to Filesource(async)-WMVideoDecoderDM= because theres no Splitter/Demultiplexer
Correct :
HaaliMediaSplitter (your vc1 evo) -WMVideoDecoderDMO

Also, better remux EVO properly into mkv fisrt for encoding with Haali-WMVideoDecoder.

1.gdsmux (HaaliMatroskaMuxer) -Mux EVo with VC1 to mkv
2.remux it with mkvmerge Timecode 23.976fps

That will guarrante the 100% correct Framecount/fps and seekable avs

Nikos
24th August 2007, 00:53
SonicH264/AVC Decoder is almost identical to Elecard/Mainconcept H264/AVCDecoder
I know this, but Sonic is more funcy name :)

We wait a stable solution from neuron!!!

Guest
24th August 2007, 01:12
Thanks, but my plate is VERY full right now.

Beastie Boy
24th August 2007, 08:56
neuron2, see this (http://forum.doom9.org/showthread.php?p=1035422#post1035422) guide for a method that I have tested and can confirm works OK. Like many others, I have synch problems when using Sonic filters to decode video.

If the MS filter will not connect, the guide suggests that you need to install WMP11, however I believe that Windows Media Format SDK 11 can be installed instead. Links to both are in Zambellis sticky (http://forum.doom9.org/showthread.php?t=112634).

Cheers, Beastie.