Jump to content
ZeroPage Homebrew

ZPH Streaming & Hardware Updates

Recommended Posts

Another SUPER annoying streaming issue has possibly been solved...

 

So it appears that my computer has only ONE USB 3.0 Root Hub on the motherboard and during interviews on ZPH I've been trying to plug in two USB 3.0 capture devices into the same hub, which I found out that Elgato says is a big no-no. Even though I have a ton of USB 3.0 ports on my computer, they all lead to the same place. 😕 It's actually surprising that the interviews have worked AT ALL! You've probably noticed that most of the audio in the interviews have been poor and this is definitely the reason why.

 

I've got another interview on the show on this coming Tuesday so I've ordered a USB 3.0 PCI card to create a new USB 3.0 Root Hub on my computer. Hopefully it works! 😓

 

- James

  • Like 2

Share this post


Link to post
Share on other sites
7 hours ago, ZeroPage Homebrew said:

So it appears that my computer has only ONE USB 3.0 Root Hub

That's quite surprising. Even my 9 yo PC has two USB 3.0 Root Hubs. Is you computer that old (I doubt it was a cheap one)?

Share this post


Link to post
Share on other sites
On 11/11/2021 at 12:47 AM, Thomas Jentzsch said:

That's quite surprising. Even my 9 yo PC has two USB 3.0 Root Hubs. Is you computer that old (I doubt it was a cheap one)?

My motherboard is about 3/4 years old and does have 2 USB 3.0 Root Hubs but one of them is USB 3.1 Gen2 and being used for my RAID attached storage. I tried to plug it into the root with the RAID DAS and it did work great. I then did a stress test and started transferring a large file from the drive the video capture dropped out completely a few seconds later.  At that point I knew that it was a USB bandwidth issue and ordered the card that I showed on the stream today, and the verdict is....

 

SUCCESS!! I'm running a bunch of tests right now and it's solid as a rock. OBS picks up the 'interview' capture device immediately, plus the video camera and game capture devices are working perfectly too! This is such a relief going forward for interviews, especially for the Atari Homebrew Awards as well. 🙂

 

- James

  • Like 1

Share this post


Link to post
Share on other sites

Just a followup to the USB upgrade above, the interview on the stream last night held all the way through without any drop outs or audio weirdness so I will call this a success!

 

- James

  • Like 1

Share this post


Link to post
Share on other sites

RetroTINK just put out an update for their RetroTINK-5X Pro early yesterday. I didn't want to apply it before the show last night as I didn't know if the update would throw things off for the stream.

 

But I just applied the new firmware this morning and there are SO many more great options to optimize the inputs that now I'm happy enough with the Atari 2600 video quality that I will be using it going forward for all the systems now! There's also profile saving feature so I can optimize the 7800, 8-bit and 2600 tuning separately to make them all look their best. The new update allows you to set the default "no input" colour so the whole room won't light up in bright blue any more when I turn off a machine, I've set it to a nice soothing grey. Also, by not needing the Framemeister any more for the 2600 it will also clear up a lot of clutter on the console shelf. 🙂

 

So, all in all, a happy day!

 

- James

 

5X-Pro

  • Like 1

Share this post


Link to post
Share on other sites

Recent updates to the ZPH stream that have improved the watchability quite a bit are:

 

- Audio Compression on the microphone to bring up quiet talking and bring down loud talking. This not only increases the overall volume of everything but also makes it so you no longer have to be fiddling with the volume knob with the crazy dynamics that used to happen. If it was a movie in a theatre, sure... but it just needs to be simple for a stream.

- Audio Ducking on the game volume in respect to the microphone audio. This will reduce the volume of the game when we're talking and bring up the volume when we're not. This way I can pretty much keep the volume at one level the whole show and not worry about messing around with it all the time.

- Synced up all the audio and video streams so everything happens all at once. Almost everything was out of sync just a little bit (up to 0.5 seconds!) with everything else for quite a while but now it's all quite good.

 

People have responded very positively to the updates and I've been meaning to do them for quite a while!


- James

  • Like 4

