Question / Help Increasing the quality further @ 60 fps

Spherax

New Member
Hi guys,

the last couple of days I've done some tests with 720@60 fps.
I wanna optimize it for high motion games like DMC / Castlevania.

These are my settings:

Total upload speed: 6k

http://puu.sh/79Ec5.png
http://puu.sh/79EcR.png
http://puu.sh/79EaY.png

My system:

http://puu.sh/79EeZ.png

Example vod:

http://www.twitch.tv/moldrag/b/506199461

I'm not quite happy with the result. I personally would be turned off by the amount of pixelation.

Why am I streaming at 2k? Simply because I have friends who regularly watch my stream. I've done multiple tests, 2k is as high as I can and want to go.

Whats my goal exactly?
I want to reduce the amount of pixelation/artifacts as much as possible while staying at 2k bitrate.

I appreciate every idea/help you guys can come up with.
 

FerretBomb

Active Member
Post a log file from a live streaming session. There are instructions on how to do so in a stickied thread at the top of this forum.

If you want to improve quality without increasing bitrate, about the only thing you can really do is use a slower encoding preset. Try stepping down to Faster from Veryfast, stream for 5 minutes, and check your logs for duplicated/skipped frames. If you have none (or a low number) you might be able to step down to Fast or lower. Slower preset, more quality at a given bitrate. But MUCH more CPU used.
 

Spherax

New Member
FerretBomb said:
Post a log file from a live streaming session. There are instructions on how to do so in a stickied thread at the top of this forum.

If you want to improve quality without increasing bitrate, about the only thing you can really do is use a slower encoding preset. Try stepping down to Faster from Veryfast, stream for 5 minutes, and check your logs for duplicated/skipped frames. If you have none (or a low number) you might be able to step down to Fast or lower. Slower preset, more quality at a given bitrate. But MUCH more CPU used.


Heres the log file. I've already run it through the analyzer - usual response. My combination of bitrate and fps is bad.


