Question / Help Bad quality with recommended settings

TheyZi

New Member
Hi guys, I'm trying to stream DayZ to Twitch but I just can't get any good quality. I tried different settings but it just won't improve the quality.
I tried streaming at 1080p, 720p, 480p, at 30 fps, at 60 fps, with different bitrates, with different encoding presets, different encoding profiles, nvidia encoder, software encoder.... the quality just remains bad.

This is a screenshot I took from the game:
http://i.imgur.com/3J8nWr2.jpg

This is a screenshot I took from twitch:
http://i.imgur.com/St9oPkE.jpg

This is my OBS setup:
http://i.imgur.com/icCJWBT.png
http://i.imgur.com/zw2vO9y.png
http://i.imgur.com/bfsKI7W.png

My computer:
Asrock Fatal1ty Z97X Killer
Intel i7-4790k @ 4.00 Ghz (4.4 Ghz turbo boost)
G.Skill Ripjaws Z Series DDR3-2133 16GB(4x4GB) CL9
Gigabyte GeForce GTX 970 G1 Gaming - 4GB
Intel SSD 750 Series - PCIe - 400GB
Windows 7 Ultimate 64 bit, all drivers up to date

Does anyone know what am I doing wrong?
 

Attachments

  • upload_2015-7-18_21-34-31.png
    upload_2015-7-18_21-34-31.png
    18 KB · Views: 21

FerretBomb

Active Member
Post a logfile, from the Help menu. Screenshots are not necessary (all of your settings will be in the logs).

NVENC is a poor-quality encoder. Use x264 if possible, instead.

Due to the realistic technical limitations, you will never have a 1:1 perfect quality livestream.
Additionally, DayZ is notorious for being problematic for encoders, and requiring a higher bitrate to maintain fidelity.

720p@30fps, 2000kbps is the 'golden point' for non-partnered streamers. Best tradeoff between resolution, smoothness, fidelity, and non-buffering.
For DayZ, it's more advised to run 480p@30fps, 2000kbps.
 

Cryonic

Member
480p 30FPS will look awful with DayZ. 720p 30FPS (cause its useless to try to reach 60FPS everywhere in DayZ, already tryed that), 3500kbps will look pretty good.
 

blahbaconblah

New Member
480p 30FPS will look awful with DayZ. 720p 30FPS (cause its useless to try to reach 60FPS everywhere in DayZ, already tryed that), 3500kbps will look pretty good.

Cryonic is right. Also, with an i7 4790k (overclock that motherf*ucker!) you will have no problem at all hitting 720 @ 30fps.
 

TheyZi

New Member
Here is the log:

Code:
19:47:12: Server Ping plugin strings not found, dynamically loading 24 strings
19:49:15: Open Broadcaster Software v0.652b - 64bit ( ^ω^)
19:49:15: -------------------------------
19:49:15: CPU Name: Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz
19:49:15: CPU Speed: 3998MHz
19:49:15: Physical Memory:  16331MB Total, 13491MB Free
19:49:15: stepping id: 3, model 60, family 6, type 0, extmodel 1, extfamily 0, HTT 1, logical cores 8, total cores 4
19:49:15: monitor 1: pos={0, 0}, size={1680, 1050}
19:49:15: monitor 2: pos={-1280, 0}, size={1280, 1024}
19:49:15: Windows Version: 6.1 Build 7601 S
19:49:15: Aero is Disabled
19:49:15: -------------------------------
19:49:15: OBS Modules:
19:49:15: Base Address     Module
19:49:15: 000000003F430000 OBS.exe
19:49:15: 00000000F8140000 OBSApi.dll
19:49:15: 00000000F80F0000 DShowPlugin.dll
19:49:15: 00000000F80B0000 GraphicsCapture.dll
19:49:15: 00000000F9130000 NoiseGate.dll
19:49:15: 00000000F8080000 PSVPlugin.dll
19:49:15: 00000000F8050000 scenesw.dll
19:49:15: 00000000F8020000 ServerPingPlugin.dll
19:49:15: ------------------------------------------
19:49:15: Adapter 1
19:49:15:   Video Adapter: NVIDIA GeForce GTX 970
19:49:15:   Video Adapter Dedicated Video Memory: 4202971136
19:49:15:   Video Adapter Shared System Memory: 3999260672
19:49:15:   Video Adapter Output 1: pos={0, 0}, size={1680, 1050}, attached=true
19:49:15:   Video Adapter Output 2: pos={-1280, 0}, size={1280, 1024}, attached=true
19:49:15: =====Stream Start: 2015-07-20, 19:49:15===============================================
19:49:15:   Multithreaded optimizations: On
19:49:15:   Base resolution: 1280x720
19:49:15:   Output resolution: 1280x720
19:49:15: ------------------------------------------
19:49:15: Loading up D3D10 on NVIDIA GeForce GTX 970 (Adapter 1)...
19:49:15: ------------------------------------------
19:49:15: Audio Format: 48000 Hz
19:49:15: ------------------------------------------
19:49:15: Audio Channels: 2 Ch
19:49:15: Playback device Default
19:49:15: ------------------------------------------
19:49:15: Using desktop audio input: Altoparlanti (Realtek High Definition Audio)
19:49:15: Global Audio time adjust: 0
19:49:15: ------------------------------------------
19:49:15: Using auxilary audio input: FrontMic (Realtek High Definition Audio)
19:49:15: Mic time offset: 0
19:49:15: ------------------------------------------
19:49:15: Audio Encoding: AAC
19:49:15:     bitrate: 128
19:49:15: Using text output
19:49:15: Scene buffering time set to 700
19:49:15: ------------------------------------------
19:49:15: Video Encoding: x264
19:49:15:     fps: 30
19:49:15:     width: 1280, height: 720
19:49:15:     preset: faster
19:49:15:     profile: main
19:49:15:     keyint: 60
19:49:15:     CBR: yes
19:49:15:     CFR: yes
19:49:15:     max bitrate: 3000
19:49:15:     buffer size: 3000
19:49:15: ------------------------------------------
19:49:15: Audio timestamp for device 'FrontMic (Realtek High Definition Audio)' was behind target timestamp by 999426
19:49:17: Using RTMP service: Twitch
19:49:17:   Server selection: rtmp://live-fra.twitch.tv/app
19:49:17:   Interface: Killer e2200 Gigabit Ethernet Controller (NDIS 6.30) (ethernet, 1000 mbps)
19:49:18: Completed handshake with rtmp://live-fra.twitch.tv/app in 931 ms.
19:49:18: SO_SNDBUF was at 8192
19:49:18: SO_SNDBUF is now 65536
 