Share this post


Link to post
Share on other sites

It is working pretty well for me too.

 

Two comments:

  • The game volume could be higher. Even when you are not talking, it is much lower than when you are speaking.
  • I noticed some minor compression artifacts for sibilants with your voice. 
  • Thanks 1

Share this post


Link to post
Share on other sites

NOW.... there's one last 'big' issue that I need to tackle on the stream and it's only really visible when we're playing Atari 2600 games that use flicker. Frames are getting repeated/skipped in the broadcast and recordings and the easiest way to see the issue is when I'm on the Harmony cart menu as all the full screen of graphics change each frame.

 

This issue has been plaguing me for many years and I've chosen to mostly ignore as it's 'not that bad' it but I really feel the need to fix it now:

 

What I've tried with no success:

- All three of my capture devices capturing the Atari 2600: Elgato HD60, Elgato HD60S and Elgato Cam Link

- Swapping out the cheap HDMI cable I usually use for an expensive thick HDMI cable and an 8K/4K60 HDMI cable. None of these should make a difference anyway since the signal to the capture device is fine because the TV passthrough looks fine.

- Swapping the USB-C power/signal cable for a different one

- Every different USB input on my computer. I've even bought an additional USB 3.0 card and that didn't help

- I tried using a laptop to capture and the problem was actually worse, way more flickery. It STILL was far from taxing the computer but the fact that it was worse is suspicious.

 

Observations:

- The pass through on the capture devices do not show the symptoms on the TV we watch so the issue isn't in the console.

- My GPU and CPU are nowhere near taxed and they sit around 25% or lower when running everything in OBS

- The problem is seen using the software provided with the capture devices, so it's not OBS broadcasting software.

 

What It Could Be:

The upscaler, HDMI cable, USB cables, USB inputs on the computer have all been eliminated as suspects.

- The problem could be the Elgato line of capture devices as they may all use the same encoding chips in them?

- The problem could be my computer isn't powerful enough, even though it's nowhere near using up all the resources?

 

Solutions:

- Buy a new capture device: Quite costly and risky, especially if it doesn't solve the problem.

- Buy a new computer: We will be getting a new gaming computer in about 3 weeks that DESTROYS the specs on my computer. This will be an excellent test as there seemed to be a difference in quality of capture between the laptop and my desktop, but I'll just have to wait for the order for the new one to go through.

 

- James

 

 

 

Share this post


Link to post
Share on other sites
38 minutes ago, ZeroPage Homebrew said:

- My GPU and CPU are nowhere near taxed and they sit around 25% or lower when running everything in OBS

Have you checked the individual CPU cores or only a summary? E.g. if you have a quad core and everything runs only on one core, a total of 25% would mean 100% load for one core.

  • Thanks 1

Share this post


Link to post
Share on other sites
10 hours ago, Thomas Jentzsch said:

Have you checked the individual CPU cores or only a summary? E.g. if you have a quad core and everything runs only on one core, a total of 25% would mean 100% load for one core.

Good suggestion! I was hoping it would be this as I hadn't checked the individual cores but unfortunately both the CPU & GPU have next to no load on each of their cores.

 

Having the problem shown to be worse on the laptop does point more towards the computer being the issue rather than the hardware video encoder but nothing is showing to be taxing the system, even on the laptop. The screenshots below are when I'm not even recording the capture so hard drive slowness/issues should be able to be eliminated from the equation as well.

 

image.thumb.png.be648f5f3dec24478cd4270522dcf65b.png image.thumb.png.fe6d701691fb03805903d220f8f01ead.png

 

 

4 hours ago, RevEng said:

Not a smoking gun, but it may well be the elgato capture device. [edit] some posts in that linked discussion seem to conclude it's an issue of the capture being 30fps. Other similar threads point to 60/30fps capture settings.

Good suggestion as well. Switching to 30fps shows a stark difference in the appearance of the Harmony cart menu as it only shows 1/2 the frames as a static image on the screen as expected. At 30fps the video will display something like the below screencap, with only 1/2 of the image:

 

