Best "still camera" render options to make DVD?

johnmeyer wrote on 6/6/2007, 9:43 AM
I need to create DVDs from lots of 640x480 30 fps progressive MJPEG video from a Canon A710 still camera. Here's a sample:

http://img2.dpreview.com/reviews/A710/MVI_0115.AVI

Question: What are the best project settings, and what are the best render settings to use in order to get a DVD-legal MPEG-2 file that, when authored to a DVD, will look best when played on a standard NTSC monitor?

So far, I have used project settings of 720x480, 29.97 with Deinterlace set to none. Here's what that looks like:



I then used render settings that were the standard DVD Architect NTSC settings, but modified to progressive:




Since the video is 30 fps, and it appears I cannot encode at 30 fps (must use 29.97), if I want to put the result on a DVD, what problems am I going to have (dropped or repeated frames), and is there a better way? The results look OK on my sample clips, but I don't want to discover problems later on with more complex clips.

Comments

Chienworks wrote on 6/6/2007, 1:40 PM
One thing you might want to consider is setting the playback rate to 0.999 and disabling resampling. That will force the clip rate to almost exactly match the output rate 1:1. You'll double one frame every 9 hours 16 minutes, and 6 2/3 seconds or so, but you can probably live with that. The change is small enough that you'll never notice it, but it will avoid any blending of frames that happens when resampling, and avoid dropping/doubling (almost) when not resampling.
johnmeyer wrote on 6/6/2007, 2:36 PM
Kelly,

Thanks. That was exactly the idea I was trying to come up with. 1000/1001 playback rate.

Actually, it will double a frame approximately 1000/30 seconds, or about twice a minute, won't it?

Maybe I'll just patch the header to 29.97...
farss wrote on 6/6/2007, 3:09 PM
I was going to say there's a dead easy way to do this 100% accurately but then I checked and Vegas will not let you set the project to 30fps. What a PIA.

If it did then the trick is to match the project to the media, set the ruler to frames, note the number of frames and then change the project properties to the new frame rate and ctl drag the end of the media to the same number of frames. Works for 24fps <->25fps a treat. Unless there's some way to jig the project to 30fps of no real use. This limitation is going to be a problem with the variable frame rate cameras soon to hit even the prosummer market.

Bob.
Chienworks wrote on 6/6/2007, 3:19 PM
I'm assuming the 29.97 limitation is there to remain compatable with most of the NTSC TVs still out there in use.

John, the 2 frames per minute would be the mismatch between 30 and 29.97. But setting the playback rate to 0.999 changes your video to 29.97 as compared to NTSC actually being 29.9700299700299700..... which is so close that it's only off by one frame in a million.

Now, the sad part, which was quite a bone of contention in these forums some time ago, is that the first mismatch happens only a few seconds into the timeline. Oops. Would have been nice if the first one came after 9 hours instead, then probably no one would ever see it. There is a workaround though, but i haven't tried it in later versions of Vegas to see if it's still functional. Start your project at something like the 00:00:10;00 point on the timeline. Set the loop selection to start there and end at the end of your project. Render timeline selection only. This jumps over the spot near the beginning where the doubled frame would happen.

I suppose you could also have black or a static title running the first few seconds.

Then again, if any of your audience notices a doubled frame then you're probably not sufficiently entertaining! Either that or you haven't given them pre-movie cocktails yet. ;)
johnmeyer wrote on 6/6/2007, 3:28 PM
but then I checked and Vegas will not let you set the project to 30fps.

You can type any number you want. Those are actually combo boxes, not listboxes that are used for the fps setting. So, I can easily set the project rate to 30 fps, and set it to progressive. I've already done this. It matches the source media exactly, and on the Vegas timeline everything is perfect.

The problem is that the DVD spec apparently only permits 23.976, 25, and 29.97 video. Anything else is rejected. Thus, my "perfect" 30 fps must be rendered to 29.97 in order to be acceptable to DVDA (or any other authoring package, I suppose).

I'm going to re-read your last post several times and see if I can figure out how to make that work. What you are describing is the film to PAL conversion, which I assume you have done more than once or twice ...

Kelly,

I am not completely understanding what you are getting at. The original video is 30.000 fps. The normal project settings are 1000/1001 * 30 = that long number in your last post.
johnmeyer wrote on 6/6/2007, 4:05 PM
There may be an easier way (I am all ears), but I think this produces the "perfect" output I was looking for (when starting with 30 fps 640x480 video from my Canon still camera):

1. Use "avi frame rate changer" (a freeware utility) to patch the header of the 30 fps progressive video to make it 29.97 progressive.

2. Drop that patched video onto a standard Vegas NTSC project timeline.

