Question / Help Second Stream(via recording) artifacts

scaesare

New Member
So I originally posted this question under the "guide" thread, but it didn't get any traction, so trying here. I'm streaming to an internal LAN PC using the This Guide, and I've been fiddling with this for a while now, and I can't seem to get an artifact free second stream.

Setup:
- OBS video source = feed from IP camera via RTSP
- "Recording" to UDP out to IP address of recv'ing machine @ port 4242
- Container type = mpegts
- bitrate = 8192Kbps
- encoder = libx264
-audio = ac3 @128Kbps
-recv'ing machine opening network stream in VLC (v3.0.8) using "udp://@:4242"
-both machines on local GigE switch

I get artifacts occasionally, but regualary,a nd not necessarily on fast-motion. The artifacts are not in the source video feed. Nor are they present when streaming via RTMP to an internet conferencing service.

CPU usage in OBS is only about 10%. It happens regardless as to if I'm also streaming to the conferencing service or not.I was thinking perhaps dropped UDP packets. Things I've tried:

- using a different GigE switch
- varying the bitrate (4-50Kbps)
- USB webcam instead of IP cam.
- AMD accelerated libx264
- using rtp:// for URL and rtp_mpegts as transport type
- different rcv'ing machines
-varying keyframes from 1-250
- a few different encoder types (a number of combinations throw errors or will hang OBS)
- Adding "?=pkt_sze=1316" to the stream output URL

All of the above have some affect, but none eliminates the problem, and some introduce more (i.e. green screen tearing, frozen frames, etc...)

With using RTP rather than UDP, believe the packet loss that UDP can experience should be eliminated. My network interfaces aren't even breaking a sweat.

Given that the incoming video feed and the stream out to the internet are OK, I feel like this has to be a local problem: OBS settings, transport layer issues, or VLC choking.

So, since then I've realized that I had a cheap gig-switch that was dropping packets, so know I can get a mostly artifact-free stream. However, in order to do so I have to use a pretty high bit-rate (16-24Mbs) and set a keyframe interval of 1. This seems excessive for an x264 stream that only 1920x1080. The CPU utilization is on the encoder is only 20-30%. I've tried both HW accelerated and SW only encoding, and neither eliminates the artifacting.

Any ideas why I need such a high bandwidth and low keyframe setting to get an acceptable stream?

Any other suggestions that I might try (or any other questions on my configuration)?

Thanks.
 

scaesare

New Member
Have you tried using NDI instead?
Hmm, no. And prior to Googling in reposnse to your post I had no idea what NDI was... found the GitHub repository and trying to see what other info I can find... thanks for the pointer. If there's any docs/posts on it that are required reading I'd appreciate it....
 
Top