Bug Report Streaming randomly fails, reporting dropped frames, never recovers

Mark Scudder

New Member
Hello. Relatively new OBS user here, and getting ready to use it heavily, and I'm having a very frustrating problem. I cannot afford to purchase Wirecast.

I am attempting to stream to YouTube using a Logitech c920 with audio from an old M-Audio MobilePre USB into a Mid-2015 15" Retina MacBook Pro, which has a 2.5GHz i7 (presumably Haswell or Broadwell), 16GB RAM, and an AMD Radeon R9 M370X with 2GB of its own RAM.

I'm trying to use OBS because of its support for GPU encoding. When it works, OBS claims to be using 5% CPU (other utilities say it's maxing out one core), but it runs better and quieter than CPU-based encoding. In my application I am using microphones on the stream which absolutely cannot have full-blast fan noise on them.

OBS will run for a random period of time - from seconds to hours - without incident, and then suddenly will begin increasing dropped frames at a rate which seems to indicate all frames are being dropped. The streaming rate in the lower right of the interface will drop from about 4,000kb/s to about 160kb/s. YouTube will similarly report that "The stream's current bitrate (160.00 Kbps) is lower than the recommended bitrate. We recommend that you use a stream bitrate of 4500 Kbps." This, obviously, completely stops the stream from being watchable on YouTube, and you get the animated throbber over a still image that you get when a video is stalled or buffering.

No matter how long I leave it in this state, the stream never restarts, and never stops dropping (all) frames. I am always recording a local copy at the same time, and this local copy continues recording after this happens, with no noticeable issues.

If I stop the stream and restart it, it typically connects and begins streaming immediately, and we go back to waiting for it to do it again. Again, sometimes it takes seconds, sometimes it'll run for hours.

I don't believe this has anything to do with my internet connection, which is not otherwise loaded while I am streaming. I think this because an intermittent load on my internet would eventually go away, allowing the stream to send again at the correct rate. This never happens. I never get finished with a four-hour stream and have, say, six dropped frames. It's either zero dropped frames or all of them.

I have tried different bitrates, different keyframe intervals, different resolutions, and the backup YouTube ingest server. I have checked and unchecked "Limit bitrate" and "Enforce streaming service encoder settings." I have not tried switching from the Apple Hardware Encoder because this would make OBS useless to me.

Screenshots follow:

DMPWvyQ.jpg

OBS is working normally. Low CPU, correct framerate and bitrate.

7DTEWur.png

YouTube reports that the stream health is "good."

10XoStc.jpg

OBS stops successfully streaming, the bitrate drops to ~160kb/s, OBS reports all frames dropped.

ufyKMXJ.png

YouTube reports a similar bitrate, but the stream has died at this point and has stopped playing.

66Ez1wG.png

My Output settings. Recording is enabled and is set to "use stream encoder." My internet upstream is only 5mb/s so 3500kb/s seemed to be a safe setting.

I have uploaded a log, but it shows no failure I can determine:
https://gist.github.com/ddd19c81cfae8ba677a522202f859bef

I appreciate any assistance you can provide.
 

dodgepong

Administrator
Community Helper
I feel like I vaguely remember that the hardware encoder on the Mac side isn't really "finished" per se. Someone implemented it and wasn't able to iron out all the bugs, last I remember. Bitrate fluctuations were one of those issues -- I remember testing it myself during development. I kind of forgot it even existed on the Mac side.
 

dodgepong

Administrator
Community Helper
Actually, the limitation comes from Apple's VideoToolbox, which is what OBS uses to leverage Quicksync on Macs. Apparently, their encoder does not support CBR, which is what makes it unsuitable for streaming. It is only recommended that you use the VT Encoder for local recording.
 

dodgepong

Administrator
Community Helper
Don't use the Apple VT H264 Encoder on Macs for streaming. Feel free to use it for recording.
 

SG85

New Member
I'm having the same issue even when I don't use the apple VT H264 for streaming for youtube. it lags for a few seconds then the frame kinda freezes..
 

Mark Scudder

New Member
Of course I can just "not use the hardware encoder for streaming," except I can't - as I said in the OP I'm in an undersized environment where I can't have the fan noise from a constant 100% CPU bleeding into micropones, which is what happens when I "don't use the hardware encoder for streaming."

That being said, how does that make it your problem? It doesn't. I'll try your Windows version, maybe, in Boot Camp, if I can find a way to offload anything else Mac-specific that laptop was doing. If that doesn't work, I guess I gotta pony up the $500 for Wirecast 7...
 

dodgepong

Administrator
Community Helper
You can also try applying a noise-reduction filter to your microphone to filter out fan noise.
 

Mark Scudder

New Member
You can also try applying a noise-reduction filter to your microphone to filter out fan noise.

I'm going to assume you're not trolling me here.