3. Change the Vegas project properties from 720x480 to 704x480 (we didn't talk about resolution, but this eliminates the cropping bars and is a legal DVD resolution).

4. Change the Vegas properties from interlaced to progressive. Also change deinterlace method to "None" (although I don't think this is really needed).

5. Ungroup the audio, right click and select Properties. Select Time Shift Method: Classic. Note the original length and enter 1001/1000 times that number in the "New Length" box.

6. Trim the audio (which is now longer than the video) to match the video length and re-group.

I render using the standard DVDA NTSC 29.97 template, but change the output to progressive (and change the average bitrate to whatever). I put this into DVD Architect, and it is quite happy (no re-encode) and the output looks great.

For anyone else reading this, you do need to install the appropriate codec for the video your still camera produces. In this case it is a Canon still camera, and they usually use motion JPEG (MJPEG). I use the MainConcept MJPEG codec.

Like I said, if someone has an easier way to do this, I'd love to make it a less geeky process.

farss wrote on 6/6/2007, 4:05 PM
You're right!

So you can use the frame rate conversion method. Rather than me try to explain it it's covered in the manual and a white paper from back in the DVX100 days. If it works for 24<->25fps I can't see why it would not work for 30fps -> 29.976.

Bob.
John_Cline wrote on 6/6/2007, 4:19 PM
See this thread from May of 2003 for a discussion of the 29.97 vs 29.97002997 issue: (I started off a little upset about the doubled frame at 2 seconds 28 frames, then BillyBoy dumped all over the thread. It got ugly, but there is still some useful information in the thread.)

http://www.sonycreativesoftware.com/forums/ShowMessage.asp?ForumID=4&MessageID=180299

At the time, a user named, "Brazilian" wrote a little utility that fixes the problem. It allows you to change the header in an .avi file back and forth from 2997/1000 and 30000/1001. I've been using this little gem almost daily since then.

www.johncline.com/speedmangler.zip

John
johnmeyer wrote on 6/6/2007, 4:59 PM
Interesting old thread. I skipped all the BB insanity and concentrated on the issue of fixing 29.970000 fps files to match the 29.97002997 project rate actually used by Vegas. This is indeed similar to what I am trying to do, and it sounds like your solution was the same, namely to patch the AVI to true NTSC speed, and then, I assume, adjust the audio and trim so that the speed and length are correct.

The more I think about this, the more I am pretty sure that this is the only solution. The Sonic Foundry engineers that participated in that thread made it pretty clear that they didn't think it should be up to Vegas to change the frame rate of the video on the timeline and indeed, even to this day, when you click on an event's properties, the framerate is shown, but is grayed out.

FWIW, the tool I use is "AVI Frame Rate Changer," an equally hacked-together header patcher.
farss wrote on 6/6/2007, 6:16 PM
Has anyone tried my / Vegas Native method?

Would seem by far the simplest if it works.

I don't have any 30fps footage to try it with although maybe I could generate some. If anyone has some native 30fps footage it'd be easier for them to test it.

Bob.
johnmeyer wrote on 6/6/2007, 7:35 PM
The link in my original post above provides a simple MJPEG 30 fps progressive clip.

Chienworks wrote on 6/6/2007, 7:39 PM
John, if you merely drop 30fps footage on a 29.97 or 29.9700299700.. timeline you will end up fudging about 2 frames per minute.

Now, Vegas' timeline and DVD players run at 29.9700299700... so that would be the ideal rate to use. The problem is, using the tools that are provided in Vegas, you don't have any way to achieve that. You can't type in 0.999000999000... in the playback rate 'cause it only allows 3 decimal places. That means that the closest you can come is 29.97, which is almost, but not quite exactly the same as 29.9700299700... In fact, they're so close that you only fudge one frame every 9 hours or so. You can't match the actual project frame rate by using the playback rate adjustment, but you an get close enough as to make no practical difference.
johnmeyer wrote on 6/6/2007, 8:41 PM
That means that the closest you can come is 29.97, which is almost, but not quite exactly the same as 29.9700299700 ...

Yes, I think that is what you were saying in an earlier post, and after my initial problem understanding that, I now understand that if you set playback rate to .999 you match the playback rate and the NTSC rate closely enough that no frames will be added or lost over any reasonable timeframe.

Your method would work except for the bug that John discovered back in that thread a long time ago. It is still there. I just verified it by putting following your directions exactly -- setting the playback rate to 0.999 and disabling resample. Project properties were standard NTSC, but changed to progressive. Just as in that old thread however, when I got to frame 88 and 89, I got a duplicate frame. Real easy to see.

I then tried to follow your suggestion for a workaround. I moved the event further down the timeline, but the problem was still there. I tried trimming the left edge of the event, thus looping from the end of the event, but the duplicate remained. I tried a bunch of other things, but couldn't get rid of that pesky duplicate.

Your method definitely would be easier, but I can't get around the small bug. I'll give it some more thought. Maybe there is a way.
farss wrote on 6/6/2007, 8:46 PM
Downloaded it but all V7.0e gives me is the audio.
Chienworks wrote on 6/6/2007, 8:55 PM
Well, i suppose you could split the clip at frames 88 and 89 and take that frame out. If you left the audio intact and moved the first 88 frames forward one frame, you would have a slight sync issue for the first 2.9 seconds, but it might not be noticeable. Alternatively you could try lopping out the one frame's worth of audio too to retain sync, and the gap might be less objectionable than out of sync would be. Or split the difference and move the audio forward a half frame.
johnmeyer wrote on 6/6/2007, 9:20 PM
Splitting doesn't work, but I tried slipping the entire event to the left (hold Alt key and then slide the entire video so that the offset is exactly equal to the event length. The duplicate is gone from the pesky 88, 89 frame location, but I don't know if it has gone somewhere else, or whether it really has been banished to the 9 hours down the timeline neverland that you speak of. If this solution is viable, then it would be trivial to write a script that would offset the event by exactly the length of the event. Also, since a script can access both the project fps rate and the event fps, and can set the playback rate, it would be easy to generalize the solution for any project/event combination.

So, I think I have two solutions: the John_Cline solution and the Kelly solution. Both look like they'll work pretty well, and give me the no-duplicate, no missing frame solution I wanted. Thanks!

Also, if anyone wants a rather intriguing tool for changing AVI framerates, but one that also has a lot of the information provided by GSPot (and more), then you should look into AVI-Mux_GUI. I stumbled on this today while looking for solutions to this issue. It is pretty rough around the edges, and you have to read the manual to figure out how to use it, but I think it actually does a more accurate job of patching the fps header.




johnmeyer wrote on 6/6/2007, 9:21 PM
Downloaded it but all V7.0e gives me is the audio.

Yeah, you need a motion JPEG codec. You probably don't want to deal with this now, but if you ever really need to do it, you can download the Mainconcept MJPEG demo. The demo version will watermark anything you encode, but the decoder works just like the paid version.
farss wrote on 6/6/2007, 10:19 PM
One thing I did manage to do was convert 25fps to a WMV at 30fps using the standard Vegas way, that's not interpolation, just running the frames faster and it works a treat. Motion speeds up 20% as it should.

I'd seriously suggest trying this for 30fps to 29.97fps conversion, no interpolation, no audio problems etc. If it works for 25fps to 24fps it should work and the Vegas NTSC preset is I'd imagine 100% accurate.
farss wrote on 6/6/2007, 10:48 PM
OK, installed MJPEG codec!

Clip contains 221 frames on a 30fps T/L. Changed T/L to NTSC and stretched clip to 221 frames, disabled resampling and rendered out as progressive NTSC. Looks perfect to me but the squirrel moves so erratically it's hard to know for certain.

Bob
douglas_clark wrote on 6/7/2007, 2:26 AM
John, I've never tried this, but if your final output is to LCD TV/monitor/projector, you might want to try making a square pixel DVD, to avoid rescaling/resampling completely. For example with the 640x480 video un-rescaled within a 720x480 square-pixel frame (black borders left and right).

The MainConcept MPEG2 render codec allows an aspect ratio of "square pixels", and someone once told me the DVD spec actually supports square pixels (but I can't find any confirmation of that at the moment). I don't know what a DVD player would do with this though....but I've been wanting to try it. I have a Canon S3 IS which also produces 640x480 30.000p MJPEG video.

Has anybody tried this?

Douglas

Home-built ASUS PRIME Z270-A, i7-7700K, 32GB; Win 10 Pro x64 (22H2);
- Intel HD Graphics 630 (built-in); no video card; ViewSonic VP3268-4K display via HDMI
- C: Samsung SSD 970 EVO 1TB; + several 10TB HDDs
- Røde AI-1 via Røde AI-1 ASIO driver;

johnmeyer wrote on 6/7/2007, 8:44 AM
Douglas,

I'll look at the 640x480 square pixel option this morning, but I am pretty sure that 640x480 is NOT a legal DVD resolution (for NTSC, the only resolutions I am aware of are 352x240, 352x480, 704x480, and 720x480 -- and I'm not sure the first one is actually allowed in all cases).

Bob,

Your technique and Kelly's technique of setting playback to 0.999 are identical (you do it interactively; he does it by setting a number). On the squirrel clip, you should find that frame 88 and 89 are repeated (just look at the frame counter in the preview windows while advancing a frame at a time. This is about two seconds into the clip. This is the problem that I think I've solved by Alt-dragging (i.e., slipping) the event to the left by the entire length of the clip so that the "second instance" of the event is playing. That's probably a bad way to describe it, but it appears that internally, that is how Vegas handles it. Most of the half dozen or more threads that I uncovered in this forum that have discussed this problem (didn't know they existed when I posted this thread) have all talked about workarounds that require you to capture an extra two seconds and then ignore that footage. Obviously that is not a very practical workaround. This event slip seems to do the trick and lets you retain 100% of what you shot.