Virtual DJ Studio Home | NGWave Home | Official Facebook Page | Unofficial VDJ Users Group

Author Topic: New Video about... video :)  (Read 7806 times)

Offline Justin

  • Site Administrator
  • Administrator
  • Hero Member
  • *****
  • Posts: 949
  • Karma: 11
    • View Profile
    • Virtual DJ Studio
Re: New Video about... video :)
« Reply #15 on: October 22, 2016, 03:54:06 PM »
Did some experimenting today. Some really cheap HDTV sets (my Dad's APEX for example) do some SERIOUS over-scanning on HDMI. 11% per side, and no settings to change it.

I'm glad I did test it on a variety of TVs, since you sometimes never know what situation you're getting into. I changed the dialog slightly and made it very simple to adjust the "compensation" (aka under-scan) with visual CUEs (see attached). I was going to make the arrows just white but had a little fun with it... everyone uses Red, Green, Blue, and Yellow (eBay, Google, Microsoft...) plus I thought it looked nice...

So while that box is checked, all overlaid graphics are replaced with that screen (but keeping whatever background, including video, but not Karaoke) during adjustment. Note that the Over-scan setting does *not* apply to the Preview window, nor should it.

I finally got static image backgrounds working again. Surprisingly this was more difficult than before now that I'm using Video, but the result is actually better quality (not that anyone would notice) and the static graphic fades in and out like Video does when you start/stop a Karaoke song :) (note that a long time ago I removed the "fade" effect for technical reasons, but it's totally rewritten now).

So that drop-down works now. It scans \%user%\AppData\....\backgrounds for background images (adding images will now copy them to that folder... I have my reasons...) and validates that any video files are 30 seconds or less. It also shows all attached cameras (had to test on laptop with built-in webcam + external USB cam) and switches between any seamlessly.

Really starting to shape up... ;)   Sooooooon....
-- Justin Nelson, CEO
   Next Generation Software, Inc.
   http://www.vdj.net/

Offline Fabio

  • Administrator
  • Hero Member
  • *****
  • Posts: 755
  • Karma: 11
    • View Profile
Re: New Video about... video :)
« Reply #16 on: October 22, 2016, 07:13:35 PM »
You're so close!!!

Quote
I'm glad I did test it on a variety of TVs, since you sometimes never know what situation you're getting into. I changed the dialog slightly and made it very simple to adjust the "compensation" (aka under-scan) with visual CUEs

So true!

Fabio Q.
Shooting Star Karaoke

Offline Justin

  • Site Administrator
  • Administrator
  • Hero Member
  • *****
  • Posts: 949
  • Karma: 11
    • View Profile
    • Virtual DJ Studio
Re: New Video about... video :)
« Reply #17 on: October 23, 2016, 01:48:23 PM »
Ok, just a couple minor updates. Fixed a couple things that have been bothering me.

Now, when your background image or video (that was the hard part - video) is not 16:9 (be it 4:3, tall like phone video, or super-wide like some movies), you can check "Zoom Background to Fill (Crop)". You can also do this for video files you play in the player lines. I decided not to offer an "arbitrary" zoom feature as in a previous attempt.

I find it most handy with cheap webcams which are always 4:3 but show stretched. No longer - I preserve the aspect, so you can either have black bars on the sides, or do the zoom/crop and use the whole screen - either way preserving the aspect ratio. Of course some webcams are wide-screen so this won't even affect them. Actually during Karaoke it might be better to keep it cropped 4:3 anyway, so you see more of the camera along with the profile pics... all up to the DJ :)

I changed the overscan to a slider, allowing from 0.0% (aka none) to 12.0%, in 0.1% increments. This way you can get right to the edge of whatever TV you are using, and if you have a TV that goes more than 12% over the edges, then I'm sorry - get a new TV :)  This isn't like older TVs where that can happen over time - these are digital TVs that specifically resize the image and were designed to cut off a large percentage of the action, presumably so that they look BIGGER in the store. In fact I'm almost positive that's why they do this - overscan is totally unnecessary with digital TV, yet they still do it... but that's an entirely different rant I won't go into right now.

In any case I've done everything I can to "fix" what the TV manufacturers intentionally broke...

Just for fun (and actually to make it more readable), clicking the "Adjust Overscan" box also darkens whatever is on the screen to 5%, using the fade effect of course. It makes it appear more like something you did on purpose, rather than suddenly having weird colored arrows on top of your music video or video loop with white unreadable text over top... if that makes sense...

Back to the zoom/crop vs letterbox/pillar bars issue... there IS a pretty good compromise I have used with VLC when watching Star Trek: TNG re-runs (I have the whole series on my movies drive) on a wide-screen TV: I zoom CROP it at 16:10 (from the 16:12 aka 4:3 source), THEN zoom STRETCH that to a 16:9 display. It makes the image just slightly wide-stretched, and cuts off just a tiny bit of the upper and lower portion, so all together you get a pretty good interpretation while using your full screen.

I remember when HD was new and different TV networks did different things, including so-called "panoramic" zoom (headache!)... but nobody tried my little some-of-one and some-of-the-other approach.

Also keep in mind that these 4:3 sources were intended to be "overscanned" anyway -- so of that little bit that you cut off by cropping it to 16:10, most of it was going to be cut off in the TV it was intended to play on anyway.

*sigh* I could go on and on about this, but alas, I am making a DJ/Karaoke program, not a media player application. Though it is becoming quite the contender... as I figure out more and more nifty little tricks...

Plus, once I get the audio portion done, it will be nice to use my AGC for movie watching, especially late when I don't want loud parts to wake the neighbors, but still be able to hear the quiet dialog parts...