Code:
06:28:05: CUDA loaded successfully
06:28:05: 1 CUDA capable devices found
06:28:05: [ GPU #0 - < GeForce GTX 680 > has Compute SM 3.0, NVENC Available ]
06:29:09: Open Broadcaster Software v0.612b - 64bit ( ^ω^)
06:29:09: -------------------------------
06:29:09: CPU Name: Intel(R) Core(TM) i7-3770K CPU @ 3.50GHz
06:29:09: CPU Speed: 3531MHz
06:29:09: Physical Memory:  8153MB Total, 3906MB Free
06:29:09: stepping id: 9, model 58, family 6, type 0, extmodel 1, extfamily 0, HTT 1, logical cores 8, total cores 4
06:29:09: monitor 1: pos={1920, 7}, size={1920, 1080}
06:29:09: monitor 2: pos={0, 0}, size={1920, 1080}
06:29:09: Windows Version: 6.2 Build 9200 
06:29:09: Aero is Enabled
06:29:09: -------------------------------
06:29:09: OBS Modules:
06:29:09: Base Address     Module
06:29:09: 000000008A540000 OBS.exe
06:29:09: 0000000079050000 OBSApi.dll
06:29:09: 000000008AF30000 DShowPlugin.dll
06:29:09: 000000008CCC0000 GraphicsCapture.dll
06:29:09: 000000008CB10000 NoiseGate.dll
06:29:09: 000000008CA00000 PSVPlugin.dll
06:29:09: ------------------------------------------
06:29:09: Adapter 1
06:29:09:   Video Adapter: NVIDIA GeForce GTX 680
06:29:09:   Video Adapter Dedicated Video Memory: 2082140160
06:29:09:   Video Adapter Shared System Memory: 2147807232
06:29:09:   Video Adapter Output 1: pos={0, 0}, size={1920, 1080}, attached=true
06:29:09:   Video Adapter Output 2: pos={1920, 7}, size={1920, 1080}, attached=true
06:29:09: =====Stream Start: 2014-02-25, 06:29:09===============================================
06:29:09:   Multithreaded optimizations: On
06:29:09:   Base resolution: 1920x1080
06:29:09:   Output resolution: 1280x720
06:29:09: ------------------------------------------
06:29:09: Loading up D3D10 on NVIDIA GeForce GTX 680 (Adapter 1)...
06:29:09: ------------------------------------------
06:29:09: Audio Format: 48000hz
06:29:09: Playback device Default
06:29:09: ------------------------------------------
06:29:09: Using desktop audio input: Lautsprecher (Yeti Stereo Microphone)
06:29:09: ------------------------------------------
06:29:09: Using auxilary audio input: Mikrofon (Yeti Stereo Microphone)
06:29:09: ------------------------------------------
06:29:09: Audio Encoding: AAC
06:29:09:     bitrate: 128
06:29:09: Using graphics capture
06:29:09: Scene buffering time set to 700
06:29:09: ------------------------------------------
06:29:09: Video Encoding: x264
06:29:09:     fps: 60
06:29:09:     width: 1280, height: 720
06:29:09:     preset: fast
06:29:09:     profile: main
06:29:09:     keyint: 120
06:29:09:     CBR: yes
06:29:09:     CFR: yes
06:29:09:     max bitrate: 2000
06:29:09:     buffer size: 2000
06:29:09: ------------------------------------------
06:29:09: SharedTexCapture hooked
06:29:11: Using RTMP service: Twitch / Justin.tv
06:29:11:   Server selection: rtmp://live-ams.justin.tv/app
06:29:11:   Interface: PCI-E-Gigabit-Ethernet-Controller Qualcomm Atheros AR8151(NDIS 6.30) (ethernet, 100 mbps)
06:29:12: Completed handshake with rtmp://live-ams.justin.tv/app in 416 ms.
06:29:13: SO_SNDBUF was at 65536
06:29:13: SO_SNDBUF is now 65536
06:29:14: RTMPPublisher::SocketLoop: Increasing send buffer to ISB 131072 (buffer: 0 / 272384)
06:29:23: RTMPPublisher::SocketLoop: Increasing send buffer to ISB 262144 (buffer: 0 / 272384)
06:34:24: Total frames encoded: 18882, total frames duplicated: 61 (0.32%)
06:34:24: Total frames rendered: 18888, number of late frames: 2 (0.01%) (it's okay for some frames to be late)
06:34:24: RTMPPublisher::SocketLoop: Graceful loop exit
06:34:25: Average send payload: 4976 bytes, average send interval: 18 ms
06:34:25: Number of times waited to send: 0, Waited for a total of 0 bytes
06:34:25: Number of b-frames dropped: 0 (0%), Number of p-frames dropped: 0 (0%), Total 0 (0%)
06:34:25: Number of bytes sent: 83162513
06:34:25: 
06:34:25: Profiler time results:
06:34:25: 
06:34:25: ==============================================================
06:34:25: video thread frame - [100%] [avg time: 0.665 ms] [children: 11.3%] [unaccounted: 88.7%]
06:34:25: | scene->Preprocess - [0.15%] [avg time: 0.001 ms]
06:34:25: | GPU download and conversion - [11.1%] [avg time: 0.074 ms] [children: 8.27%] [unaccounted: 2.86%]
06:34:25: | | flush - [5.86%] [avg time: 0.039 ms]
06:34:25: | | CopyResource - [2.11%] [avg time: 0.014 ms]
06:34:25: | | conversion to 4:2:0 - [0.301%] [avg time: 0.002 ms]
06:34:25: Convert444Threads - [100%] [avg time: 0.486 ms] [children: 99.2%] [unaccounted: 0.823%]
06:34:25: | Convert444toNV12 - [99.2%] [avg time: 0.482 ms]
06:34:25: encoder thread frame - [100%] [avg time: 1.01 ms] [children: 1.58%] [unaccounted: 98.4%]
06:34:25: | sending stuff out - [1.58%] [avg time: 0.016 ms]
06:34:25: ==============================================================
06:34:25: 
06:34:25: 
06:34:25: Profiler CPU results:
06:34:25: 
06:34:25: ==============================================================
06:34:25: video thread frame - [cpu time: avg 0.035 ms, total 671.875 ms] [avg calls per frame: 1]
06:34:25: | scene->Preprocess - [cpu time: avg 0 ms, total 0 ms] [avg calls per frame: 1]
06:34:25: | GPU download and conversion - [cpu time: avg 0.005 ms, total 109.375 ms] [avg calls per frame: 1]
06:34:25: | | flush - [cpu time: avg 0.004 ms, total 93.75 ms] [avg calls per frame: 1]
06:34:25: | | CopyResource - [cpu time: avg 0 ms, total 0 ms] [avg calls per frame: 1]
06:34:25: | | conversion to 4:2:0 - [cpu time: avg 0 ms, total 15.625 ms] [avg calls per frame: 1]
06:34:25: Convert444Threads - [cpu time: avg 0.541 ms, total 20406.3 ms] [avg calls per frame: 2]
06:34:25: | Convert444toNV12 - [cpu time: avg 0.538 ms, total 20296.9 ms] [avg calls per frame: 2]
06:34:25: encoder thread frame - [cpu time: avg 0.132 ms, total 2500 ms] [avg calls per frame: 1]
06:34:25: | sending stuff out - [cpu time: avg 0.029 ms, total 546.875 ms] [avg calls per frame: 1]
06:34:25: ==============================================================
06:34:25: 
06:34:25: =====Stream End: 2014-02-25, 06:34:25=================================================
 

alpinlol

Active Member
imho ... quality doesnt even look that bad at least in this vod maybe if theres actually heavy fullscreen movement then its going to be really blocky but the vod looks pretty decent to me for a 2k bitrate
 

HomeWorld

Developer
The only way to increase the quality in highly dynamic scenes is to increase the bitrate or lower the fps, 720p60fps at only 2000k bitrate is not enough.
 

FerretBomb

Active Member
Ah, yeah. I'd missed that you were sitting on 720@60fps at 2K. That's going to look like crap no matter what you do, pretty much. You might be able to get away with 45fps without anyone noticing though. It'd improve your fidelity by a good chunk. With that few frames duped/skipped, you can probably go down another encoder step.

Isn't really going to help much though. That's to help squeeze out the most you can out of what you've got... it doesn't work miracles though. You need either more bitrate, or to drop the fps.
 

Spherax

New Member
Thanks guys. I've come to the conclusion that, as you said, it's not possible.
I've decided to work with 3k @ 60 | fast preset.

Thanks again.
 
Top