Question / Help Waste of time and money...recording church service. Help!

Perhaps I'm the only one using OBS to record church services...but I doubt it.

I've been working on a system build for over a year now what has 7 capture cards (5 HDMI and 2 VGA) on a pretty high spec machine with.

16gb ram, ssd, i7 4770 cpu. I have mainly Canon HRF400 camera's with HDMI out.

I chose a mobo with onboard dual video output as I needed more space for capture cards.

Anyhow, I think the source of the problem is my capture cards. Startech PEXHDCAP x5, while i have 2 other Startech VGA capture cards.

They are only meant to be used 1 per PC...not multiple...but it works. Of course I was not aware (or is it advertised|) that this is not supported for multiple cards in one PC. I was able to make it work in OBS.

Below is an example of how poo it is...and that is when its good! Start watching at 2:44


I have no clue where to go from here. Is anyone else running a Multi-camera system on a single PC? I'm just wanting right now to record the audio to the HD. Streaming will come at a later date...but first I have to get the thing working somewhat decent!
 
Here is a recent log file...
Code:
11:41:33: Open Broadcaster Software v0.625b - 32bit (´・ω・`)
11:41:33: -------------------------------
11:41:33: CPU Name: Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
11:41:33: CPU Speed: 3400MHz
11:41:33: Physical Memory:  4095MB Total, 4095MB Free
11:41:33: stepping id: 3, model 60, family 6, type 0, extmodel 1, extfamily 0, HTT 1, logical cores 8, total cores 4
11:41:33: monitor 1: pos={0, 0}, size={1680, 1050}
11:41:33: monitor 2: pos={1680, 0}, size={1280, 720}
11:41:33: Windows Version: 6.1 Build 7601 S
11:41:33: Aero is Disabled
11:41:33: -------------------------------
11:41:33: OBS Modules:
11:41:33: Base Address     Module
11:41:33: 01170000         OBS.exe
11:41:33: 6DFE0000         OBSApi.dll
11:41:33: 6DE00000         DShowPlugin.dll
11:41:33: 6DDD0000         GraphicsCapture.dll
11:41:33: 6DDA0000         NoiseGate.dll
11:41:33: 6DD80000         PSVPlugin.dll
11:41:33: ------------------------------------------
11:41:33: Adapter 1
11:41:33:   Video Adapter: Intel(R) HD Graphics 4600
11:41:33:   Video Adapter Dedicated Video Memory: 67108864
11:41:33:   Video Adapter Shared System Memory: 1711276032
11:41:33:   Video Adapter Output 1: pos={0, 0}, size={1680, 1050}, attached=true
11:41:33:   Video Adapter Output 2: pos={1680, 0}, size={1280, 720}, attached=true
11:41:33: =====Stream Start: 2014-06-29, 11:41:33===============================================
11:41:33:   Multithreaded optimizations: On
11:41:33:   Base resolution: 1280x720
11:41:33:   Output resolution: 1280x720
11:41:33: ------------------------------------------
11:41:33: Loading up D3D10 on Intel(R) HD Graphics 4600 (Adapter 1)...
11:41:33: ------------------------------------------
11:41:33: Audio Format: 44100 Hz
11:41:33: ------------------------------------------
11:41:33: Audio Channels: 2 Ch
11:41:33: Playback device {0.0.0.00000000}.{5e6ecb4a-ac8d-41fe-b2da-abf37ff0c097}
11:41:33: ------------------------------------------
11:41:33: Using desktop audio input: Multichannel (M-Audio ProFire 2626)
11:41:33: Global Audio time adjust: 0
11:41:33: ------------------------------------------
11:41:33: Using auxilary audio input: Multichannel (M-Audio ProFire 2626)
11:41:33: Mic time offset: 0
11:41:33: ------------------------------------------
11:41:33: Audio Encoding: MP3
11:41:33:     bitrate: 128
11:41:33: ------------------------------------------
11:41:33:     device: SA7160 PCI, Analog Capture (#04),
11:41:33:     device id \\?\pci#ven_1131&dev_7160&subsys_12abf501&rev_03#4&319c74f8&0&00e5#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\{6f814be9-9af6-43cf-9249-c0340400021c},
11:41:33:     chosen type: RGB24, usingFourCC: false, res: 1920x1080 - 1920x1080, frameIntervals: 166833-333667
11:41:33:     use buffering: true - 100000, fourCC: 00000000
11:41:33:     audio device: Disable,
11:41:33:     audio device id Disabled,
11:41:33:     audio time offset 0,
11:41:33:
11:41:33: Using directshow input
11:41:33: ------------------------------------------
11:41:33:     device: SA7160 PCI, Analog Capture (#03),
11:41:33:     device id \\?\pci#ven_1131&dev_7160&subsys_12abf501&rev_03#4&23a0958f&0&00e4#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\{6f814be9-9af6-43cf-9249-c0340300021c},
11:41:33:     chosen type: YUY2, usingFourCC: false, res: 1024x768 - 1024x768, frameIntervals: 166833-333667
11:41:33:     use buffering: false - 0, fourCC: 'YUY2'
11:41:33:     audio device: Disable,
11:41:33:     audio device id Disabled,
11:41:33:     audio time offset 0,
11:41:33:
11:41:33: Using directshow input
11:41:33: Scene buffering time set to 400
11:41:33: ------------------------------------------
11:41:33: Video Encoding: x264
11:41:33:     fps: 30
11:41:33:     width: 1280, height: 720
11:41:33:     preset: veryfast
11:41:33:     profile: main
11:41:33:     keyint: 250
11:41:33:     CBR: yes
11:41:33:     CFR: no
11:41:33:     max bitrate: 2000
11:41:33:     buffer size: 2000
11:41:33: ------------------------------------------
11:42:14: ++++++++++++++++++++++++++++++++++++++++++++++++++++++
11:42:14:   New Scene
11:42:14: ------------------------------------------
11:42:14:     device: SA7160 PCI, Analog Capture (#01),
11:42:14:     device id \\?\pci#ven_1131&dev_7160&subsys_12abf501&rev_03#4&b857930&0&0009#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\{6f814be9-9af6-43cf-9249-c0340100021c},
11:42:14:     chosen type: YUY2, usingFourCC: false, res: 1920x1080 - 1920x1080, frameIntervals: 166833-333667
11:42:14:     use buffering: false - 0, fourCC: 'YUY2'
11:42:14:     audio device: Disable,
11:42:14:     audio device id Disabled,
11:42:14:     audio time offset 0,
11:42:14:
Warning -- DShowPlugin: Failed to connect the video device pin to the video capture pin, result = 80040217
11:42:15: Using directshow input
11:42:15: ------------------------------------------
11:42:15:     device: USB 2820 Device (2),
11:42:15:     device id \\?\usb#vid_eb1a&pid_2820#5&16f38496&0&2#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\{54353d15-e717-4d94-b574-685ce1a209e9},
11:42:15:     chosen type: YUY2, usingFourCC: false, res: 720x480 - 720x480, frameIntervals: 333667-333667
11:42:15:     use buffering: false - 0, fourCC: 'YUY2'
11:42:15:     audio device: Disable,
11:42:15:     audio device id Disabled,
11:42:15:     audio time offset 0,
11:42:15:
11:42:15: Using directshow input
11:42:15: PERFORMANCE WARNING: Scene change took 1032 ms, maybe some sources should be global sources?
11:42:18: ++++++++++++++++++++++++++++++++++++++++++++++++++++++
11:42:18:   New Scene
11:42:18: ------------------------------------------
11:42:18:     device: SA7160 PCI, Analog Capture (#05),
11:42:18:     device id \\?\pci#ven_1131&dev_7160&subsys_12abf501&rev_03#4&5990b51&0&00e6#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\{6f814be9-9af6-43cf-9249-c0340500021c},
11:42:18:     chosen type: YUY2, usingFourCC: false, res: 1920x1080 - 1920x1080, frameIntervals: 166833-333667
11:42:18:     use buffering: false - 0, fourCC: 'YUY2'
11:42:18:     audio device: Disable,
11:42:18:     audio device id Disabled,
11:42:18:     audio time offset 0,
11:42:18:
11:42:18: Using directshow input
11:42:22: ++++++++++++++++++++++++++++++++++++++++++++++++++++++
11:42:22:   New Scene
11:42:24: ++++++++++++++++++++++++++++++++++++++++++++++++++++++
11:42:24:   New Scene
11:42:25: ++++++++++++++++++++++++++++++++++++++++++++++++++++++
11:42:25:   New Scene
11:42:35: ++++++++++++++++++++++++++++++++++++++++++++++++++++++
11:42:35:   New Scene
11:42:42: Total frames encoded: 2052, total frames duplicated: 476 (23.20%)
11:42:42: Total frames rendered: 1638, number of late frames: 276 (16.85%) (it's okay for some frames to be late)
11:42:51:
11:42:51: Profiler time results:
11:42:51:
11:42:51: ==============================================================
11:42:51: video thread frame - [100%] [avg time: 34.809 ms] [children: 94.4%] [unaccounted: 5.64%]
11:42:51: | scene->Preprocess - [47%] [avg time: 16.369 ms]
11:42:51: | GPU download and conversion - [47.3%] [avg time: 16.478 ms] [children: 1.47%] [unaccounted: 45.9%]
11:42:51: | | flush - [0.445%] [avg time: 0.155 ms]
11:42:51: | | CopyResource - [0.819%] [avg time: 0.285 ms]
11:42:51: | | conversion to 4:2:0 - [0.204%] [avg time: 0.071 ms]
11:42:51: Convert444Threads - [100%] [avg time: 4.221 ms] [children: 98.9%] [unaccounted: 1.14%]
11:42:51: | Convert444toNV12 - [98.9%] [avg time: 4.173 ms]
11:42:51: encoder thread frame - [100%] [avg time: 6.16 ms] [children: 0.227%] [unaccounted: 99.8%]
11:42:51: | sending stuff out - [0.227%] [avg time: 0.014 ms]
11:42:51: ==============================================================
11:42:51:
11:42:51:
11:42:51: Profiler CPU results:
11:42:51:
11:42:51: ==============================================================
11:42:51: video thread frame - [cpu time: avg 16.895 ms, total 27674.6 ms] [avg calls per frame: 1]
11:42:51: | scene->Preprocess - [cpu time: avg 15.609 ms, total 25568.6 ms] [avg calls per frame: 1]
11:42:51: | GPU download and conversion - [cpu time: avg 0.304 ms, total 499.202 ms] [avg calls per frame: 1]
11:42:51: | | flush - [cpu time: avg 0.133 ms, total 218.401 ms] [avg calls per frame: 1]
11:42:51: | | CopyResource - [cpu time: avg 0.124 ms, total 202.801 ms] [avg calls per frame: 1]
11:42:51: | | conversion to 4:2:0 - [cpu time: avg 0 ms, total 0 ms] [avg calls per frame: 1]
11:42:51: Convert444Threads - [cpu time: avg 4.19 ms, total 13618.9 ms] [avg calls per frame: 2]
11:42:51: | Convert444toNV12 - [cpu time: avg 4.156 ms, total 13509.7 ms] [avg calls per frame: 2]
11:42:51: encoder thread frame - [cpu time: avg 5.421 ms, total 10561.3 ms] [avg calls per frame: 1]
11:42:51: | sending stuff out - [cpu time: avg 0 ms, total 0 ms] [avg calls per frame: 1]
11:42:51: ==============================================================
11:42:51:
11:42:51: =====Stream End: 2014-06-29, 11:42:51=================================================
 

dodgepong

Administrator
Community Helper
For one, don't use MP3 audio. Use AAC instead. It's more compatible, and higher quality at a given bit rate.

Second, for most people using the onboard GPU is fine for basic stuff, but you have 7 capture cards (many of which are running at 1080p), which is pretty demanding on the video card. You're getting a lot of slowdown from that. There are a couple solutions:

1) Run the cameras and capture cards at a lower resolution, such as 480p. You're recording at 720p anyway, so there's no point to running them at 1080p.

2) Consider getting a real GPU to handle all the capture cards. Of course, then you'll run out of PCIe slots, at which point you'll need to consider getting something like a PCIe expansion chassis to hold the extras.
 
Thanks for the reply.

Thats the problem with the Startech PEXHDCAP, it has multiple inputs (VGA, HDMI, DVI, etc...) but only one input per card works at a time...and you can't change the input resolution. If it comes in at 1080i (in this situation) then it comes out at 1080i. That's what the camera's (Canon HRF400) output the HDMI at with no option to change the output stream.

The thing is, if I use a capture program like the one that comes with the Startech cards (Stream Catcher), although it only lets me view one source/capture card (Startech does not support using more than one capture card per machine) it runs pretty smooth. View the same stream in OBS for some reason, it gets pretty glitchy. Not sure whats up with that?

I was not really sure if a proper GPU card would improve the video experience...thats an easy one to do as onboard video is typically pretty lame. I thought that that the processor and the capture cards were doing all the work and a GPU card would not help...but I'm assuming this is not correct?

Can you recommend a single slot GPU card that would be up to the task?

Do you think the PC has the "balls" with its current config (minus GPU of course) to pull off such a task?

Thanks for the advice. I really hope I can get this thing working. Got to much time and money into it to just walk away :-)
 

dodgepong

Administrator
Community Helper
The thing is, if I use a capture program like the one that comes with the Startech cards (Stream Catcher), although it only lets me view one source/capture card (Startech does not support using more than one capture card per machine) it runs pretty smooth. View the same stream in OBS for some reason, it gets pretty glitchy. Not sure whats up with that?
That's partially because it's only processing one card at a time, and partially because it's not having to output to a Directshow device for other programs to consume. When you have several cards outputting to directshow and all of them active at high resolution, it can put more load on the GPU.

I was not really sure if a proper GPU card would improve the video experience...thats an easy one to do as onboard video is typically pretty lame. I thought that that the processor and the capture cards were doing all the work and a GPU card would not help...but I'm assuming this is not correct?
No, this is not correct. OBS does all the rendering of the image that gets sent to the encoder on the GPU. That involves being able to copy several images from other places on the computer to VRAM and compositing them together, such as from DirectShow devices. You can see it here in the OBS profiler in the log:

11:42:51: video thread frame - [100%] [avg time: 34.809 ms] [children: 94.4%] [unaccounted: 5.64%]
11:42:51: | scene->Preprocess - [47%] [avg time: 16.369 ms]
11:42:51: | GPU download and conversion - [47.3%] [avg time: 16.478 ms] [children: 1.47%] [unaccounted: 45.9%]
For a 30fps video, it should take less than 33ms to generate each frame if each frame is going to be ready to go in time (1 second / 30 frames = 33ms per frame). Here you can see that on average it's taking you 34ms to generate each frame, so OBS is running too slow for your current settings. A more normal frame time is less than 5ms. Furthermore, you can see in the breakdown what is taking so long: the "scene->Preprocess" step and the "GPU download and conversion" step are each taking ~16ms each, comprising most of what is taking so long to generate a frame. Both of those steps are heavily bound by the GPU's speed, particularly the VRAM bus speed.

Can you recommend a single slot GPU card that would be up to the task?
Unfortunately, I can't. I spent some time looking on Newegg, but all the single-slot GPUs are ones that are pretty bad. nVidia GPUs that end in -40 or less are usually pretty bad (e.g. 610, 730, etc.). I saw some single-slot 650's, but they looked pretty wide such that they might as well be dual-slot.

Do you think the PC has the "balls" with its current config (minus GPU of course) to pull off such a task?
Besides the GPU, yes. That's a great CPU for encoding, and CPU is the most important part. In your case, though, you also need a good GPU, too.
 
Going to get a MSI R9 270X. One of the church members offered it. What do you think?

Its 2 slot, but we will make it work. I checked the reviews and it seems like a pretty top notch card.
 

dodgepong

Administrator
Community Helper
That card should work alright, I think. I should think 2 gigs of VRAM would be enough.
 
Top