Nginx-rtmp-module: OBS + nginx-rtmp-module/mpeg-dash + dash.js = not stable stream

Created on 26 Feb 2018  路  5Comments  路  Source: arut/nginx-rtmp-module

Hi there.

I am looking for some basic working pipeline for live streaming.

My choice is OBS +nginx-rtmp-module + mpeg-dash

I want to use OBS to upstream to my server

My OBS settings are just basic:
Stream >>
URL: rtmp://my_server_ip/live
Stream key: test

nginx-rtmp-module compiled successfully:
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
nginx version: nginx/1.12.2
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC)
built with OpenSSL 1.0.2k 26 Jan 2017
TLS SNI support enabled
configure arguments: --with-http_ssl_module --add-module=../nginx-rtmp-module --with-openssl=/tmp/openssl-1.0.2k

Nginx dash config is basic too:
rtmp {
server {
listen 1935;
chunk_size 4000;
application live {
live on;
dash on;
dash_path /home/www/video/live/dash;
}
}
}
location /dash {
open_file_cache off;
add_header 'Cache-Control' 'no-cache';
add_header 'Access-Control-Allow-Origin' '*' always;
add_header 'Access-Control-Expose-Headers' 'Content-Length';
root /home/www/video/live;
}

And i use standart player from https://github.com/Dash-Industry-Forum/dash.js
(https://cdn.dashjs.org/latest/dash.all.min.js)

When i start a stream with OBS starts OK (connect to my server? green icon 0% )

Dash fragments and manifest start to appear in /home/www/video/live/dash directory

When open the page where the player is i get such results

No playback in FF browser -just preloader (n console infinite loop
[11963] ScheduleController - audio - getNextFragment
Debug.js:127:12
[11964] isMediaFinished - no segment found
Debug.js:127:12
[11964] getNextFragment - audio - Playing at the bleeding live edge and frag is not available yet
Debug.js:127:12
[12085] ThroughputRule requesting switch to index: 0 type: video Average throughput 6832 kbps
Debug.js:127:12
[12086] AbrController (video) stay on 0/0 (buffer: 0)

In Chrome:

Sometimes it starts playing almost instantly

Sometimes it starts after a minute

In any case after a couple of minutes it stucks:
And i see in console:
Debug.js:127 [15240] getNextFragment - audio - Playing at the bleeding live edge and frag is not available yet
Debug.js:127 [15343] ThroughputRule requesting switch to index: 0 type: video Average throughput 4988 kbps
Debug.js:127 [15344] AbrController (video) stay on 0/0 (buffer: 0)
Debug.js:127 [15345] ScheduleController - video - getNextFragment
Debug.js:127 [15346] isMediaFinished - no segment found
Debug.js:127 [15346] getNextFragment - video - Playing at the bleeding live edge and frag is not available yet
Debug.js:127 [15743] ThroughputRule requesting switch to index: 0 type: audio Average throughput 319 kbps
Debug.js:127 [15744] AbrController (audio) stay on 0/0 (buffer: 0)
Debug.js:127 [15745] ScheduleController - audio - getNextFragment
Debug.js:127 [15746] isMediaFinished - no segment found
Debug.js:127 [15747] getNextFragment - audio - Playing at the bleeding live edge and frag is not available yet
Debug.js:127 [15848] ThroughputRule requesting switch to index: 0 type: video Average throughput 4988 kbps
Debug.js:127 [15849] AbrController (video) stay on 0/0 (buffer: 0)
Debug.js:127 [15849] ScheduleController - video - getNextFragment
Debug.js:127 [15850] isMediaFinished - no segment found
Debug.js:127 [15850] getNextFragment - video - Playing at the bleeding live edge and frag is not available yet
Debug.js:127 [16249] ThroughputRule requesting switch to index: 0 type: audio Average throughput 319 kbps
Debug.js:127 [16250] AbrController (audio) stay on 0/0 (buffer: 0)
Debug.js:127 [16251] ScheduleController - audio - getNextFragment
Debug.js:127 [16252] isMediaFinished - no segment found
Debug.js:127 [16254] getNextFragment - audio - Playing at the bleeding live edge and frag is not available yet
Debug.js:127 [16352] ThroughputRule requesting switch to index: 0 type: video Average throughput 4988 kbps
Debug.js:127 [16353] AbrController (video) stay on 0/0 (buffer: 0)
Debug.js:127 [16353] ScheduleController - video - getNextFragment
Debug.js:127 [16354] isMediaFinished - no segment found
Debug.js:127 [16355] getNextFragment - video - Playing at the bleeding live edge and frag is not available yet

All 5 comments

With OBS try to set up keyframe interval = 2, for me it works like a charm.

I have the same issue but with other players as well. Does anyone know if there's any fork that has actually working DASH? I've tried sergey-dryabzhinsky and ut0mt8 to no avail. I've been using HLS for now.

I have an Solution with ffmpeg. Take a look at:

1216

@philippdonabauer What is your solution? This issue is #1216 .

Sorry no wrong linked. Search in the history.. Im sorry for that.

Ah ok its #1223

Was this page helpful?
0 / 5 - 0 ratings

Related issues

marcoeg picture marcoeg  路  3Comments

SmokE-PGF picture SmokE-PGF  路  6Comments

fishfree picture fishfree  路  4Comments

qhchen2 picture qhchen2  路  4Comments

evgenibers picture evgenibers  路  4Comments