image.thumb.png.f94842cd5d848a1399d8622157aee17f.png

 

At 60fps it shows both frames flickering back and forth as normal, just not consistently as it will repeat frames once in a while giving a shimmering effect. Here's a video to show the issue, just make sure you set the video 1080P60 with the gear icon. The picture is rock solid when viewed on my TV and behaves as expected, only once it's passed through the hardware video encoder does it show the issue.

 

 

- James

  • Like 1

Share this post


Link to post
Share on other sites

It seems like the video encoder doesn't sync perfectly to the 2600 signal. Are there different 60Hz mode settings for the encoder? The 2600 signal is more like 59.92 Hz.

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites
1 hour ago, Thomas Jentzsch said:

It seems like the video encoder doesn't sync perfectly to the 2600 signal. Are there different 60Hz mode settings for the encoder? The 2600 signal is more like 59.92 Hz.

There are settings for resolution, FPS and buffering but all of them unfortunately result in the shimmer because of repeated frames. Unfortunately there's no setting for custom framerate, so I wasn't able to set it to 59.92 Hz, setting it to 'Match Output FPS' and 'Highest FPS' still resulted in the shimmer.

 

The shimmer is so strange. It'll be fine for 15 seconds in a row and then go nuts for about 5-10 seconds. Or it'll shimmer off and on for 5 seconds and then go back to normal. It's completely inconsistent which leads me to believe it's not an 'out of phase' issue, you would think there would be a steady pattern like you see when filming a TV with a camera that's not at the same refresh rate.


image.thumb.png.1d503a3b233db199dc4ac39cf313c58b.png  image.thumb.png.2122daa26cb77e521f06d7c5deb09b63.png

 

The video is being reported to the computer as having a frame rate of EXACTLY 60.00FPS. This is a possible culprit of the shimmer since it's taking a non 60FPS signal and interpreting it at 60FPS. Changing the above setting in OBS (my streaming software) to 29.97fps or 30fps doesn't change the below reporting that it's still be sent to OBS as 60FPS so I'm guessing that the frame rate would need to be changed elsewhere but I'm not sure the software/hardware has that capability...

 

image.thumb.png.baf546ecfc5f8acff9981f04adf42632.png

 

 

In the Elgato Software there is only one option for frame rate (see below), either 30fps or 60fps depending if you check the box or not. As a test, I set it to 30fps in the program that comes with it and then loaded up OBS. It still shows "60fps" as the framerate in the properties in the screenshot above so it doesn't appear that the software that comes with it permanently sets the framerate. I can't find any documentation about how to 'set the framerate' so I think it autosenses the framerate of the incoming signal or forces it into a box of what the framerate is near or is just misreporting the framerate at EXACTLY 60.00FPS (still very strange and a little too precise).

 

image.thumb.png.a2f58659782dd9af38a91f7a4fd157b7.png

 

So... continuing with the subject of framerate, I took a look at what the RetroTINK5X is reporting the source framerate to be. As you said Thomas, the frame rate that the 2600 is outputting is 59.92 Hz. Interestingly enough, I was poking around the other settings in the RetroTINK5X and it has a setting for 'Lock to 60 Hz' which I tried turning on but both OBS (set to 60fps & match framerate) and the 'Elgato Game Capture' program both still exhibited the shimmer. This further leads me to believe it's my computer that can't handle the capture for some reason even though it doesn't show it's overloaded in any way?

 

image.thumb.png.0dec22ee884cb2d557970ab1ba005447.png image.thumb.png.54dbd4574fc0fde7c535c98e111bf2ba.png

 

- James

 

Share this post


Link to post
Share on other sites
Posted (edited)

Have you tried to report a bug for any of the software you are using? Even if it is not a bug, maybe the experts there can help you.

 

BTW: Have you made sure that the recordings are already wrong. It also could be a result of the playback (software or hardware).

Edited by Thomas Jentzsch
  • Thanks 1

Share this post


Link to post
Share on other sites
5 minutes ago, Thomas Jentzsch said:

Have you tried to report a bug for any of the software you are using? Even if it is not a bug, maybe the experts there can help you.

