Question / Help 30 or 60 fps for a retro game?

Flamecookie

New Member
Hi, i've tested streaming a retro game from a dazzle and i'm not sure what kind of resolution and fps i should have. When i watch my own stream from another computer i can see that the stream is kinda shaky and not really fluid, but when i watch the archived video on twitch it looks fine. I have 5 mbps upload speed, and 720x480 resolution with 60fps, also 2000 bitrate. here is my log:

Code:
16:56:34: Open Broadcaster Software v0.60b - 32bit (´・ω・`)
16:56:34: -------------------------------
16:56:34: CPU Name: Intel(R) Core(TM) i5-4670 CPU @ 3.40GHz
16:56:34: CPU Speed: 3392MHz
16:56:34: Physical Memory:  4095MB Total, 4095MB Free
16:56:34: stepping id: 3, model 60, family 6, type 0, extmodel 1, extfamily 0, HTT 1, logical cores 4, total cores 4
16:56:34: monitor 1: pos={0, 0}, size={1920, 1080}
16:56:34: Windows Version: 6.2 Build 9200 
16:56:34: Aero is Enabled
16:56:34: -------------------------------
16:56:34: OBS Modules:
16:56:34: Base Address     Module
16:56:34: 01350000         OBS.exe
16:56:34: 73250000         OBSApi.dll
16:56:34: 73FC0000         DShowPlugin.dll
16:56:34: 73FA0000         GraphicsCapture.dll
16:56:34: 73ED0000         NoiseGate.dll
16:56:34: 73EB0000         PSVPlugin.dll
16:56:34: ------------------------------------------
16:56:34: Adapter 1
16:56:34:   Video Adapter: NVIDIA GeForce GTX 760 (192-bit)
16:56:34:   Video Adapter Dedicated Video Memory: 3139428352
16:56:34:   Video Adapter Shared System Memory: 1155473408
16:56:34:   Video Adapter Output 1: pos={0, 0}, size={1920, 1080}, attached=true
16:56:34: =====Stream Start: 2014-02-06, 16:56:34===============================================
16:56:34:   Multithreaded optimizations: On
16:56:34:   Base resolution: 720x480
16:56:34:   Output resolution: 720x480
16:56:34: ------------------------------------------
16:56:34: Loading up D3D10 on NVIDIA GeForce GTX 760 (192-bit) (Adapter 1)...
16:56:34: ------------------------------------------
16:56:34: Audio Format: 48000hz
16:56:34: Playback device Default
16:56:34: ------------------------------------------
16:56:34: Using desktop audio input: Mikrofon (2- Realtek High Definition Audio)
16:56:34: ------------------------------------------
16:56:34: Using auxilary audio input: Mikrofon (2- Realtek High Definition Audio)
16:56:34: ------------------------------------------
16:56:34: Audio Encoding: AAC
16:56:34:     bitrate: 160
16:56:34: Using text output
16:56:34: Using Window Capture
16:56:34: Using Window Capture
16:56:34: ------------------------------------------
16:56:34:     device: \\?\usb#vid_1b80&pid_e60a&mi_00#7&13ce7441&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global,
16:56:34:     device id \\?\usb#vid_1b80&pid_e60a&mi_00#7&13ce7441&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global,
16:56:34:     chosen type: YUY2, usingFourCC: false, res: 720x480 - 720x480, frameIntervals: 333667-333667
16:56:34:     use buffering: false - 0, fourCC: 'YUY2'
16:56:34:     audio device: Linje (Dazzle Video Capture USB Audio Device),
16:56:34:     audio device id (null),
16:56:34: 
16:56:34:     device audio info - bits per sample: 16, channels: 2, samples per sec: 44100, block size: 4
16:56:34: Using directshow input
16:56:34: Scene buffering time set to 700
16:56:34: ------------------------------------------
16:56:34: Video Encoding: x264
16:56:34:     fps: 60
16:56:34:     width: 720, height: 480
16:56:34:     preset: faster
16:56:34:     profile: main
16:56:34:     keyint: 120
16:56:34:     CBR: yes
16:56:34:     CFR: yes
16:56:34:     max bitrate: 1800
16:56:34:     buffer size: 1800
16:56:34: ------------------------------------------
16:56:43: Using Window Capture
16:56:44: Using Window Capture
16:58:08: Using Window Capture
16:58:26: Total frames encoded: 6682, total frames duplicated: 2 (0.03%)
16:58:26: Total frames rendered: 6690, number of late frames: 0 (0.00%) (it's okay for some frames to be late)
16:58:27: 
16:58:27: Profiler time results:
16:58:27: 
16:58:27: ==============================================================
16:58:27: video thread frame - [100%] [avg time: 1.078 ms] [children: 64.9%] [unaccounted: 35.1%]
16:58:27: | scene->Preprocess - [55.6%] [avg time: 0.599 ms]
16:58:27: | GPU download and conversion - [9.37%] [avg time: 0.101 ms] [children: 7.98%] [unaccounted: 1.39%]
16:58:27: | | flush - [5.47%] [avg time: 0.059 ms]
16:58:27: | | CopyResource - [1.95%] [avg time: 0.021 ms]
16:58:27: | | conversion to 4:2:0 - [0.557%] [avg time: 0.006 ms]
16:58:27: Convert444Threads - [100%] [avg time: 0.168 ms] [children: 98.2%] [unaccounted: 1.79%]
16:58:27: | Convert444toNV12 - [98.2%] [avg time: 0.165 ms]
16:58:27: encoder thread frame - [100%] [avg time: 0.331 ms]
16:58:27: ==============================================================
16:58:27: 
16:58:27: 
16:58:27: Profiler CPU results:
16:58:27: 
16:58:27: ==============================================================
16:58:27: video thread frame - [cpu time: avg 0.383 ms, total 2562.5 ms] [avg calls per frame: 1]
16:58:27: | scene->Preprocess - [cpu time: avg 0.042 ms, total 281.25 ms] [avg calls per frame: 1]
16:58:27: | GPU download and conversion - [cpu time: avg 0.067 ms, total 453.125 ms] [avg calls per frame: 1]
16:58:27: | | flush - [cpu time: avg 0.037 ms, total 250 ms] [avg calls per frame: 1]
16:58:27: | | CopyResource - [cpu time: avg 0.018 ms, total 125 ms] [avg calls per frame: 1]
16:58:27: | | conversion to 4:2:0 - [cpu time: avg 0 ms, total 0 ms] [avg calls per frame: 1]
16:58:27: Convert444Threads - [cpu time: avg 0.175 ms, total 2328.13 ms] [avg calls per frame: 2]
16:58:27: | Convert444toNV12 - [cpu time: avg 0.174 ms, total 2312.5 ms] [avg calls per frame: 2]
16:58:27: encoder thread frame - [cpu time: avg 0.009 ms, total 62.5 ms] [avg calls per frame: 1]
16:58:27: ==============================================================
16:58:27: 
16:58:27: =====Stream End: 2014-02-06, 16:58:27=================================================
16:58:49: CUDA loaded successfully
16:58:49: 1 CUDA capable devices found
16:58:49: [ GPU #0 - < GeForce GTX 760 (192-bit) > has Compute SM 3.0, NVENC Available ]
16:58:59: =====Stream Start: 2014-02-06, 16:58:59===============================================
16:58:59:   Multithreaded optimizations: On
16:58:59:   Base resolution: 720x480
16:58:59:   Output resolution: 720x480
16:58:59: ------------------------------------------
16:58:59: Loading up D3D10 on NVIDIA GeForce GTX 760 (192-bit) (Adapter 1)...
16:58:59: ------------------------------------------
16:58:59: Audio Format: 48000hz
16:58:59: Playback device Default
16:58:59: ------------------------------------------
16:58:59: Using desktop audio input: Mikrofon (2- Realtek High Definition Audio)
16:58:59: ------------------------------------------
16:58:59: Using auxilary audio input: Mikrofon (2- Realtek High Definition Audio)
16:58:59: ------------------------------------------
16:58:59: Audio Encoding: AAC
16:58:59:     bitrate: 160
16:58:59: Using text output
16:58:59: Using Window Capture
16:58:59: Using Window Capture
16:58:59: ------------------------------------------
16:58:59:     device: \\?\usb#vid_1b80&pid_e60a&mi_00#7&13ce7441&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global,
16:58:59:     device id \\?\usb#vid_1b80&pid_e60a&mi_00#7&13ce7441&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global,
16:58:59:     chosen type: YUY2, usingFourCC: false, res: 720x480 - 720x480, frameIntervals: 333667-333667
16:58:59:     use buffering: false - 0, fourCC: 'YUY2'
16:58:59:     audio device: Linje (Dazzle Video Capture USB Audio Device),
16:58:59:     audio device id (null),
16:58:59: 
16:58:59:     device audio info - bits per sample: 16, channels: 2, samples per sec: 44100, block size: 4
16:58:59: Using directshow input
16:58:59: Scene buffering time set to 700
16:58:59: ------------------------------------------
16:58:59: Video Encoding: x264
16:58:59:     fps: 60
16:58:59:     width: 720, height: 480
16:58:59:     preset: faster
16:58:59:     profile: main
16:58:59:     keyint: 120
16:58:59:     CBR: yes
16:58:59:     CFR: yes
16:58:59:     max bitrate: 1800
16:58:59:     buffer size: 1800
16:58:59: ------------------------------------------
16:59:01: Using RTMP service: Twitch / Justin.tv
16:59:01:   Server selection: rtmp://live-arn.justin.tv/app
16:59:01:   Interface: Realtek PCIe GBE Family Controller (ethernet, 1000 mbps)
16:59:02: Completed handshake with rtmp://live-arn.justin.tv/app in 542 ms.
16:59:03: SO_SNDBUF was at 65536
16:59:03: SO_SNDBUF is now 65536
16:59:04: RTMPPublisher::SocketLoop: Increasing send buffer to ISB 131072 (buffer: 0 / 250880)
16:59:06: RTMPPublisher::SocketLoop: Increasing send buffer to ISB 262144 (buffer: 0 / 250880)
17:01:24: Total frames encoded: 8642, total frames duplicated: 7 (0.08%)
17:01:24: Total frames rendered: 8651, number of late frames: 1 (0.01%) (it's okay for some frames to be late)
17:01:24: RTMPPublisher::SocketLoop: Graceful loop exit
17:01:25: Average send payload: 4693 bytes, average send interval: 19 ms
17:01:25: Number of times waited to send: 0, Waited for a total of 0 bytes
17:01:25: Number of b-frames dropped: 0 (0%), Number of p-frames dropped: 0 (0%), Total 0 (0%)
17:01:25: Number of bytes sent: 34582320
17:01:25: 
17:01:25: Profiler time results:
17:01:25: 
17:01:25: ==============================================================
17:01:25: video thread frame - [100%] [avg time: 1.258 ms] [children: 59.5%] [unaccounted: 40.5%]
17:01:25: | scene->Preprocess - [53.9%] [avg time: 0.678 ms]
17:01:25: | GPU download and conversion - [5.56%] [avg time: 0.07 ms] [children: 4.05%] [unaccounted: 1.51%]
17:01:25: | | flush - [2.15%] [avg time: 0.027 ms]
17:01:25: | | CopyResource - [1.59%] [avg time: 0.02 ms]
17:01:25: | | conversion to 4:2:0 - [0.318%] [avg time: 0.004 ms]
17:01:25: Convert444Threads - [100%] [avg time: 0.166 ms] [children: 98.2%] [unaccounted: 1.81%]
17:01:25: | Convert444toNV12 - [98.2%] [avg time: 0.163 ms]
17:01:25: encoder thread frame - [100%] [avg time: 0.355 ms]
17:01:25: ==============================================================
17:01:25: 
17:01:25: 
17:01:25: Profiler CPU results:
17:01:25: 
17:01:25: ==============================================================
17:01:25: video thread frame - [cpu time: avg 0.606 ms, total 5250 ms] [avg calls per frame: 1]
17:01:25: | scene->Preprocess - [cpu time: avg 0.072 ms, total 625 ms] [avg calls per frame: 1]
17:01:25: | GPU download and conversion - [cpu time: avg 0.057 ms, total 500 ms] [avg calls per frame: 1]
17:01:25: | | flush - [cpu time: avg 0.018 ms, total 156.25 ms] [avg calls per frame: 1]
17:01:25: | | CopyResource - [cpu time: avg 0.023 ms, total 203.125 ms] [avg calls per frame: 1]
17:01:25: | | conversion to 4:2:0 - [cpu time: avg 0 ms, total 0 ms] [avg calls per frame: 1]
17:01:25: Convert444Threads - [cpu time: avg 0.124 ms, total 2140.63 ms] [avg calls per frame: 2]
17:01:25: | Convert444toNV12 - [cpu time: avg 0.124 ms, total 2140.63 ms] [avg calls per frame: 2]
17:01:25: encoder thread frame - [cpu time: avg 0.007 ms, total 62.5 ms] [avg calls per frame: 1]
17:01:25: ==============================================================
17:01:25: 
17:01:25: =====Stream End: 2014-02-06, 17:01:25=================================================
 
You unfortunately don't mention what console it is you're streaming games from, or what deinterlacing method you're using, making it a bit hard to troubleshoot this. If you are using retro deinterlacing, please be aware that it's only intended to be used with low resolution games (240p) such as NES, Megadrive, SNES, PS1, etc., not things like PlayStation 2 or GameCube.

If you are streaming a low resolution game and it looks shaky, this is probably because the Flash player can't properly maintain 60 frames per seconds in most cases, if you attempt to play it back using something like LiveStreamer, it will most likely look fine.
 
paibox said:
You unfortunately don't mention what console it is you're streaming games from, or what deinterlacing method you're using, making it a bit hard to troubleshoot this. If you are using retro deinterlacing, please be aware that it's only intended to be used with low resolution games (240p) such as NES, Megadrive, SNES, PS1, etc., not things like PlayStation 2 or GameCube.

If you are streaming a low resolution game and it looks shaky, this is probably because the Flash player can't properly maintain 60 frames per seconds in most cases, if you attempt to play it back using something like LiveStreamer, it will most likely look fine.

I see, i'm recording a SNES with OBS's retro/scandoubling deinterlacing. Ill try with 30 fps instead.
 
Back
Top