Question / Help Very Low latency streaming

nunux

New Member
Hello,

I'm trying to achieve very low latency streaming of games using OBS. I would like to go below 500ms end-to-end, ideally below 200ms. The goal is to play game on my TV screen, connected to a low resource Linux based Media Center (Atom CPU, NVidia ION). The game run on my Windows 8 "high end" computer connected to the Media Center trough CPL link.

The ping between the two computers vary from 3ms to 15ms, so CPL seems to not introduce high delays. I'm using nginx-rtmp-module as RTMP server.

The setup work fine, I've tried XBMC, mplayer, vlc on Media Center side and all works (vlc needs rtmpdump).

The problem is that the delay is around 3-5 seconds, I did not measure it precisely yet as it is definitely to high for gaming.

I've tried to tune all three parts of the setup with no result.

Here is my settings:
OBS:
Video Encoding:
Enable CBR: checked
Enable CBR padding: checked
bitrate : 500kb/s
buffer size : 50
Audio Encoding:
Codec: MP3
bitrate: 96
Video:
resolution: 1280:720
downscaling: None
Advanced:
Multi-thread: unchecked
priority: High
x264 preset: ultrafast
x264 option: --tune zerolatency
network interface: "myipaddress"
Automatic low latency mode: checked

nginx at the en of my config file:
Code:
rtmp {
        server {
                listen 1935;
                chunk_size 256;

                application live {
                        live on;
                        record off;
                        wait_key on;
                        interleave on;
                        publish_notify on;
                        sync 10ms;
                        wait_video on;
                }
        }
}

media center playing command
Code:
$ mplayer rtmp://localhost/live/game -nolirc  -vo vdpau -vc ffh264vdpau -nocache -nosound -fs
$ rtmpdump -r rtmp://localhost/live/game --live --quiet | mplayer -vo vdpau -vc ffh264vdpau -nocache -nosound -fs -
$ rtmpdump -r rtmp://localhost/live/game --quiet | cvlc -

If I did not mention a parameter, this is because it is set to the default option.

Maybe what I try to achieve is not possible, but I see no reason that its not. I saw interesting discussion saying x264 should be capable of doing so. I even read : "Videoconferencing? Pah! I’m playing Call of Duty 4 over a live video stream!" (source : http://x264dev.multimedia.cx/archives/249 )

Thank you in advance.
 
OBS is not designed for interactive streaming. It's best to figure a different method of doing this such as a long HDMI cable.
 
Did you ever figure this out? I have a VPS and was hoping to do sub-second RTMP streaming to friends when we get together and play games on the weekend, as they've moved all over the country and so far streaming has been a fun way to hang out while we play video games together. The latency is killer though. I have it down to about 4 seconds at this point by using RTMP against nginx and lowering VLC's buffer settings, but I'd like to go further.
 
Back
Top