This may be the way to move forward with this as I think we've exhausted all the options.

 

5 minutes ago, Thomas Jentzsch said:

BTW: Have you made sure that the recordings are already wrong. It also could be a result of the playback (software or hardware).

I thought the playback/display of the video might be the situation as well so a few weeks ago I took the recordings into Premiere and stepped through the video frame by frame. I used @SpiceWare's amazing Sync Pop program that displays a different frame number each frame as a test and it showed multiple repeated numbers on the recording when I stepped through it. This verified enough for me that it wasn't a playback issue.

 

- James

Share this post


Link to post
Share on other sites
1 hour ago, ZeroPage Homebrew said:

The shimmer is so strange. It'll be fine for 15 seconds in a row and then go nuts for about 5-10 seconds. Or it'll shimmer off and on for 5 seconds and then go back to normal. It's completely inconsistent which leads me to believe it's not an 'out of phase' issue, you would think there would be a steady pattern like you see when filming a TV with a camera that's not at the same refresh rate.

If I download the youtube video and play it back in vlc, I get a bit more regular shimmer, with the dupe frames happening every second or so. It's not regular, but certainly there's no 5 or 10 second island of normality either - dropping to 0.2x or 0.1x shows that, as does advancing frame-by-frame. The "mediainfo" program on Linux shows the video file framerate is 59.940 FPS. 

 

My best guess is there a sort of moire effect happening - and probably happening twice - first when the 2600 framerate doesn't quite match the codec target framerate of 59.940, and then second during playback, when the decoder is trying to hit some target framerate (e.g. youtube 60 FPS) that differs from 59.940.

 

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites
1 minute ago, RevEng said:

My best guess is there a sort of moire effect happening - and probably happening twice - first when the 2600 framerate doesn't quite match the codec target framerate of 59.940, and then second during playback, when the decoder is trying to hit some target framerate (e.g. youtube 60 FPS) that differs from 59.940.

Yes, I suppose that would explain the effect quite good.

 

But is there a fix? Something like recording at 60Hz, with every 750th frame duplicated?

  • Thanks 1

Share this post


Link to post
Share on other sites

Yeah, something like that would be the best case scenario, but I'm thinking the Elgato might not be that obliging. It's already set to 60Hz and seems to be auto-adjusting to something closer to the source frame rate.

  • Thanks 1

Share this post


Link to post
Share on other sites

Another idea to play with or consider... if the RetroTINK5X can treat the 2600 video as 30Hz 480i, it would remove 30Hz object flicker. Then any of the codecs could add/drop frames without a perceptible difference. It may bunch up the lines in the harmony menu a bit though, depending on which 240p field the 480i frame started with.

 

Of course, you get a less authentic experience from this when it comes to flicker, but I don't think 2600 flicker will ever make it through these codecs in an authentic way.

  • Thanks 1

Share this post


Link to post
Share on other sites
2 hours ago, RevEng said:

If I download the youtube video and play it back in vlc, I get a bit more regular shimmer, with the dupe frames happening every second or so. It's not regular, but certainly there's no 5 or 10 second island of normality either - dropping to 0.2x or 0.1x shows that, as does advancing frame-by-frame. The "mediainfo" program on Linux shows the video file framerate is 59.940 FPS. 

 

My best guess is there a sort of moire effect happening - and probably happening twice - first when the 2600 framerate doesn't quite match the codec target framerate of 59.940, and then second during playback, when the decoder is trying to hit some target framerate (e.g. youtube 60 FPS) that differs from 59.940.

This definitely got me thinking about the chain of FPS the signal was going through.

 

  • It starts out on the Atari 2600 at 59.92 Hz
  • Received by the RetroTink5x at 59.92 Hz and passed to the Elgato hardware encoder at 59.92 Hz
  • The Elgato is adjusting it to "60.00 Hz"
  • OBS is receiving it at "60.00Hz"
  • I was encoding it to 59.94 Hz and uploading to Twitch/YouTube. YouTube 'stats for nerds' reports it at 60 Hz (grrrr bad YouTube!) but downloading it reveals it to be 59.94Hz. Is it playing it at 60 Hz on YouTube or 59.94 Hz??? Ugh..

