View Full Version : DGMPGDec 1.6.0 Development thread
Chumbo
16th November 2008, 16:32
It's the latter.
How about that? ;)
btw, I put the template in both locations and the CLI still did not create the avs file. I'm now setting the template file using the UI first and then running the command line.
Also, I ran it hidden, i.e., with the -HIDE and the "field detection" error/warning still popped up.
[EDIT] Update. Looks like the -AT command requires a fully-qualified path. Just putting the name of the template does not work regardless of where it is, i.e., in the source folder or the .exe folder. The UI setting has no impact on the CLI either.
Guest
16th November 2008, 17:18
It does work. If a full path is not specified, the current directory is used. Perhaps the current directory is not what you think it is.
Chumbo
16th November 2008, 17:38
It does work. If a full path is not specified, the current directory is used. Perhaps the current directory is not what you think it is.
Yep, you're right. It does use the source directory if a path is not specified. It was user error on my part, sorry about that. I have two drives I work with and had put the template on the wrong one thinking it was the source. Ugh...
Chumbo
16th November 2008, 21:42
@neuron2,
This may be a DOS thing, but thought I'd let you know about it in case it's not. I happen to have a file name with an ampersand in it and here's the error I received when my CLI batch file got to that file:
'Consequences.ts]' is not recognized as an internal or external command,
operable program or batch file.
The original file's name is: Heroes.S02E10.Truth & Consequences.ts
The & is only in the input file name on the command line like this:-IF=[Heroes.S02E10.Truth & Consequences.ts]
J_Darnley
17th November 2008, 00:16
-IF=[Heroes.S02E10.Truth ^& Consequences.ts]
It is a DOS thing, the ampersand will tell it to run another command. Escaping it with ^ should fix it.
Chumbo
17th November 2008, 04:59
-IF=[Heroes.S02E10.Truth ^& Consequences.ts]
It is a DOS thing, the ampersand will tell it to run another command. Escaping it with ^ should fix it.
Sweet, thanks for the tip. :)
josey_wells
19th November 2008, 15:11
It's very easy to turn on the deinterlacer with CUDA. I'll be experimenting with it to see how much it impacts the frame rate on the low-end and high-end cards, and how good the deinterlacing looks. All I know is that it is claimed to be "motion adaptive". You can Google for "PureVideo deinterlacing" to see marketing hype and reviews.
a version of DGMPGDec based on the NVIDIA Cuda would be fantastic. The difference in DGAVCDec and DGAVCDecNV was fantastic. The DGAVCDecNV gave much better framerates and perfect decoding.
A beta would be great to try out :)
Dare's User Name
19th November 2008, 22:34
I would like DGIndex to have an option to parse a d2v file in a way that lists ranges of frames with and without pulldown flags. The output might look something like this:
0,499 pulldown
500,999 clean
1000,15999 pulldown
16000,20000 clean
etc.
That would be easy to convert into an AVS script such as this, in order to treat pulldown and non-pulldown material separately:
a=MPEG2Source("filename.d2v").trim(0,499)
b=MPEG2Source("filename.d2v").trim(500,999)
c=MPEG2Source("filename.d2v").trim(1000,15999)
d=MPEG2Source("filename.d2v").trim(16000,20000)
Dare's User Name
19th November 2008, 22:37
It would be nice if DGIndex had a batch mode, so I could save project files for a large number of mpeg files that I know should be treated the same way, such as episodes of a TV series.
morphinapg
19th November 2008, 23:11
a version of DGMPGDec based on the NVIDIA Cuda would be fantastic. The difference in DGAVCDec and DGAVCDecNV was fantastic. The DGAVCDecNV gave much better framerates and perfect decoding.
A beta would be great to try out :)
this and would it be possible to detect whether a user has a capable card and use NVIDIA if available, otherwise just use the regular version?
Chumbo
20th November 2008, 02:25
I would like DGIndex to have an option to parse a d2v file in a way that lists ranges of frames with and without pulldown flags. The output might look something like this:
0,499 pulldown
500,999 clean
1000,15999 pulldown
16000,20000 clean
etc.
That would be easy to convert into an AVS script such as this, in order to treat pulldown and non-pulldown material separately:
a=MPEG2Source("filename.d2v").trim(0,499)
b=MPEG2Source("filename.d2v").trim(500,999)
c=MPEG2Source("filename.d2v").trim(1000,15999)
d=MPEG2Source("filename.d2v").trim(16000,20000)
Great idea. I second this one. :)
It would be nice if DGIndex had a batch mode, so I could save project files for a large number of mpeg files that I know should be treated the same way, such as episodes of a TV series.
This would be nice too, but no big deal since you can write your own batch file. Just use one as your template and then copy the rest. The CLI (Command-Line Interface) is not that complicated.
Inventive Software
21st November 2008, 19:06
@bug! Frame Size and Display Size are exactly the same for all PAL DVDs I put through DGIndex, I can't say the same for HD content because I don't have any. My assumption is that with the SAR applied, the Display Size would change from the Frame Size 720x576 to 1024x576 / 768x576 (for PAL DVDs).
Guest
21st November 2008, 19:08
Post stream showing the claimed bug.
Inventive Software
22nd November 2008, 02:40
/me goes to find DGSplit and an upload site you can use. Watch this space.
EDIT: Please (hopefully) find attached the information window.
I'm currently uploading a 50MB sample, from a decrypted VOB file from a DVD done by my standalone DVD recorder, to Rapidshare. If you prefer it done somewhere else, please speak now and I'll set it on its way.
Uploaded 50MB VOB sample: http://rapidshare.com/files/166142623/VTS_01_1_split.VOB
Dare's User Name
23rd November 2008, 19:45
This would be nice too, but no big deal since you can write your own batch file. Just use one as your template and then copy the rest. The CLI (Command-Line Interface) is not that complicated.
I understand that it is not that complicated in theory, but I'm retarded. I can barely get my head around Avisynth scripts as it is, and searching online for a working batch script takes me longer than if I just babysat the indexing process for a hundred files.
I think many lives, not just mine, would be a lot easier if we could specify a folder for DGIndex to demux and index, and let it do its thing.
J_Darnley
23rd November 2008, 20:27
Expand it with the options you need and the correct path of DGIndex.
cmd prompt: FOR %A IN (*.vob) DO dgindex -IF=[%~fA] -OF=[%~dpnA] -exit
batch file: FOR %%A IN (*.vob) DO dgindex -IF=[%%~fA] -OF=[%%~dpnA] -exit
Dare's User Name
24th November 2008, 06:44
Sorry, you lost me at "Expand". I am merely a mortal! :)
You are very skilled at command line incantations, but like it or not, this program does have a GUI, and I see no fault in wanting to expand its usefulness.
On a buggish note, I got a nasty error on one file, "Too many pictures per GOP (>=500). DGIndex will terminate." Click OK, and it quits. There doesn't seem to be anything wrong with the video, and it plays just fine. If I create an avisynth script to open it using DirectShowSource, it opens in VirtualDub without any problems. I can create and post a log if that would be useful.
J_Darnley
24th November 2008, 13:06
I mean add in the options you need such as audio demuxing, audio decoding, audio track(s), avs template. Any other options you need beyond the basic structure I provided with just the input and the output. If you want to try it, provide specifics on the names of the input files and where you want the output and I will adapt it for you. If you want to continue slogging through your files with the GUI, you are welcome to do so. You can also post requests.
As for your problem, you will have to wait and see what neuron2 says.
Inventive Software
24th November 2008, 13:50
/me goes to find DGSplit and an upload site you can use. Watch this space.
EDIT: Please (hopefully) find attached the information window.
I'm currently uploading a 50MB sample, from a decrypted VOB file from a DVD done by my standalone DVD recorder, to Rapidshare. If you prefer it done somewhere else, please speak now and I'll set it on its way.
Uploaded 50MB VOB sample: http://rapidshare.com/files/166142623/VTS_01_1_split.VOB
Ping, Donald? Would rather not let this get buried.
OCedHrt
12th December 2008, 19:01
Add mouse scrollwheel support and Copy Frame to Clipboard, as in DGAVCDec.
Add GPU decoding support, e.g., CUDA Video API.
Is this limited to CUDA cards (aka nVidia) or will it also work for ATI cards?
laserfan
5th February 2009, 20:28
Add GPU decoding support, e.g., CUDA Video API.In your own forum, you said "H264 is supported in DGAVCDec. I don't intend to merge DGMPGDec and DGAVCDec. At some point all three will be supported in one application in my Nvidia enabled application."
Presumably by "all three" you meant MPEG2, H264, and VC-1. Now that I am Nvidia-enabled, I want to *bump* the idea of a DGMPGDecNV. But merging these three into one application would result in almost more joy than I could bear; indeed t'would be a consummation devoutly to be wish'd. ;)
smok3
6th February 2009, 08:32
a feature request, for command line, from
'0=None, 1=Demux Tracks, 2=Demux All Tracks, 3=Decode AC3 to WAV '
to
'0=None, 1=Demux Tracks, 2=Demux All Tracks, 3=Decode ANYTHING I CAN to WAV' (including mp2 for example)
p.s. and a question: are the ac3s supposed to be fixed regarding the delay when they are decoded?
kypec
6th February 2009, 10:23
p.s. and a question: are the ac3s supposed to be fixed regarding the delay when they are decoded?
I think not, only the filename reflects DELAY if detected. I ceased to use DGDecode for AC3->WAV decoding, eac3to (http://forum.doom9.org/showthread.php?t=125966) is much more suitable for this job, it handles conversion and fixes delays automatically! :)
Guest
6th February 2009, 15:13
p.s. and a question: are the ac3s supposed to be fixed regarding the delay when they are decoded? Yes, the previous poster is incorrect.
kypec
9th February 2009, 06:17
Oops, I'm sorry for providing wrong info. Has this feature been enhanced (auto-adjustment of AC3 delay) when compared to v1.5.3?
Guest
9th February 2009, 06:33
Maybe you are confusing demuxing with decoding?
From the users manual:
Note that when AC3 tracks are decoded to WAV, their filenames do not contain a delay correction value because the correction is applied during decoding.
smok3
9th February 2009, 14:50
neuron2, tnx, how about this:
'0=None, 1=Demux Tracks, 2=Demux All Tracks, 3=Decode ac3 to wav, if it is ac3, else just demux'
Zarxrax
26th April 2009, 18:53
I'm not sure when it changed, but I think the current "select tracks" dialog is much less user friendly than the old one. I frequently decode audio streams to wav, so it's annoying to have to look up the IDs for the stream I want and then type it in. It would be fantastic if you could just show a list of all audio streams and then let the user put a checkbox beside the ones they want to use.
Guest
5th June 2009, 16:01
@bug! Frame Size and Display Size are exactly the same for all PAL DVDs I put through DGIndex, I can't say the same for HD content because I don't have any. My assumption is that with the SAR applied, the Display Size would change from the Frame Size 720x576 to 1024x576 / 768x576 (for PAL DVDs). No, you are misunderstanding the MPEG2 spec, which you should review for an explanation of these fields.
hajj_3
8th June 2009, 11:34
neuron2, tnx, how about this:
'0=None, 1=Demux Tracks, 2=Demux All Tracks, 3=Decode ac3 to wav, if it is ac3, else just demux'
i'd add a number 4 which encodes to 2 channel 128bit mp3 using lame.exe, would be pretty handy!
7oby
15th June 2009, 18:03
I have been using DGMPDec to transcode some MPEG2 movies to MPEG4-AVC with x264 for mobile use. I recongized that the MPEG2 decoding part takes a significant part of the available CPU cycles.
I was wondering if there's a way to speed up the decoding process by incorporating the GPU to some extend. DGMPGDecNV uses nVidia CUDA, but unfortuantely I have a notebook with intel integrated graphics (GM965/X3100). It exposes its MPEG2 decoding facility only by means of DXVA. From reading neuron2s dialog with nVidia (click (http://neuron2.net/dgavcdecnv/cuda/cuda.html)) and some postings in the CoreAVC release thread it seems to me the DXVA (regardless of DXVA 1.0 or 2.0) doesn't easily allow to decode already parsed streams and redirect the output to non GPU memory or files. Is that correct?
Intel documentation for the MPEG-2 decoding is available (http://intellinuxgraphics.org/documentation.html), but actual code libraries or code snipplets only for linux (click (http://cgit.freedesktop.org/xorg/driver/xf86-video-intel/commit/?id=52054b6a4c1ca5117c9750361f71aedd91220c39)). So I guess access to the an intel MPEG-2 decoder is not easily possible? Actually windows code snipplets for the H.264 intel decoder are easier to find (click (http://software.intel.com/en-us/blogs/2009/03/15/intel-clear-video-and-h264avc/)).
Anything else how I could speed up the MPEG-2 decoding process? Is it possible to do at least the video scaling 720 x 576 -> 320 x 240 or 480 x 272 on the GPU? Are there tools available? EDIT: Meanwhile I tested the japanese _GPU2.5 rev53 (http://www.avisynth.info/?%A5%A2%A1%BC%A5%AB%A5%A4%A5%D6#x44606bb) plugin which still sees me be maintained since there's also a download for ATI HD48x0 chipsets. The result on intel grraphics using GPU_BilinearResize() was slower than CPU based resize. It seems the penalty of reading back the resized data from gpu allocated memory is too expensive in this case compared to the cpu cycle win.
Thanx for comments.
P.S.: DGMPGDecNV and DGAVCDecNV are both great tools - regardless of whether I am able to use it or not. I also like the idea that you have to pay for it.
B@Ron
3rd July 2009, 09:09
Something like add another segment and another and another in the making of one .d2v file so it would be possible to cut out the commercials from MPEG .ts file directly in DGIndex.
Is it possible to make something like this? (Sorry if it had been asked or answered before:))
Thank you neuron2 for this truly great program!
halsboss
5th July 2009, 01:59
Our PAL 1080i HDTV channels are generally rubbish and are really really blocky. "Pretend" HDTV, really. I'm using
#ipp=true interlaced post-processing
#cpu=4 DEBLOCK_Y_H, DEBLOCK_Y_V, DEBLOCK_C_H, DEBLOCK_C_V
#cpu=6 DEBLOCK_Y_H, DEBLOCK_Y_V, DEBLOCK_C_H, DEBLOCK_C_V, DERING_Y, DERING_C
MPEG2Source("G:\HDTV\q1.d2v",info=0,ipp=true,cpu=4)
Would it be possible to add functionality along the lines REALLY_STRONG_DEBLOCK=true ?
I have an unfounded feeling it'd be better done in here than in avisynth using deblock_qed_mt trying to deal with fields with fast action interlaced material.
MrMod
24th August 2009, 01:30
I've been puzzled by occasional "A field order transition was detected" with some of my DVDs. I have since found the culprit which leads to an issue currently in DGIndex.
I first noticed something fishy when I was using mkvtoolnix to mux some vobs into a MKV. There was an odd Padding stream packet with a very large packet length specified after the header. This caused mkvtoolnix to warn that audio/video sync was lost and may be noticable during playback. As it turns out, I find this occasionally on DVDs. It appears the authoring sometimes puts these weird Padding stream packet lengths. The good news is that if you detect the >2048 length and search for the next packet_start_code_prefix (000001), you will find that the PTS for the audio and video remain correct.
I confirmed this with a tool of my own and indeed, if you detect the Padding stream packet length >2048 and just search for the next 000001, instead of skipping the bytes indicated by the bogus packet length, then the subsequent PTS for audio and video lines up with what is expected.
So I wondered if this was the cause of these strange "A field order transition was detected" messages. I took a VOB with a known bad Padding stream packet length, ran DGIndex, and sure enough it notified me of the field order transition. I then hex edited the VOB, corrected the Padding stream packet length, and re-ran DGIndex. This time it found the VOB was good. You can also tell something is up in the fixed d2v file since the lines in question are unusually long.
So for now I've been hex editing the bogus Padding stream packet lengths before using DGIndex, but thought I'd report my findings to make the awesome DGMPGDec tool even better.
Guest
24th August 2009, 01:40
Interesting. I would appreciate you posting a link to a VOB fragment that I can use to see this issue in operation. You can use DGSplit to split VOBs.
MrMod
24th August 2009, 02:33
Interesting. I would appreciate you posting a link to a VOB fragment that I can use to see this issue in operation. You can use DGSplit to split VOBs.
Here's a hex dump of an example (clip.txt):
108064000 PACK header
10806400E PES packet (video stream 0, length 0068)
10806407C PES packet (padding stream, length 6A71 <-yikes!)
108064800 PACK header
10806480E PES packet (video stream 0, length 07EC)
So if you respect the padding stream length you end up skipping the next valid PES packets. So in this example the padding stream length should be changed to 077E so that the next PACK header located at 108064800 is used. This is what I do manually to fix these bad padding stream packets when I run across them.
Another interesting thing to note is that padding stream packets are supposed to be stuffed with FF bytes, but in this case you can see it appears to be filled with garbage. A sanity check you can do is to make sure the next PACK header you find is on a page boundary, that way if the garbage bytes happen to contain the packet_start_code_prefix of 000001, you can ignore it and keep searching.
Guest
24th August 2009, 02:42
I'm not doubting your analysis.
I need the stream to test a fix!
Varies
26th August 2009, 14:57
If I understand correctly, credits and other bad lookin scenes appear because frames marked as progressive and not processed by deint, i'm right?
you may write functions for manual select interlaced frames ?
Guest
26th August 2009, 15:01
There is no deinterlacing functionality in DGMPGDec, so I can't make any sense out of your posting. And DGDecode delivers decoded frames, so there's no way to mark them.
Varies
26th August 2009, 15:23
I know, but unless DGMPGDec does not write in d2v the information on fields which further is used in deint?
Guest
26th August 2009, 15:30
Even if I revised the progessive_frame indication in the D2V file, it would be lost in DGDecode and could not reach a deinterlacer.
Varies
26th August 2009, 16:53
I think so... Source->DGIndex->d2v->DGDecode->video+flags (i,p) for deint ->Deint or IVTC->Progressive Video... i'm not right? :)
Guest
26th August 2009, 21:03
Ah, you're talking about the hinting data in the video.
I find it hard to believe that the pf flag is wrong on a per frame basis. Show me a stream where it is so, that requires such a manual capability.
Varies
27th August 2009, 10:24
As sample 30p with 60i subtitles, the first sample source that I sent you... it will help make deint better?
Guest
27th August 2009, 13:22
As sample 30p with 60i subtitles, the first sample source that I sent you... it will help make deint better? You can use a deinterlacer with manual overrides to force deinterlacing on a per-frame basis. I'm not going to hack up a decoder to do that.
vlada
1st September 2009, 09:29
Hi, neuron2. Is there any option to turn on progress reporting in stdout?
I'm using DGIndex from CLI in my application. To make the look of my program consistent, I'd like to hide the DGIndex's window and report the progress directly in my program's GUI. I use following command line:
dgindex.exe -IF=[video.vob] -OM=0 -OF=[output] -HIDE -EXIT
If I try to read from stdout, there is no output at all. Is there any CLI switch which would turn on progress reporting to stdout? If not would it be possible to add such an option?
Another option for me (not preferred) would be to show the DGIndex main window, which displays the progress. But the users may close this window (cancel indexing) and it will cause serious issues. First problem is, that the returncode of DGIndex is 0 even if the indexing is canceled, so I have no information that the user aborted the process. Then if I use the partial .d2v file in AviSynth, it will cause the host application (VirtualDub, avs2yuv) to hang and use all memory of my PC.
Could you add a feature to better handle this situation? One possibility is to delete incomplete .d2v files or (if possible) check whether the file is complete and if not, report it as an error through AviSynth.
If I'm unclear in some points, please let me know. Thank you.
Guest
1st September 2009, 12:55
Source code is available. Feel free to submit revisions.
vlada
3rd September 2009, 06:35
I'm sorry, but unfortunately I have absolutely no knowledge and experience with C/C++ programming. I can only hack some GUI in PyGTK or PHP-GTK. I'll try to look into it, but I'm afraid I won't be able to find out how to do it. :-(
morphinapg
18th November 2009, 03:39
How about Windows Media Center format support (dvr-ms/wtv) obviously non-DRM files only.
Currently I have to use DVRMSToolbox and then DGIndex.
Guest
18th November 2009, 04:22
Isn't DVR-MS obsolete now?
WTV might be a possibility if a spec is available.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.