FerretBomb

Active Member
That is an incomplete logfile. Just use the 'upload' option from the Help menu, and post the link it gives you.
Immediately notable is that you're using 3000kbps (far exceeding the advised 2000 limit), and you have Aero off. Aero on actually speeds up window and game capture. There's no reason to disable Aero unless you're Monitor capturing, which you shouldn't be doing under Win7 at all.

Please ignore Cryonic as far as the bitrate. Non-partnered casters should NEVER stream at 3500kbps or even close to it, it will result in massive amounts of buffering for your viewers. 2000kbps is the point where the majority of Twitch viewers will be able to watch without buffering. You need to work within that technical limitation.

720p@30 is good for normal games, but with a lot of the stuff DayZ does, it needs a higher bit per pixel density. Which means dropping your framerate (below 30fps is going to look worse the further you go) or your resolution. As a majority of viewers will not fullscreen you anyway, dropping to 480p is the best realistic tradeoff.
 

Cryonic

Member
Well there is no way to make an FPS game look good with 480p 30FPS or just the 2000kbps limit. And DayZ is the worst that you can have with such low settings. Believe me, there is no way around increasing the bandwith to something around 3000 if you want a watchable stream at 720p in games like DayZ.

P.S. i never expirienced buffering on twitch, even when people use over 4k. A good route to San Francisco solves all problems, and transcoding (that is avaliable for so many people now with lowest viewer count ever in the twitch history) there is no reason to make the stream look like a 240p youtube video.
 

TheyZi

New Member
I tried all possible settings and configurations and I finally solved it. Here are all the steps I took:
First, I installed the Scythe Grand Kama Cross CPU cooler so that I can overclock.
I overclocked the processor to 4.6 Ghz with HyperThreading on.
Then I set DayZ to run windowed at 720p, these are my DayZ settings:

Code:
language="English";
adapter=-1;
3D_Performance=1500000;
Resolution_Bpp=32;
Windowed=1;
Resolution_W=1280;
Resolution_H=720;
refresh=60;
winX=392;
winY=37;
winW=1280;
winH=720;
winDefW=1280;
winDefH=720;
Render_W=1280;
Render_H=720;
FSAA=0;
postFX=0;
GPU_MaxFramesAhead=1;
GPU_DetectedFramesAhead=0;
HDRPrecision=8;
lastDeviceId="";
localVRAM=2147483647;
nonlocalVRAM=1073676288;
vsync=1;
AToC=0;
PPAA=2;
PPAA_Level=2;
class ModLauncherList
{
    class Mod1
    {
        dir="@DayZ";
        name="ArmA 2: DayZ Mod";
        origin="GAME DIR";
        fullPath="C:\Program Files (x86)\Steam\steamapps\common\Arma 2 Operation Arrowhead\@DayZ";
    };
};

DayZ command line parameters:
-nosplash -skipIntro -maxMem=2047 -maxVRAM=2047 -malloc=System -noLogs -noPause

Ingame settings:
zUtRL23.png


The PPAA is set at FXAA (Sharp filter) - Normal, as this gives a very good looking terrain.

I'm running 32 bit OBS because for unknown reasons it gives me better performance, and here are the settings:
Encoding: x264
CBR: yes
Max bitrate: 3300
CBR padding: yes
Custom buffer size: yes
Buffer size: 6600
Audio codec: AAC, bitrate: 128, Format: 48kHz, Channel: stereo
Video resolution: 1280x720, downscale: none
FPS: 20
Disable aero: yes
Multithreaded optimizations: yes
Process priority class: normal
Scene buffering time: 2000
x264 CPU Preset: slow
Encoding Profile: main
Keyframe interval: 2
Use CFR: yes

The results?
Ingame FPS while standing still: average of about 55. CPU utilization average of 39%, CPU temperature average 62 °C.
Ingame FPS while running and spinning: never below 35. CPU maximum utilization of 90% (average 80%), maximum temperature 81 °C.

This is a screenshot from the game:
http://i.imgur.com/eUNywnL.jpg

And this is a screenshot from twitch (upscaled 1.5x by going fullscreen):
http://i.imgur.com/7QqiRtq.jpg

It's still a bit blurry, but it's acceptable for me. The quality is good even while running.

If I had a water cooler, I think that I could hit 5 GHz and set the preset to slower (the slowest) and still keep acceptable temperatures. This CPU can run 5 GHz on air, but the high temperatures would probably kill it within a few weeks.

Can a mod add [solved] to the title? Or should I make this into a separate thread?
 
Top