Okay.. that's VERY not good to convert the frame rate twice. Terrible in fact, there's GOING to be dropped, duplicated frames for SURE.

 

2 hours ago, RevEng said:

Yeah, something like that would be the best case scenario, but I'm thinking the Elgato might not be that obliging. It's already set to 60Hz and seems to be auto-adjusting to something closer to the source frame rate.

54 minutes ago, RevEng said:

Another idea to play with or consider... if the RetroTINK5X can treat the 2600 video as 30Hz 480i, it would remove 30Hz object flicker. Then any of the codecs could add/drop frames without a perceptible difference. It may bunch up the lines in the harmony menu a bit though, depending on which 240p field the 480i frame started with.

 

So I investigated the various output options available for the RetroTINK5X and played around with various options like 480p & 240p. The hardware encoder and TV did NOT like either of those settings very much but something good came of it. On the 240p setting, the properties of the Elgato video capture showed 720x480I @ 59.94FPS (29.97FPS), so it appears that the 60.00FPS we saw earlier on the 1080p output from the Elgato was maybe reporting it correctly!

 

image.thumb.png.d2dbb193d5baa3c31047501f959380eb.png image.thumb.png.e9ccc1cdbf04de06c500dab0451fb5f0.png

 

Also setting it to 480p/576p resulted in the Elgato reporting receiving a signal of 1440x480p @59.94FPS (59.94FPS) which was visible through OBS but my TV doesn't like that resolution.

 

image.thumb.png.e902f59a8555dd3b5380635fdb8dbc05.png

 

Here are all the results from all the available resolutions on the RetroTINK5X (my TV only displayed a picture on the 1080p & 720p settings and the Elgato only liked the one additional setting of 480p/576p):

 

RetroTINK5X -> Elgato

1080p -> 1920x1080p @ 60.00FPS (for Fill, Over & Under)

1200p -> 1920x1200p @59.94FPS

1440p -> 1920x1440P @60.00FPS

720p -> 1280x720P @ 60.00FPS

480p/576p -> 1440x480P @ 59.94FPS

540p -> 1920x1080I @ 60.00FPS

240p -> 720x480I @ 59.94FPS

 

54 minutes ago, RevEng said:

Of course, you get a less authentic experience from this when it comes to flicker, but I don't think 2600 flicker will ever make it through these codecs in an authentic way.

Sadly I think that will be one of the trade offs of capturing an analogue signal and converting it to a digital one, the other trade off is the absence of the phosphor effect. So, knowing that I will never be able to achieve 59.92FPS with the Elgato, the best I can do right now is minimize the number of FPS conversions. So what I did was set everything to 60 Hz all the way along the chain and ran ran the Sync Pop program for 30 seconds. This minimizes the conversions to just one from the two I had it at, assuming that Elgato is actually 60.00Hz as it reports.

 

Atari 2600 @ 59.92 Hz -> RetroTINK5X 59.92 Hz -> Output from RetroTINK5X locked at 1080P 60.00Hz -> Elgato (in OBS) @ "60.00Hz" -> Stream/Record @ 60.00Hz

 

I then took the video into Premiere Pro and checked out the frames. It was skipping and duplicating almost every second frame!!!! It was terrible terrible terrible. This AGAIN changed my mind that the 1080P @ 60FPS that Elgato is reporting is actually 59.94FPS? I just don't know any more.

 

So.... I tried something else just because... why not at this point

 

Atari 2600 @ 59.92 Hz -> RetroTINK5X 59.92 Hz -> Output from RetroTINK5X locked at 1080P 60.00Hz -> Elgato (in OBS) @ 59.94Hz -> Stream/Record @ 59.94Hz

 

So I ran the Sync Pop program for another 30 seconds. I then took the video into Premiere Pro and manually looked at the ~1800 frames one by one (yes, it was terrible to do) and found the following:

 

