summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Pointner <equinox@spreadspace.org>2012-10-17 02:50:06 +0200
committerChristian Pointner <equinox@spreadspace.org>2012-10-17 02:50:06 +0200
commit6fbfc0f0cdd9c4a8c10da11979258aa8cbf6b888 (patch)
tree43c12335c2c44c99ac6d2239cff9c0fbe28f9471
parentstreamer for multi input works now.. (diff)
multi input source works now with all sample configurations
-rw-r--r--src/audio.json19
-rwxr-xr-xsrc/flufigut.py10
-rw-r--r--src/test.json41
3 files changed, 43 insertions, 27 deletions
diff --git a/src/audio.json b/src/audio.json
index 133e776..d8bc0d9 100644
--- a/src/audio.json
+++ b/src/audio.json
@@ -20,14 +20,14 @@
"low": { "audio": 96 }
},
"machines": {
- "calypso": [ "input", "encoder-vorbis-160", "encoder-vorbis-128", "encoder-vorbis-96",
- "muxer-ogg-high", "muxer-ogg-medium", "muxer-ogg-low", "streamer-local1" ]
+ "calypso": [ "input-alsa", "encoder-alsa-vorbis-160", "encoder-alsa-vorbis-128", "encoder-alsa-vorbis-96",
+ "muxer-audio-ogg-high", "muxer-audio-ogg-medium", "muxer-audio-ogg-low", "streamer-local1" ]
}
},
"input": {
"alsa": {
- "type": "ao",
- "source": "soundcard",
+ "type": "soundcard",
+ "master": true,
"properties": {
"samplerate": 48000,
"depth": 16,
@@ -35,12 +35,17 @@
}
}
},
- "transcode": {
- "ogg": [ "high", "medium", "low" ]
+ "mux": {
+ "audio": {
+ "audio": "alsa",
+ "formats": {
+ "ogg": [ "high", "medium", "low" ]
+ }
+ }
},
"stream": {
"streamer-local": {
- "formats": [ "ogg" ],
+ "muxes": [ "audio" ],
"type": "http", "count": 1, "port": 8000,
"max-con": 5, "burst-on-connect": 5,
"hostname": "audio"
diff --git a/src/flufigut.py b/src/flufigut.py
index cfffeaa..88e49c4 100755
--- a/src/flufigut.py
+++ b/src/flufigut.py
@@ -124,7 +124,7 @@ for mux_name in mux.keys():
flow['input']['resample-%s-%s' % (source, samplerate)] = {
'type': 'audio-resample',
'desc': "resample audio from %s to %s Hz" % (source, samplerate),
- 'worker': 'resample',
+ 'worker': worker_name,
'feeder': feeder,
'properties': {
'samplerate': samplerate,
@@ -151,7 +151,7 @@ for mux_name in mux.keys():
flow['input']['resize-%s-%s' % (source, resolution)] = {
'type': 'video-resize',
'desc': "resize video from %s to %sx%s" % (source, globals['resolutions'][resolution]['width'], globals['resolutions'][resolution]['height']),
- 'worker': 'resize',
+ 'worker': worker_name,
'feeder': feeder,
'properties': {
'width': globals['resolutions'][resolution]['width'],
@@ -182,7 +182,7 @@ for mux_name in mux.keys():
if samplerate != input_samplerate:
feeder = 'resample-%s-%s' % (source, samplerate)
else:
- feeder = mux[mux_name]['audio']
+ feeder = 'input-%s' % (mux[mux_name]['audio'])
audio_encoder = 'encode-%s-%s-%i-%i' % (source, encoder, bitrate, samplerate)
if audio_encoder not in flow['encoder_audio']:
worker_name = 'encoder-%s-%s-%s' % (source, encoder, bitrate)
@@ -210,7 +210,7 @@ for mux_name in mux.keys():
if resolution != input_resolution:
feeder = 'resize-%s-%s' % (source, resolution)
else:
- feeder = mux[mux_name]['video']
+ feeder = 'input-%s' % (mux[mux_name]['video'])
video_encoder = 'encode-%s-%s-%s' % (source, encoder, resolution)
if video_encoder not in flow['encoder_video'].keys():
worker_name = 'encoder-%s-%s-%s' % (source, encoder, resolution)
@@ -301,7 +301,7 @@ for cluster in stream.keys():
hostname = "%s.%s" % (stream[cluster]['hostname'], globals['domain'])
flow['streamer'][name] = {
'type': "%s-stream" % stream[cluster]['type'],
- 'desc': "%s streamer for %s-%s (part %i of %s cluster)" % (stream[cluster]['type'], format, profile, idx+1, cluster),
+ 'desc': "%s streamer for %s %s-%s (part %i of %s cluster)" % (stream[cluster]['type'], mux_name, format, profile, idx+1, cluster),
'worker': stream_worker,
'feeder': feeder,
'rrd_clients' : "%s/%s_clients.rrd" % (globals['rrd-dir'], name),
diff --git a/src/test.json b/src/test.json
index 58e3aac..22f98d4 100644
--- a/src/test.json
+++ b/src/test.json
@@ -31,21 +31,21 @@
"vp8": { "720p25": 2048, "480p25": 1024, "360p25": 600 }
},
"machines": {
- "titan": [ "input", "resample", "resize", "encoder-vorbis-160", "encoder-vorbis-128",
- "encoder-vorbis-96", "encoder-aac-160", "encoder-aac-128", "encoder-aac-96",
- "muxer-flash-high", "muxer-flash-medium", "muxer-flash-low", "muxer-webm-high",
- "muxer-webm-medium", "muxer-webm-low", "muxer-ogg-high", "streamer-local1" ],
- "calypso": [ "encoder-h264-720p25", "encoder-h264-480p25", "encoder-h264-360p25" ],
- "telesto": [ "encoder-vp8-720p25", "encoder-vp8-480p25", "encoder-vp8-360p25" ],
+ "titan": [ "input-sdi", "resample-sdi", "resize-sdi", "encoder-sdi-vorbis-160", "encoder-sdi-vorbis-128",
+ "encoder-sdi-vorbis-96", "encoder-sdi-aac-160", "encoder-sdi-aac-128", "encoder-sdi-aac-96",
+ "muxer-av-flash-high", "muxer-av-flash-medium", "muxer-av-flash-low", "muxer-av-webm-high",
+ "muxer-av-webm-medium", "muxer-av-webm-low", "muxer-audio-ogg-high", "streamer-local1" ],
+ "calypso": [ "encoder-sdi-h264-720p25", "encoder-sdi-h264-480p25", "encoder-sdi-h264-360p25" ],
+ "telesto": [ "encoder-sdi-vp8-720p25", "encoder-sdi-vp8-480p25", "encoder-sdi-vp8-360p25" ],
"elevate1": [ "streamer-pub1" ],
"elevate2": [ "streamer-pub2" ],
"elevate3": [ "streamer-pub3" ]
}
},
"input": {
- "sdi-av": {
- "type": "av",
- "source": "decklink",
+ "sdi": {
+ "type": "decklink",
+ "master": true,
"properties": {
"resolution": "720p25",
"samplerate": 48000,
@@ -56,20 +56,31 @@
}
}
},
- "transcode": {
- "flash": [ "high", "medium", "low" ],
- "webm": [ "high", "medium", "low" ],
- "ogg": [ "high" ]
+ "mux": {
+ "av": {
+ "video": "sdi:video",
+ "audio": "sdi:audio",
+ "formats": {
+ "flash": [ "high", "medium", "low" ],
+ "webm": [ "high", "medium", "low" ]
+ }
+ },
+ "audio": {
+ "audio": "sdi:audio",
+ "formats": {
+ "ogg": [ "high" ]
+ }
+ }
},
"stream": {
"streamer-local": {
- "formats": [ "flash", "webm", "ogg" ],
+ "muxes": [ "av", "audio" ],
"type": "http", "count": 1, "port": 8000,
"max-con": 5, "burst-on-connect": 5,
"hostname": "elevate-feed"
},
"streamer-pub": {
- "formats": [ "flash", "webm" ],
+ "muxes": [ "av" ],
"type": "http", "count": 3, "port": 8000,
"max-bw": 290000, "burst-on-connect": 5,
"hostname": "elevate-live%i"