I am recording music in a small home studio, and attempting to live-stream the process to fans. The microphones which will be picking up fan noise are not for the live stream itself, they are for recording instruments, and are much more sensitive than the mic in a gaming headset. Some of them have to be a distance away from the instrument, as we are used to hearing a blend of close and "room" microphones. Using noise reduction hardware or software in this context is inappropriate. I am not streaming my commentary of a video game. I understand that's what the majority of the market is doing at this time.

I also cannot currently drop $700+ on a hardware streaming box that takes an HDMI input and just streams to YouTube by itself. Or $2,600 on a "streaming" camcorder. Hell, it's going to break the bank if I have to buy a $500 Wirecast license.

I tried Boot Camp with Windows 10 on my MacBook Pro (which, incidentally, has Intel Iris graphics and a discrete AMD Radeon R9 M370X. When you run Windows on a MacBook Pro with dual graphics, it only exposes the discrete GPU to Windows. My understanding is that Apple has a custom muxer in their MacBooks which they can't get deep enough into Microsoft's OS to make work properly. Whatever the reason, I have no access to Quick Sync on Windows in the context of this issue, so I'm already over the barrel running OBS/Win on this machine. To complicate things further, when i so much as double-click on the OBS icon, I get a notification saying "Display driver stopped responding and has recovered."

I had hope, since I understand that recent versions of OBS Studio/Win comes with a plugin that supports AMD GPU encoding. I didn't expect to just not run.

(It's a new, clean WIn10 installation, too. Nothing but Wirecast 7 trial and the "Logitech Webcam Software" for the c920 installed.)
 

Mark Scudder

New Member
I'm having the same issue even when I don't use the apple VT H264 for streaming for youtube. it lags for a few seconds then the frame kinda freezes..

I have simply been told that the author of the Apple VT Hardware Encoder plugin does not recommend it for streaming, and not to expect it to improve in the near future because Apple's VT functionality is not very well documented. And from what I've seen on other forums, people just don't seem to understand there are some applications where your laptop CPU fans whining like a 747 on takeoff is unacceptable. But that's what I've been told, so there's no good answer at this time.
 

dodgepong

Administrator
Community Helper
I wasn't aware that the fan issue was with instrument microphones, so I can understand why noise reduction wouldn't work.

Unfortunately sometimes it really does come down to spending money in order to get a better quality stream. I am a very avid user of OBS, of course, and I believe it is a great streaming program, but even then, I have spent over $10,000 on my own stream setup to get the kind of output that I want. If you want perfect, ideal quality, you will need to be prepared to spend money on the correct hardware and software solutions. It's just a fact, even if OBS had all the features you wanted.
 

Mark Scudder

New Member
I am very aware one needs to spend money to get a quality product. However I'm not going to say that here because this is a forum for free streaming software and it sends a disrespectful message to say "well if you want quality you're going to have to buy Wirecast." Since I am streaming another activity that costs a lot of money, I hoped I could simply do my due diligence with OBS, to make absolutely sure it couldn't do what I need.

I'm only still here because I'm testing all these edge cases. I thought, well, if Quick Sync support works in Windows, I'll Boot Camp into Windows. But, naturally, MacBooks hide the Intel hardware from Windows because it can't handle the dual video cards. Now I have to look for something completely different - hardware support for the Radeon hardware that it does expose to Windows, and now I'm chasing down this plugin that still doesn't work.

Then, I'd decided it was unworkable. Twenty minutes later OBS 0.17 is released, and the release notes say it fixes certainly Radeons not being detected with the latest drivers, which I had just installed because it tells me to in the troubleshooting guide for the Radeon plugin. So now I've got to download 0.17 and try it, and naturally, it didn't change anything.

So again, I'll assume you're not trolling by saying "don't you know you have to spend money to get quality." Part of being successful is knowing where you can cut costs. I had just hoped I could use OBS to cut costs, but there's some new obstacle at every turn.
 

Mark Scudder

New Member
Just a quick followup -

OBS runs perfectly on Windows 10 with Intel Quick Sync.

But earlier this year, Windows released an update that causes my Logitech (c920) Webcam Software to crash on startup. So the camera is stuck at 640x480 resolution, because the place where you set the resolution is in the webcam software that no longer works.

OBS allows you to set the "resolution" of the camera, but it looks like crap - like it's just scaling a 640x480 image up to 1080p.

Yes, I tried the registry thing. That's not what's broken.

I literally never thought the most popular webcam in the world would just no longer work properly on Windows.

It used to be possible - maybe not easy, but possible - to do this sort of stuff normally on any operating system. How did it get WORSE?
 

Mark Scudder

New Member
I can only assume that if I go back to Windows 7 the webcam will work, but there's no support in Win7 for Intel Quick Sync, right?
 
Top