demo dvd me beautiful
category: general [glöplog]
since it seems to be so trendy to do demo dvds these days, maybe we can share our encoding parameters and play abit of point and laugh at newb. me being the newb trying to get a dvd finished up.
i been kkapturing at 1024*768 and then running ffmpeg as demonstrated:
ffmpeg -r 50 -i minimalartifact_-_electro_glide_in_black%04d.bmp -i minimalartifact_-_electro_glide_in_black.wav -target pal-dvd -r 25 -bufsize 1835008 -packetsize 2048 -muxrate 10080000 -b 9000k -bt 4000k -minrate 8000k -maxrate 9000k -qmin 1 -qmax 3 -threads 4 -strict very -dc 10 -bf 2 -dct mmx -idct libmpeg2mmx -aspect 4:3 -ar 44100 -ab 256k -y OUTPUT.mpg
seems to work but quality is still crap, -qmax 2 fixes it but throws out quite a few buffer underrun warnings. which from what i read is related to the bitrate going over the maximum allowed for dvds, and might cause the thing not to play properly on some players.
any hints or tricks to get something of better quality out of ffmpeg? bartman? trixter? ryg?
besides capturing the demo in higher res and hyper antialiased to death ofcourse.
i been kkapturing at 1024*768 and then running ffmpeg as demonstrated:
ffmpeg -r 50 -i minimalartifact_-_electro_glide_in_black%04d.bmp -i minimalartifact_-_electro_glide_in_black.wav -target pal-dvd -r 25 -bufsize 1835008 -packetsize 2048 -muxrate 10080000 -b 9000k -bt 4000k -minrate 8000k -maxrate 9000k -qmin 1 -qmax 3 -threads 4 -strict very -dc 10 -bf 2 -dct mmx -idct libmpeg2mmx -aspect 4:3 -ar 44100 -ab 256k -y OUTPUT.mpg
seems to work but quality is still crap, -qmax 2 fixes it but throws out quite a few buffer underrun warnings. which from what i read is related to the bitrate going over the maximum allowed for dvds, and might cause the thing not to play properly on some players.
any hints or tricks to get something of better quality out of ffmpeg? bartman? trixter? ryg?
besides capturing the demo in higher res and hyper antialiased to death ofcourse.
Capture the demo in higher res and hyper-antialias it to death should be your FIRST step. What we're doing for MC3:
- Capture demo in the highest res it allows (although we stop at 1920x1080; it's 16:9, whereas 1920x1200 is 16:10 and some demos don't adjust well to 16:10 even though they say they do). Even if your target is 720x480/576, do it, because the resizing and anti-aliasing will result in less high-contrast transitions which compress better without artifacts.
- Never add filters, not even a sharpening filter. All they do is cover/obscure picture detail, not enhance it. You can't create detail that isn't there so don't try.
- Preconfigure your graphics card to forced "quality" settings (on my GTX card I've been selecting 16xQ anti-aliasing and turning off all texture compression because my card has nearly a gig of vram). Sometimes this bugs a demo; if so, go back and kkapture it again, but at least try on the best settings.
- Resample down using the best possible resizer that is time-practical (ie. spline64)
- Capture in real video rates if you ever want to display on a TV without dropping or adding frames. This means you enter rates into kkapture like 60000/1001 or 50000/1001 (thanks to ryg for adding that at my request, although since it was for chaos' nvscene talk, he probably did it for chaos specifically ;-)
- If more than one demo is in the output you're encoding, 2-pass or n-pass encoding, no question.
- If you're putting multiple demos on a dvd, make it one giant output so that 2-pass/n-pass encoding can spread the bitrate appropriately.
And here's the part people most people forget:
If making a dvd, DEAL WITH INTERLACING because a demo at 24/25/30fps really sucks compared to a demo at 50/60fps, and the only way you're going to get 50/60fps out of a dvd is an interlaced video. That is where most of the online websites like capped, demoscene.tv, etc. -- and I love ya guys -- get it wrong. (Or, might be forced to do it wrong due to resource limitations.) One of the *hallmarks* of our art form (yes I'm calling it an artform, deal with it) is the nature of having been created ON a computer FOR a computer, and part of that artform is 50/60Hz. Arbitrarily limiting a demo to a lower framerate when it was created for higher just blows. If a demo is created specifically for "film look" then that's one thing, but limiting it because you want less data to process is a crime IMO.
Obviously I'm a nut, but wouldn't you want a nut making MC3 instead of someone who was happy with "30fps"?
As for your bitrate trouble, you will find that some demos will simply have compression artifacts on DVD because DVD only goes as high as 9800mbps. This is something I had to come to terms with for MC3 (we're including a DVD of the main program with the blu-ray for those who want to upgrade later). The only way to make it better is to give the encoder less frames for the bitrate -- meaning, if 30i or 30p have artifacts, feed it 24p. The DVD and blu-ray specs were tuned mostly for film, so that's why they only perform decently at film rates (something that has been painful for me to work with in coming up with the best possible quality video for MC3).
- Capture demo in the highest res it allows (although we stop at 1920x1080; it's 16:9, whereas 1920x1200 is 16:10 and some demos don't adjust well to 16:10 even though they say they do). Even if your target is 720x480/576, do it, because the resizing and anti-aliasing will result in less high-contrast transitions which compress better without artifacts.
- Never add filters, not even a sharpening filter. All they do is cover/obscure picture detail, not enhance it. You can't create detail that isn't there so don't try.
- Preconfigure your graphics card to forced "quality" settings (on my GTX card I've been selecting 16xQ anti-aliasing and turning off all texture compression because my card has nearly a gig of vram). Sometimes this bugs a demo; if so, go back and kkapture it again, but at least try on the best settings.
- Resample down using the best possible resizer that is time-practical (ie. spline64)
- Capture in real video rates if you ever want to display on a TV without dropping or adding frames. This means you enter rates into kkapture like 60000/1001 or 50000/1001 (thanks to ryg for adding that at my request, although since it was for chaos' nvscene talk, he probably did it for chaos specifically ;-)
- If more than one demo is in the output you're encoding, 2-pass or n-pass encoding, no question.
- If you're putting multiple demos on a dvd, make it one giant output so that 2-pass/n-pass encoding can spread the bitrate appropriately.
And here's the part people most people forget:
If making a dvd, DEAL WITH INTERLACING because a demo at 24/25/30fps really sucks compared to a demo at 50/60fps, and the only way you're going to get 50/60fps out of a dvd is an interlaced video. That is where most of the online websites like capped, demoscene.tv, etc. -- and I love ya guys -- get it wrong. (Or, might be forced to do it wrong due to resource limitations.) One of the *hallmarks* of our art form (yes I'm calling it an artform, deal with it) is the nature of having been created ON a computer FOR a computer, and part of that artform is 50/60Hz. Arbitrarily limiting a demo to a lower framerate when it was created for higher just blows. If a demo is created specifically for "film look" then that's one thing, but limiting it because you want less data to process is a crime IMO.
Obviously I'm a nut, but wouldn't you want a nut making MC3 instead of someone who was happy with "30fps"?
As for your bitrate trouble, you will find that some demos will simply have compression artifacts on DVD because DVD only goes as high as 9800mbps. This is something I had to come to terms with for MC3 (we're including a DVD of the main program with the blu-ray for those who want to upgrade later). The only way to make it better is to give the encoder less frames for the bitrate -- meaning, if 30i or 30p have artifacts, feed it 24p. The DVD and blu-ray specs were tuned mostly for film, so that's why they only perform decently at film rates (something that has been painful for me to work with in coming up with the best possible quality video for MC3).
trixter, what tools do you prefer for compression?
trixter: thanks for the reply, but thats mostly what i had already read from the mc threads, no actual practical added value for me :/ except for the 2pass hint, should defnitly try that.
would love to deal with interlace issue but i really have no deeper knowledge on video to handle it. any hints on what that translates into practical terms?
im aware anything that goes down to pixel levels will look like crap on dvd, just hoping to hack it in a not so terribly horrendously newb manner. so, further practical hints on how to improve my parameter combo unraveled so far, would be really welcome.
would love to deal with interlace issue but i really have no deeper knowledge on video to handle it. any hints on what that translates into practical terms?
im aware anything that goes down to pixel levels will look like crap on dvd, just hoping to hack it in a not so terribly horrendously newb manner. so, further practical hints on how to improve my parameter combo unraveled so far, would be really welcome.
@nosfe: I prefer Cinemacraft for DVD encoding.
@ps: Working with interlaced video means kkapturing the source at the target framerate (50000/1001 or 60000/1001) and then manipulating it into a 25i/29.97i source for the MPEG-2 encoder. You can do this in an easy but clumsy way (Premiere Pro: select an interlaced preset like DV, drag clip onto timeline, right-click clip->Field Options->Interlace Consecutive Frames) or a cleaner way (avisynth script). Converting 60p to 30i is very easy in avisynth; use something like:
It's extremely important to get a player that can play back interlaced content correctly so you can make sure you don't have swapped fields! VLC with Video->Deinterlace->Linear works, as do most versions of PowerDVD past version 4. Others probably work too but those are the only ones I use on a regular basis to check my work. If you play it and the field order is right, it plays smoothly. If it plays jerky/wacko, like the frame sequence is 2,1,4,3,6,5,8,7 etc., you swapped fields somewhere and either need to fix it in the avisynth script or in the MPEG-2 encoder. For when I used to make mistakes, I would fix it in the encoder. Broadcast standards are lower/even field first for NTSC video, upper/odd field first for PAL.
As for your encoding combo, trying to optimize that is a losing battle because there are simply no combination of magic encoders or encoder options that will shoehorn something like, oh, the detailed endcubes of Stargazer onto any dvd while simultaneously preserving all that fine details and still staying within the spec of 9800mbps. You can create DVDs that use more than that for difficult scenes, and I'd say about half of all modern DVD players might actually be able to play it, but that's up to you. I personally don't make DVDs that I won't guarantee on every player...
@ps: Working with interlaced video means kkapturing the source at the target framerate (50000/1001 or 60000/1001) and then manipulating it into a 25i/29.97i source for the MPEG-2 encoder. You can do this in an easy but clumsy way (Premiere Pro: select an interlaced preset like DV, drag clip onto timeline, right-click clip->Field Options->Interlace Consecutive Frames) or a cleaner way (avisynth script). Converting 60p to 30i is very easy in avisynth; use something like:
Code:
avisource("my_60p_source.avi")
SeparateFields()
SelectEvery(4, 0, 3) # 4,1,2 is for odd field first; 4,0,3 is for even field first
weave()
It's extremely important to get a player that can play back interlaced content correctly so you can make sure you don't have swapped fields! VLC with Video->Deinterlace->Linear works, as do most versions of PowerDVD past version 4. Others probably work too but those are the only ones I use on a regular basis to check my work. If you play it and the field order is right, it plays smoothly. If it plays jerky/wacko, like the frame sequence is 2,1,4,3,6,5,8,7 etc., you swapped fields somewhere and either need to fix it in the avisynth script or in the MPEG-2 encoder. For when I used to make mistakes, I would fix it in the encoder. Broadcast standards are lower/even field first for NTSC video, upper/odd field first for PAL.
As for your encoding combo, trying to optimize that is a losing battle because there are simply no combination of magic encoders or encoder options that will shoehorn something like, oh, the detailed endcubes of Stargazer onto any dvd while simultaneously preserving all that fine details and still staying within the spec of 9800mbps. You can create DVDs that use more than that for difficult scenes, and I'd say about half of all modern DVD players might actually be able to play it, but that's up to you. I personally don't make DVDs that I won't guarantee on every player...
BTW, I am a complete moron and PAL is not 50000/1001 but is, of course, 50. Sorry. I live in NTSC-land and have had that wacky issue beaten into my head a lot.
I used TMPGEnc for the Demo or Die! DVDs, just use a MPEG2 preset, 2pass VBR something like 6000 - 8000 kbps, depending on how much space you got.
thanks for the insight, trixter. highly appreciated.
off topic but to respond to trixter:
I typically keep it to 30 fps since at the x264 settings I use already strain most CPUs. :) As well, I notice a lot of jitter on my 60 fps caps through flash in any encoding setting, but it might just be frame rate conversion to my 75 hz monitor. ~ Have yet to test it fully.
Capped does support frame rates up to 60 fps though, and I regularly upload amiga caps at 50 hz since they often look like crap at 30 fps.
Thanks for the love though. :) I think this might inspire me to experiment a bit ~
Quote:
That is where most of the online websites like capped, demoscene.tv, etc. -- and I love ya guys -- get it wrong. (Or, might be forced to do it wrong due to resource limitations.)
I typically keep it to 30 fps since at the x264 settings I use already strain most CPUs. :) As well, I notice a lot of jitter on my 60 fps caps through flash in any encoding setting, but it might just be frame rate conversion to my 75 hz monitor. ~ Have yet to test it fully.
Capped does support frame rates up to 60 fps though, and I regularly upload amiga caps at 50 hz since they often look like crap at 30 fps.
Thanks for the love though. :) I think this might inspire me to experiment a bit ~
@micksam: I did say "might be limited by resources" so I did acknowledge it may not have been your choice. Also, if you have an LCD monitor you should always keep it at 60Hz. LCDs don't flicker so it is a lot harder to notice the difference between 60 and 75 on an LCD. The only other refresh rate I run my LCD at is 72Hz for watching movies (72 / 3 = 24).
Quote:
I used TMPGEnc for the Demo or Die! DVDs, just use a MPEG2 preset
but, but, but.. THATS CHEATING!!
i'll have to give it a try and see how well it does with pixelized stuff. :)
trixter - Yeah I know you acknowledged that. :) I was just randomly informing. ~
In general, MPEG2 is sort of suck for noise demos. That is, unless one appreciates even more artifacts.
Then, stop making noise demos, that would be nice.
offtopic: <3 avisynth. ridiculously easy to make plugins for, too. a stunning and really well designed piece of work, imho!
this classic was made practically entirely in iDVD! wait, what were we talking about
what why havent i heard about the jml-dvd?
btw. what would be the best kind of approach for recording demos from old dos machines, would rather use real hardware for some things instead of dosbox..
Why, I've talked about that too: http://www.archive.org/details/SelfPreservationMode
Holy crap dude. I always knew you took the archiving seriously, and that the MindCandy-series weren't exactly "a cakewalk", but shit: the amount of respect you have for the original source material is immense. Thanks for that :)
Just a question:
Have you tried to use 30p and motion antialiasing? Does it looks good or shit?
Have you tried to use 30p and motion antialiasing? Does it looks good or shit?
Somebody buy me a scanconverter and lots of time and I'll only do hardware captures from now on. :)
Other than that: what trixter said ;)
btw: Saw your self-preservation talk trixter, really informative and I should really consider changing some of my approaches. Winter's coming so I'll have time to experiment with capturing again.
Other than that: what trixter said ;)
btw: Saw your self-preservation talk trixter, really informative and I should really consider changing some of my approaches. Winter's coming so I'll have time to experiment with capturing again.