All in all a semi-productive day. Didn't get what I wanted done (audio) but I tidied up and finished the video/background stuff. I'll leave the hybrid stretch/crop mode for another day...
-- Justin Nelson, CEO
   Next Generation Software, Inc.
   http://www.vdj.net/

Offline vcationguy

  • Sr. Member
  • ****
  • Posts: 310
  • Karma: 0
    • View Profile
Re: New Video about... video :)
« Reply #18 on: October 24, 2016, 05:42:22 AM »
Damn, can't wait to get this in my hands and play with it!!!  :)

Offline Justin

  • Site Administrator
  • Administrator
  • Hero Member
  • *****
  • Posts: 949
  • Karma: 11
    • View Profile
    • Virtual DJ Studio
Re: New Video about... video :)
« Reply #19 on: October 25, 2016, 11:34:04 AM »
The audio portion is proving to be more difficult than I expected. It can (and will) be done, it's just difficult. Basically I have to create an internal "audio device", aka a fake sound card, to suck up the sound data from the video player and then do what I want with it. I have a plan, but it will take some time...

In the mean time, I needed a break from that for a while so I've been further improving the video portion of the whole thing. One thing I added was a "4:3" checkbox, though I may need to rename it as it's kinda misleading... the idea is, as I see happen so often, you connect your PC to a wide-screen HDTV, but using composite (RCA) or S-Video, and everything stretches wide. In this case, since I'm outputting a 16:9 rectangle, you'd also have black bars. This checkbox simply accounts for this mis-setting on the TV and makes it look normal by sending it as a 4:3 box (squeezed in) that the TV then stretches to display correctly.

Note that on a 4:3 TV or monitor, you do *not* want this setting. In that case you would just have a normal letter-boxed picture. That's why I think I need to rename the check box... see attached for the test pattern screen that helps you determine this... note that (like myself) it's a bit "wordy"...

I'll work on the wording for the test pattern screen, and for the checkbox, some other time. The test pattern is dynamically generated so it's simple to edit the text...

Anyway, aside from that, I've officially decided that the minimum supported OS will in fact be Windows 7 with SP1. It *might* work on XP/Vista with certain patches/updates installed but officially, the particular sets of features I'm using in the Microsoft Media Foundation are supported by 7sp1 by default. (There are some small features I'd like to use that require 8, and some that I'd LOVE to use that require 10... but too many people are still using 7 to go that route at this time). So far I haven't broken anything from working on my freshly installed Win7SP1 laptop with zero updates beyond SP1, so that's a good "minimum bar" to work with I think :)
-- Justin Nelson, CEO
   Next Generation Software, Inc.
   http://www.vdj.net/

Offline chaz

  • Full Member
  • ***
  • Posts: 109
  • Karma: 0
    • View Profile
Re: New Video about... video :)
« Reply #20 on: October 27, 2016, 08:19:35 PM »
It don't get any more self explanatory than that image

Offline Justin

  • Site Administrator
  • Administrator
  • Hero Member
  • *****
  • Posts: 949
  • Karma: 11
    • View Profile
    • Virtual DJ Studio
Re: New Video about... video :)
« Reply #21 on: October 28, 2016, 10:53:25 AM »
True, I was over-thinking it. I am keeping that exactly as-is.

I got side-tracked obsessing about the image quality of the Karaoke lyrics, and the overall look when *not* using a video as a background (since I do all the image processing myself). I finally hammered out a beautiful and fast bilinear image scaling routine that makes the graphics really look great.

Note that FULL HD is over 2 million pixels, where 720p is less than one million. Times all that by 3 (reg/green/blue subpixels) and that's a lot of math going on. SO -- internally (as I may have mentioned before but didn't decide 100%) VDJ creates a 1280x720 output, period. If your screen differs, then Windows resizes it to fit (eg, not using my routine).

But, if you are on an HDTV set and your resolution is set to 720p on the PC, you get the absolute best possible image. On a 1080p setting, it's just up-scaled, and unless you are up really close you can't tell the difference. Either way, I finally got the entire Karaoke screen, fully rewritten, done for video loops, cameras, image files, or just solid color backgrounds with beautiful Karaoke lyrics and profile pictures etc...

Attached are two screenshots at native 720p resolution, one with a static image background and one with a moving video background (the processing is different for video, but I still use my own bilinear scaling for the Karaoke graphic portion).

I don't care what Firefox and it's stupid red underline says, "bilinear" is a word! (heck pretty sure Firefox developers use bilinear image scaling themselves...)

https://www.google.com/search?q=bilinear

<EDIT> Changed the second example, first post had a certain logo on it...
« Last Edit: October 28, 2016, 11:54:50 AM by Justin »
-- Justin Nelson, CEO
   Next Generation Software, Inc.
   http://www.vdj.net/

Offline Justin

  • Site Administrator
  • Administrator
  • Hero Member
  • *****
  • Posts: 949
  • Karma: 11
    • View Profile
    • Virtual DJ Studio
Re: New Video about... video :)
« Reply #22 on: October 28, 2016, 12:43:53 PM »
One *last* screenshot. I've been trying to really maximize what is shown on the screen. The karaoke lyrics area stretched as large as I can without overlapping anything else. Now normally they don't go all the way to the edge with lyric data - but in this shot is a song with a full-screen CDG graphic just demonstrating the full raster area being displayed. Everything else is always within 10 pixels of the edge (not for overscan, that's done separately, but for aesthetics when no overscan is necessary).

And yeah I'm kinda using Halloween colors even though I'm not doing a party this year... though I wish I'd taken at least one offer as I'd love to start testing this in the real world...

Maybe I'll get one of those last-minute calls if someone drops out... happens around here sometimes :)

Bonus points if anyone can guess the song by the graphic. Hint: it's a DK file with a 1986 copyright...
-- Justin Nelson, CEO
   Next Generation Software, Inc.
   http://www.vdj.net/