Timecode / Sync Pop Display / Problem

2:55 / 8 26 / SKIPPED NUMBER
9:39 / 1 43 / DUPLICATED NUMBER
14:03 / 7 19 / SKIPPED NUMBER
21:41 / 9 41 & 9 40 / SKIPPED NUMBERS
22:37 / 8 46 / DUPLICATED NUMBER

 

Skipped Number = Dropped a frame and went straight from one number to the next one

Duplicated Number = Captured the same number twice instead of displaying the correct one

 

 

So out of 1800 frames there were 6 "errors" for an average of 1 every 5 seconds. In the grand scheme of things I would call this unfortunate but acceptable.

 

Then I loaded up the Harmony Menu and it looked terrible again, I recorded it, it was dropping/repeating frames like crazy. I then ran the Sync Pop program AGAIN (not changing any settings from above) and it ran terribly again, dropping and repeating frames all over the place.

Zoolander | Family Friendly Daddy Blog

At this point I'm completely lost. I'm still convinced it has something to do with my computer or the Elgato hardware since even on the 'good' result the timing between the errors and the weirdness of dropping a frame (or two!) only to duplicate one later is still very erratic.

 

4 hours ago, Thomas Jentzsch said:

Something like recording at 60Hz, with every 750th frame duplicated?

This should be the result if I set everything to 60Hz but something else is happening, something that none of the settings are making any better so it must be a factor I'm not thinking of or my hardware isn't able to keep up somehow.

 

I will definitely be running tests when I get my new gaming computer to eliminate my computer as a culprit and then possibly looking into buying a different brand of video capture device if the computer doesn't help. I have no idea until then, I'll probably reach out to Elgato.

 

- James

  • Like 2

Share this post


Link to post
Share on other sites
Posted (edited)

Agreed, all this seems to make little sense. And looking at the Taskmanager results, I doubt a new computer will help here. But eventually we fill find out, I am optimistic. We just have to find the right persons who can help here, these people are most likely not at AtariAge.

 

The minimum goal should be that flicker works at least for games running with the (NTSC) correct 262 scanlines (fortunately I stuck to that number when I coded the Harmony menu). Once that is working, maybe this would also show a solution for other games which produce more or less scanlines and/or a changing number of scanlines.

 

BTW: Did you already know this website? 30Hz flicker is tested there as well.

Edited by Thomas Jentzsch

Share this post


Link to post
Share on other sites

I wonder if there's some unnecessary "rogue" deinterlacing going on in your video chain. Maybe try feeding 720p to the capture card to avoid "automatic" detection of interlaced video? Also, is the 'Tink5x the only video processor you have on hand? 

 

 

Share this post


Link to post
Share on other sites
Posted (edited)

After you mentioned the flicker problems in the latest stream again, I found something called Time Base Correction. This comes from this website, where they talk about VCR capturing. This not the same as a 2600, but I figure the framerate is not exactly 60Hz there too. Instead of a buying a Time Base Corrector, you can also use certain DVD recorders or DV camcorders. E.g. used Panasonic DMR-E55S are offered for ~50€. A used Panasonic DMR-ES10S starts even as low as 15€. Some VCR seem of offer TBC too, so maybe that's why there are frequently suggested.

 

Not 100% sure if this would work. But for the low money required, it might be worth a try.

Edited by Thomas Jentzsch

Share this post


Link to post
Share on other sites

I guess you could use the TBC and it might clean up the signal, but I don't think that will do away entirely with the framerate moire. Ultimately it's the conversion of frame rates that's causing the issue.

 

[edit] I suspect the wort of this - the crazy-pill effects - are down to the Elgato dropping frames for reasons other than frame-rate maintenance. Perhaps when a whole lot changes between frames, the device takes longer than a frame to actually compress it and send to the driver.

 

Share this post


Link to post
Share on other sites

I had to use a TBC when capturing video for my mods comparison page (ages ago) just to stabilize the 2600 video enough to capture it. Since broadcast TV went digital, professional analog TBCs are all over eBay now.

Share this post


Link to post
Share on other sites

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...