Known-good IP camera was fine as OBS Media Source, then mysteriously stopped working.

BobCc

New Member
I have an IP camera that's an old Android 4.4 phone running the "IP Webcam" app (IP Webcam - Apps on Google Play). The Android app is rock-steady, and its output is accessible on all my PCs by multiple programs, and also on my phone. For several weeks it has worked reliably as an OBS Media Source, until it didn't. It simply quit this morning, and I've been unable to get OBS to work with it again.

I've installed no OBS updates or upgrades. Regular Windows 10 updates have not affected access to the IP cam by other apps. The same URL (see below) works perfectly in VLC. The issue appears to be strictly isolated to OBS.

I've tried many searches for solutions, but found nothing that made any difference. But I'm still a relative OBS newbie, so my searches may not have used the best terminology.

I have also checked that virus scanning didn't eat anything.

I've deleted and recreated the Media Source, I've restarted OBS, each multiple times. I've also restarted the IPCam app, and restarted and power-cycled the phone multiple times.

Everything is fine everywhere OTHER than for OBS with this one camera. The rest of my OBS configuration (with over a dozen scenes) is working perfectly.

Note: Uploading my logs claims to succeed, but fails to generate the expected URL (it's blank). Will update when/if log upload works. I suspect the problem may be related to the massive file size due to the errors described below.

Here's the startup:
Code:
07:32:18.580: CPU Name: AMD Ryzen 7 4800H with Radeon Graphics        
07:32:18.580: CPU Speed: 2894MHz
07:32:18.580: Physical Cores: 8, Logical Cores: 16
07:32:18.580: Physical Memory: 15741MB Total, 4764MB Free
07:32:18.580: Windows Version: 10.0 Build 19042 (release: 2009; revision: 928; 64-bit)
07:32:18.580: Running as administrator: false
07:32:18.580: Aero is Enabled (Aero is always on for windows 8 and above)
07:32:18.580: Windows 10 Gaming Features:
07:32:18.580:     Game DVR: On
07:32:18.580:     Hardware GPU Scheduler: On
07:32:18.582: Sec. Software Status:
07:32:18.584:     Microsoft Defender Antivirus: enabled (AV)
07:32:18.584:     Windows Firewall: enabled (FW)
07:32:18.585: Current Date/Time: 2021-05-13, 07:32:18
07:32:18.585: Browser Hardware Acceleration: true
07:32:18.585: Portable mode: false
07:32:24.264: OBS 26.1.1 (64-bit, windows)
07:32:24.264: ---------------------------------
07:32:24.264: ---------------------------------
07:32:24.264: audio settings reset:
07:32:24.264:     samples per sec: 48000
07:32:24.264:     speakers:        2
07:32:24.283: ---------------------------------
07:32:24.283: Initializing D3D11...
07:32:24.283: Available Video Adapters:
07:32:24.285:     Adapter 0: NVIDIA GeForce RTX 2060
07:32:24.285:       Dedicated VRAM: 1975517184
07:32:24.285:       Shared VRAM:    3958016000
07:32:24.285:       PCI ID:         10de:1f15
07:32:24.286:       Driver Version: 27.21.14.6089
07:32:24.286:       output 0: pos={0, 0}, size={3840, 2160}, attached=true, refresh=60, name=SAMSUNG
07:32:24.286:     Adapter 1: AMD Radeon(TM) Graphics
07:32:24.286:       Dedicated VRAM: 520724480
07:32:24.286:       Shared VRAM:    3958016000
07:32:24.286:       PCI ID:         1002:1636
07:32:24.286:       Driver Version: 27.20.11028.5001
07:32:24.289: Loading up D3D11 on adapter NVIDIA GeForce RTX 2060 (0)
07:32:24.384: D3D11 loaded successfully, feature level used: b000
07:32:24.384: DXGI increase maximum frame latency success
07:32:24.384: D3D11 GPU priority setup failed (not admin?)
07:32:24.821: ---------------------------------
07:32:24.821: video settings reset:
07:32:24.821:     base resolution:   1920x1080
07:32:24.821:     output resolution: 1920x1080
07:32:24.821:     downscale filter:  Lanczos
07:32:24.821:     fps:               30/1
07:32:24.821:     format:            NV12
07:32:24.821:     YUV mode:          709/Partial
07:32:24.821: NV12 texture support enabled
07:32:24.823: Audio monitoring device:
07:32:24.823:     name: Default
07:32:24.823:     id: default
07:32:24.845: ---------------------------------
07:32:24.926: [CoreAudio encoder]: CoreAudio AAC encoder not installed on the system or couldn't be loaded
07:32:24.948: Failed to load 'en-US' text for module: 'decklink-captions.dll'
07:32:24.973: Failed to load 'en-US' text for module: 'decklink-ouput-ui.dll'
07:32:25.285: [AMF] Version 2.7.0 loaded (Compiled: 1.4.14.0, Runtime: 1.4.17.0, Library: 1;4;17;0;20.10.28.05;202009291654;CL#2179654).
07:32:25.376: [AMF] [Capability Manager] Testing Direct3D 11 Adapter 'AMD Radeon(TM) Graphics (VEN_1002/DEV_1636/SUB_3a4717aa/REV_00c6)':
07:32:25.376:   H264/AVC: Supported
07:32:25.376:   H265/HEVC: Supported
07:32:25.376:
07:32:25.983: [obs-browser]: Version 2.9.1
07:32:25.983: [obs-browser]: CEF Version 75.1.16+g16a67c4+chromium-75.0.3770.100
07:32:26.064: NVENC supported
07:32:26.349: [StreamFX] Loading Version 0.10.0.0-g5888c7d2
07:32:26.485: [StreamFX] <NVIDIA Face Tracking Filter> Failed to load Nvidia AR SDK runtime.
07:32:26.485: [StreamFX] Loaded Version 0.10.0.0-g5888c7d2
07:32:26.534: VLC found, VLC video source enabled
07:32:26.716: A DeckLink iterator could not be created.  The DeckLink drivers may not be installed
07:32:26.719: No blackmagic support
07:32:26.777: ---------------------------------
07:32:26.777:   Loaded Modules:
07:32:26.777:     win-wasapi.dll
07:32:26.777:     win-mf.dll
07:32:26.777:     win-dshow.dll
07:32:26.777:     win-decklink.dll
07:32:26.777:     win-capture.dll
07:32:26.777:     vlc-video.dll
07:32:26.777:     text-freetype2.dll
07:32:26.777:     StreamFX.dll
07:32:26.777:     rtmp-services.dll
07:32:26.777:     obs-x264.dll
07:32:26.777:     obs-vst.dll
07:32:26.777:     obs-transitions.dll
07:32:26.777:     obs-text.dll
07:32:26.777:     obs-qsv11.dll
07:32:26.777:     obs-outputs.dll
07:32:26.777:     obs-filters.dll
07:32:26.777:     obs-ffmpeg.dll
07:32:26.777:     obs-command-source.dll
07:32:26.777:     obs-browser.dll
07:32:26.777:     image-source.dll
07:32:26.777:     frontend-tools.dll
07:32:26.777:     enc-amf.dll
07:32:26.777:     decklink-ouput-ui.dll
07:32:26.777:     decklink-captions.dll
07:32:26.777:     coreaudio-encoder.dll
07:32:26.777: ---------------------------------
07:32:26.778: ==== Startup complete ===============================================

Here's a Media Source entry from the log:
Code:
07:33:55.865: [Media Source 'IPCam']: settings:
07:33:55.865:     input:                   http://192.168.1.109:8080/video
07:33:55.865:     input_format:            MJPEG
07:33:55.865:     speed:                   100
07:33:55.865:     is_looping:              no
07:33:55.865:     is_hw_decoding:          yes
07:33:55.865:     is_clear_on_media_end:   yes
07:33:55.865:     restart_on_activate:     yes
07:33:55.865:     close_when_inactive:     no

I've permuted the boolean settings for the above, to no avail.

The following pair of error lines make up about 99% of the log:
Code:
08:33:11.111: fatal:   No JPEG data found in image
08:33:11.111: Error decoding video

Again, the IP camera stream works perfectly everywhere outside OBS, and had previously been working reliably within OBS.

Why and how is OBS suddenly choking on this? My initial guess would be related to ffmpeg, but I also have a UVC MJPEG camera that's working perfectly.
What else I should I try to fix it?
Must I remove and reinstall OBS and StreamFx?
 

BobCc

New Member
And.... It just started working.

I have no clue why! I was clicking between scenes in Studio Mode, and when I clicked on the scene for the IP cam (which is only used by other Scenes as an overlay), there it was.

As a hunch, perhaps there's a subtle issue affecting how (or when?) a Media Source starts its stream.

Then again: Could it be that posting here was the fix, perhaps combined with some "Spooky action at a distance"? XD

FWIW, my approach to OBS Scenes is to layer them, where I first create a separate Scene for each camera input. I add no filters/effects to the Source, instead adding them to the Scene.

One of my cameras is a wide-angle Action Cam showing me with my lab in the background, which gets its own Scene. My HeadShot Scene has that Scene as a Source, which is then cropped. The HeadShot Scene can be used full-screen, but is more generally used as a small overlay in other Scenes. I also extract other crops from the Action Cam for various equipment in view.

Another camera is the Android phone, which presently views a piece of equipment not within view of the Action Cam. It's only 720p, so I have the phone in Portrait orientation (all my other cams are Landscape) and do a rotation in its Scene, then scale it when used as an overlay.
 

BobCc

New Member
Perhaps the camera frame rate is inconsistent (it is a very old phone, after all), which VLC could be fine with, but maybe OBS is more fussy.
 
Top