View Full Version : Problem when encoding dv to DVD mpeg2
ADI_RO
17th March 2007, 17:59
My steps are :
Capture from cam with windv.
Edit the video with Adobe Premiere.
Encode with CCE 2.70.02.12.
Author the video with TMPGEnc.
Everything looks ok on my PC but on my DVD the image is shaking,has lot of ghosting.
I'm form PAL land.
Here's the file :
http://www.filesend.net/download.php?f=c5582c1ca84024f7a7e55fd23daf7781
davidhorman
17th March 2007, 20:50
Your video is bottom-field-first interlaced (as all PAL DV is) but the encoded file is claiming to be frame based (like a movie). My guess is that the TV is treating the frames like TFF video (which is what broadcast video is in the UK), so you're seeing fields out of order.
You should be able to specify that the video is interlaced and BFF when you encode with CCE.
David
ADI_RO
18th March 2007, 12:32
I use the preset PAL DVD from CCE Template,i can't fiind any options regarding field order in CCE?where is it?
Have you seen the "DV to DVD" guide, "3.1.3 CCE settings"?
bb
ADI_RO
19th March 2007, 16:49
Hmm tryed again by uncheking Output Top Field First stream in CCE advanced Tab with no results.
My source resulted from AdobePremeiere is bff i checked,after i encode with CCE the video becomes tff,just switched form pal to ntsc on my dvd player and now the video plays fine,but that's becose my tv is pal and ntsc compatible.
I did the CCE 2.70 guide and watched through 3.1.3 CCE settings
but the menus are different.
I also used the script from 3.1.3 CCE guide,and the settings i use in CCE are from the 2.70 guide.
How can i tell CCE that i want a BFF video?Please help.
This is the script i used :
ConvertToYUY2
SeparateFields()
odd=SelectOdd.Convolution3D(1, 6, 10, 6, 8, 2.8, 0)
evn=SelectEven.Convolution3D(1, 6, 10, 6, 8, 2.8, 0)
Interleave(evn,odd)
Weave()
DoubleWeave.SelectOdd()
davidhorman
19th March 2007, 20:38
That script is reversing the field polarity, so you're (now) giving CCE TFF video. I assume you were doing something different before when you encoded that sample. That script is only an example of running a filter, btw - you could just use:
doubleweave.selectodd
to change to TFF. Or, you could just forego AviSynth altogether and encode a BFF DVD.
From a quick read of the DV to DVD guide, make sure you don't have the "progressive frame flag" checkbox ticked.
David
As far as I know CCE always creates TFF output. There is an option called "Upper field first", or "Offset line" for versions CCE-SP 2.67+ or CCE Basic, which you can use to shift the video by one line to reverse field order. The AviSynth script from the guide drops a field instead of shifting the video spatially, which is considered to be better; the difference is not much, though.
Please refer to the CCE FAQ in the CCE forum, Q10 and Q11.
bb
ADI_RO
20th March 2007, 15:24
This is very confusing,i just read the faq and didn't understand what to do in case i have a bff video and want to use CCE to encode a bff video for pal TV.
Can some one point to the right settings for CEE and maybe a script...i want to use some filters also.
In the "DV to DVD" guide the example script there(the one that i use)is for pal,if i understand the script switches the field order,what should i modify to keep the bff order,like i said the video that i'm using is already bff.
CCE encodes TFF only. You may use a script command, e.g. doubleweave.selectodd(), to switch to TFF, or use CCE's built-in function. If you want to encode BFF, you need a different encoder, e.g. Canopus Procoder.
bb
ADI_RO
20th March 2007, 22:00
If you want to encode BFF, you need a different encoder, e.g. Canopus Procoder.
bb
Not necesarely BFF,is there a way by using a script or by setting CCE so that the video encoded with CCE will be playable on a pal TV without problems?
Of course there is a way, and all roads lead to Rome :)
I suggest that you try the following:
1. Make sure the CCE input is 720x576, either by verifying that the source has this resolution and there's no scaling involved, or by scaling to the proper resolution. PAL needs 720x576; PAL DV has this resolution, and that's what you should get from Adobe Premiere in the first place.
2. Encode to MPEG-2 with the "Upper field first" flag set, and omit the "DoubleWeave.SelectOdd()" command. Test that with a short clip, author a DVD, and test it on a TV screen. If the video is shaky, jumping from left to right, then try the other way round, i.e. with the "Upper field first" flag unset.
It shouldn't bee too hard to get a working PAL DVD. There are just two possibilities of setting the field order: one is correct, the other one is wrong :)
bb
ADI_RO
21st March 2007, 12:50
Thanks,i will try that today and post the results.
Mtz
22nd March 2007, 12:27
I don't think we need anymore the avisynth script just for the fields when using CCE. The 3.1.3 CCE settings are outdated and even some user reported 3 years ago that we don't need the "Output top field stream" to be checked or changed from 0 to 1, nobody edited the FAQs. CCE-SP2 can output both BFF or TFF.
Just uncheck it and let the Offset Line to 0.
To make simple for newbies, also the mp2 encoding can be made in CCE. The sound from our consumer cameras is not very good.
I'm just saving the DV with WinDV or Exsate, loading the avi into CCE, made the DV template for CCE and ecoding both mpv and mp2. Nice and simple.
enjoy,
Mtz
ADI_RO
22nd March 2007, 18:23
I don't know exactely what the script does but even whitout the DoubleWeave.SelectOdd() out the video plays shaky.
Without the script event with the Upper field first unchecked or checked the video plays fine on my tv,ofcours Offset Line was 0.
Mtz
23rd March 2007, 12:06
If you have a PAL DV file, encode it as PAL, set the player and TV as PAL and test it again.
I made another test yesterday and changed from PAL to NTSC in the standalone player settings and the movie was shaky also for me.
I made 21 different test with CCE and I choosed at last the simplest settings.
My PAL DV settinns for CCE SP2 are here. (http://www.sendspace.com/file/1t91ly)
enjoy,
Mtz
ADI_RO
23rd March 2007, 12:28
Thanks for your settings i will try them with another movie that i'm saving from my dvcam.
The problem with me was the script,i wanted to use a denoise filter for my capure,but for some reason it allaways switches the field order,i removed DoubleWeave.SelectOdd() but still the output was TFF,i don't really know how to change the script to fix the problem.
Are you talking about the script you posted above? The output certainly changes with respect to the field order, whether you add or don't add DoubleWeave.SelectOdd(). I guess it's not your script but CCE that switches to TFF. PAL DVDs are usually encoded TFF, by the way.
bb
ADI_RO
27th March 2007, 12:02
Are you talking about the script you posted above? The output certainly changes with respect to the field order, whether you add or don't add DoubleWeave.SelectOdd(). I guess it's not your script but CCE that switches to TFF. PAL DVDs are usually encoded TFF, by the way.
bb
No,i tested,the script changes field order,i tested with assumebff().separatefields() and the movie encoded through the script was playng shaky,whitout the script was playng fine.
[...]CCE-SP2 can output both BFF or TFF.[...]
That's true only for CCE SP versions 2.70+. Older versions always flag the encoded stream as TFF, no matter what field order it really has. Thus you change the field order to TFF before you feed the video into CCE. Or you ignore the TFF flagging and encode the video; the output will be shaky. Then you use a tool, e.g. ReStream, to correct the field order flagging in the MPEG-2 file. This is all clearly stated in the CCE FAQ.
What's not included in the FAQ is the fact that the latter method leads to a slight incorrectness regarding the motion vectors. Therefore I prefer to switch to TFF before encoding.
bb
No,i tested,the script changes field order,i tested with assumebff().separatefields() and the movie encoded through the script was playng shaky,whitout the script was playng fine.
I'm afraid I still don't get which script you are talking about.
bb
ADI_RO
29th March 2007, 19:28
ConvertToYUY2
SeparateFields()
odd=SelectOdd.Convolution3D(1, 6, 10, 6, 8, 2.8, 0)
evn=SelectEven.Convolution3D(1, 6, 10, 6, 8, 2.8, 0)
Interleave(evn,odd)
Weave()
DoubleWeave.SelectOdd()
Abond
30th March 2007, 16:47
ConvertToYUY2(interlaced=true)
By default it is treated as progressive.
Mtz
30th March 2007, 23:46
Did you tried just to load directly the avi DV file, and simply encode it? No avisynth, no filters. Just uncheck the "output top field stream" and let the offset line to 0.
enjoy,
Mtz
ADI_RO
31st March 2007, 10:49
Did you tried just to load directly the avi DV file, and simply encode it? No avisynth, no filters. Just uncheck the "output top field stream" and let the offset line to 0.
enjoy,
Mtz
Yes that way it works,like i said a few posts back,but i wanted to use filters through avisynth,that's why i needed the script.
Mtz
31st March 2007, 14:48
So use just the filters. No separating the fileds or anything.
enjoy,
Mtz
Abond
2nd April 2007, 14:22
So use just the filters. No separating the fileds or anything.
enjoy,
Mtz
He is using Convolution3D a spatio-temporal denoiser. If the frames are untouched the filter will treat interlaced artifacts (lines) as noise and try to smooth them regarding the settings. The result is not pleasant :)
@ADI_RO
I can suggest the folowing script:
SeparateFields()
trim(1,0)
Convolution3D(1, 6, 10, 6, 8, 2.8, 0)
AssumeTFF()
Weave()
ConvertToYUY2(interlaced=true)
@Abond:
Your script ignores the fact that there is a one-line spacial displacement between the two fields. If you want to do it this way, you'd have to shift one of the fields by one line up or down, respectively, before applying Convolution3D.
The script in post #21 handles the two field streams separately - this is the correct way to deal with interlaced footage. You should not get unpleasant results - provided that you use the YUY2 version of Convolution3D, not the corrupt YV12 version, which has never been finished.
bb
davidhorman
2nd April 2007, 15:08
If you want to do it this way, you'd have to shift one of the fields by one line up or down, respectively, before applying Convolution3D.
By half a line, in fact, which pretty much rules out the idea.
David
Abond
2nd April 2007, 15:13
@Abond:
Your script ignores the fact that there is a one-line spacial displacement between the two fields. If you want to do it this way, you'd have to shift one of the fields by one line up or down, respectively, before applying Convolution3D.
Well, it seems you are correct, but loading a script as for example
Separatefields()
in Virtualdub I should expect some "jumpy" results (jumps with 1 line displacement) when play it. Hmm, maybe I am wrong, but I don't observe such behavior.
DagDeGani
5th April 2007, 22:17
Hi
I would say it is a problem of codecs.
I had the same problem and solved it by taking out a bad decoder (DV in my case)
check with GSPOT and cancel (delete or uninstall) DV and MPEG2 codecs you do not need.
bad DV and MPEG2 decoders are Matrox, Pinnacle, Ligos, Roxio..
DagDeGani
vBulletin® v3.8.5, Copyright ©2000-2012, Jelsoft Enterprises Ltd.