Discussion:
[Savonet-users] Browser-based streaming now supported in liquidsoap!
Romain Beauxis
2013-07-27 19:06:59 UTC
Permalink
Hi all,

I am very excited to announce that we have just merged the websockets
pull request into liquidsoap's master branch on github:
https://github.com/savonet/liquidsoap

This code is the result of the work that Sam and I did in the past
month and consists of a protocol and API to stream audio and video
data from the browser to liquidsoap and potentially other streaming
servers.

The protocol itself is documented and implemented there:
https://github.com/savonet/webcast

Please note that at the moment, the examples only work with a recent
Chrome and may be choppy. The protocol and examples will be fully
functional first in Firefox Nightly when they finish implementing the
Web Audio API and in Chrome once they support asm.js optimizations.

Meanwhile, feel free to experience with it. The examples in the
websocket directory are not pretty but they should give you a good
idea about what's required to implement a browser streaming client.

Please, let us know any feedback and question that you may have
concerning this project. We are very excited because we believe that
it fills a gap that we've been waiting to address for a long time and
that should provide really convenient streaming solutions in the
future.

Take care y'all!
Romain
Nicholas Vrtis
2013-07-28 22:54:05 UTC
Permalink
Romain... you are excited? This is awesome news I can't wait to get
things set up to try it out..

Thank you.. Thank you..

Nick
Post by Romain Beauxis
Hi all,
I am very excited to announce that we have just merged the websockets
https://github.com/savonet/liquidsoap
This code is the result of the work that Sam and I did in the past
month and consists of a protocol and API to stream audio and video
data from the browser to liquidsoap and potentially other streaming
servers.
https://github.com/savonet/webcast
Please note that at the moment, the examples only work with a recent
Chrome and may be choppy. The protocol and examples will be fully
functional first in Firefox Nightly when they finish implementing the
Web Audio API and in Chrome once they support asm.js optimizations.
Meanwhile, feel free to experience with it. The examples in the
websocket directory are not pretty but they should give you a good
idea about what's required to implement a browser streaming client.
Please, let us know any feedback and question that you may have
concerning this project. We are very excited because we believe that
it fills a gap that we've been waiting to address for a long time and
that should provide really convenient streaming solutions in the
future.
Take care y'all!
Romain
------------------------------------------------------------------------------
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
_______________________________________________
Savonet-users mailing list
https://lists.sourceforge.net/lists/listinfo/savonet-users
Romain Beauxis
2013-07-29 05:40:24 UTC
Permalink
Thanks Nicholas! While testing, remember that this is still experimental.

On Chrome, the lame encoder works mostly but can be choppy. The shine
encoder doesn't work at all. I'm really hoping that things will be
much better once firefox has support for the full Web Audio API.

Meanwhile, the raw encoder works well, though it is not really
suitable for production :-)

Romain
Romain... you are excited? This is awesome news I can't wait to get things
set up to try it out..
Thank you.. Thank you..
Nick
Post by Romain Beauxis
Hi all,
I am very excited to announce that we have just merged the websockets
https://github.com/savonet/liquidsoap
This code is the result of the work that Sam and I did in the past
month and consists of a protocol and API to stream audio and video
data from the browser to liquidsoap and potentially other streaming
servers.
https://github.com/savonet/webcast
Please note that at the moment, the examples only work with a recent
Chrome and may be choppy. The protocol and examples will be fully
functional first in Firefox Nightly when they finish implementing the
Web Audio API and in Chrome once they support asm.js optimizations.
Meanwhile, feel free to experience with it. The examples in the
websocket directory are not pretty but they should give you a good
idea about what's required to implement a browser streaming client.
Please, let us know any feedback and question that you may have
concerning this project. We are very excited because we believe that
it fills a gap that we've been waiting to address for a long time and
that should provide really convenient streaming solutions in the
future.
Take care y'all!
Romain
------------------------------------------------------------------------------
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
_______________________________________________
Savonet-users mailing list
https://lists.sourceforge.net/lists/listinfo/savonet-users
------------------------------------------------------------------------------
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
_______________________________________________
Savonet-users mailing list
https://lists.sourceforge.net/lists/listinfo/savonet-users
Leonard de Ruijter
2013-07-29 10:51:32 UTC
Permalink
Hello,

This is great news. Looking forward to a Win32 build supporting this.

Regards,
Leonard
Post by Romain Beauxis
Hi all,
I am very excited to announce that we have just merged the websockets
https://github.com/savonet/liquidsoap
This code is the result of the work that Sam and I did in the past
month and consists of a protocol and API to stream audio and video
data from the browser to liquidsoap and potentially other streaming
servers.
https://github.com/savonet/webcast
Please note that at the moment, the examples only work with a recent
Chrome and may be choppy. The protocol and examples will be fully
functional first in Firefox Nightly when they finish implementing the
Web Audio API and in Chrome once they support asm.js optimizations.
Meanwhile, feel free to experience with it. The examples in the
websocket directory are not pretty but they should give you a good
idea about what's required to implement a browser streaming client.
Please, let us know any feedback and question that you may have
concerning this project. We are very excited because we believe that
it fills a gap that we've been waiting to address for a long time and
that should provide really convenient streaming solutions in the
future.
Take care y'all!
Romain
------------------------------------------------------------------------------
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
_______________________________________________
Savonet-users mailing list
https://lists.sourceforge.net/lists/listinfo/savonet-users
Tony Miller
2013-07-31 05:27:42 UTC
Permalink
I had it sort of working in the branch before, but now I seem to be
getting this "Feeding stopped: Generator.Incorrect_stream_type."
error:

2013/07/30 22:18:56 [harbor:4] New client on port 8080: 192.168.0.200
2013/07/30 22:18:56 [harbor:4] Header: Upgrade, value: websocket.
2013/07/30 22:18:56 [harbor:4] Header: Connection, value: Upgrade.
2013/07/30 22:18:56 [harbor:4] Header: Host, value: 192.168.0.106:8080.
2013/07/30 22:18:56 [harbor:4] Header: Origin, value: http://192.168.0.106:5678.
2013/07/30 22:18:56 [harbor:4] Header: Sec-WebSocket-Protocol, value: webcast.
2013/07/30 22:18:56 [harbor:4] Header: Pragma, value: no-cache.
2013/07/30 22:18:56 [harbor:4] Header: Cache-Control, value: no-cache.
2013/07/30 22:18:56 [harbor:4] Header: Sec-WebSocket-Key, value:
cfCUH4RpmGn6eISv26CuDg==.
2013/07/30 22:18:56 [harbor:4] Header: Sec-WebSocket-Version, value: 13.
2013/07/30 22:18:56 [harbor:4] Header: Sec-WebSocket-Extensions,
value: x-webkit-deflate-frame.
2013/07/30 22:18:56 [harbor:4] Header: User-Agent, value: Mozilla/5.0
(Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) C
hrome/30.0.1581.2 Safari/537.36.
2013/07/30 22:18:56 [harbor:5] Hello packet:
{"type":"hello","data":{"mime":"audio/mpeg","audio":{"channels":1,"samplerate":48000,"bit
rate":64,"encoder":"libmp3lame"}}}

2013/07/30 22:18:56 [harbor:4] Mime type: audio/mpeg
2013/07/30 22:18:56 [harbor:4] Mount point: /mount
2013/07/30 22:18:56 [decoder:4] Trying method "WAV" for "audio/mpeg"...
2013/07/30 22:18:56 [decoder:4] Trying method "PCM/BASIC" for "audio/mpeg"...
2013/07/30 22:18:56 [decoder:4] Trying method "RAW AUDIO" for "audio/mpeg"...
2013/07/30 22:18:56 [decoder:4] Trying method "MAD" for "audio/mpeg"...
2013/07/30 22:18:56 [decoder:3] Method "MAD" accepted "audio/mpeg".
2013/07/30 22:18:56 [threads:3] Created thread "harbor source feeding"
(2 total).
2013/07/30 22:18:56 [harbor_4923:3] Decoding...
2013/07/30 22:18:34 [harbor_4923:3] No network activity for 1.00 second(s).
2013/07/30 22:18:59 [fallback_4927:3] Switch to harbor_4923 with transition.
2013/07/30 22:18:59 [single_4925:4] Activations changed: static=[],
dynamic=[fallback_4927:icecast:icecast].
2013/07/30 22:18:59 [harbor_4923:4] Activations changed:
static=[fallback_4927:icecast:icecast],
dynamic=[fallback_4927:icecast:icecast].
2013/07/30 22:18:34 [harbor_4923:3] Incorrect stream type!
2013/07/30 22:18:59 [harbor_4923:4] End of track.
2013/07/30 22:18:59 [harbor_4923:4] Buffer emptied, buffering needed.
2013/07/30 22:18:59 [fallback_4927:3] Switch to single_4925 with
forgetful transition.
2013/07/30 22:18:59 [harbor_4923:4] Activations changed: static=[],
dynamic=[fallback_4927:icecast:icecast].
2013/07/30 22:18:59 [source:4] Source replay_metadata_4945 gets up.
2013/07/30 22:18:59 [replay_metadata_4945:4] Content kind is
{audio=2;video=0;midi=0}.
2013/07/30 22:18:59 [single_4925:4] Activations changed:
static=[replay_metadata_4945:fallback_4927:icecast:icecast],
dynamic=[fallback_4927:icecast:icecast].
2013/07/30 22:18:59 [replay_metadata_4945:4] Activations changed:
static=[fallback_4927:icecast:icecast], dynamic=[].
2013/07/30 22:18:59 [harbor_4923:2] Feeding stopped:
Generator.Incorrect_stream_type.
2013/07/30 22:18:59 [threads:3] Thread "harbor source feeding"
terminated (1 remaining).

I'm using the client example in the webcast repo, my liquidsoap script
is pretty simple:
#!/usr/local/bin/liquidsoap
#
set("log.file.path","/tmp/liquidsoap.log")
set("log.stdout",true)
set("log.level",5)

set("server.telnet",false)

set("harbor.bind_addr","0.0.0.0")

live_dj = input.harbor("/mount",port=8080)

on_fail = single("/home/tony/RadioScotvoid06242013.mp3")
source = fallback(track_sensitive=false,
[live_dj,on_fail])

output.icecast(%mp3,id="icecast",
mount="datafruits.mp3",
host="localhost",
icy_metadata="true",description="datafruits.fm",
url="http://datafruits.fm",
source)

If you have any ideas, let me know. Thanks!

On Mon, Jul 29, 2013 at 3:51 AM, Leonard de Ruijter
Post by Leonard de Ruijter
Hello,
This is great news. Looking forward to a Win32 build supporting this.
Regards,
Leonard
Post by Romain Beauxis
Hi all,
I am very excited to announce that we have just merged the websockets
https://github.com/savonet/liquidsoap
This code is the result of the work that Sam and I did in the past
month and consists of a protocol and API to stream audio and video
data from the browser to liquidsoap and potentially other streaming
servers.
https://github.com/savonet/webcast
Please note that at the moment, the examples only work with a recent
Chrome and may be choppy. The protocol and examples will be fully
functional first in Firefox Nightly when they finish implementing the
Web Audio API and in Chrome once they support asm.js optimizations.
Meanwhile, feel free to experience with it. The examples in the
websocket directory are not pretty but they should give you a good
idea about what's required to implement a browser streaming client.
Please, let us know any feedback and question that you may have
concerning this project. We are very excited because we believe that
it fills a gap that we've been waiting to address for a long time and
that should provide really convenient streaming solutions in the
future.
Take care y'all!
Romain
------------------------------------------------------------------------------
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
_______________________________________________
Savonet-users mailing list
https://lists.sourceforge.net/lists/listinfo/savonet-users
------------------------------------------------------------------------------
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
_______________________________________________
Savonet-users mailing list
https://lists.sourceforge.net/lists/listinfo/savonet-users
--
-Tony Miller
github.com/mcfiredrill
@freedrull
freedrool.us
Romain Beauxis
2013-07-31 14:53:35 UTC
Permalink
Hi,
Post by Tony Miller
I had it sort of working in the branch before, but now I seem to be
getting this "Feeding stopped: Generator.Incorrect_stream_type."
2013/07/30 22:18:56 [harbor:4] New client on port 8080: 192.168.0.200
2013/07/30 22:18:56 [harbor:4] Header: Upgrade, value: websocket.
2013/07/30 22:18:56 [harbor:4] Header: Connection, value: Upgrade.
2013/07/30 22:18:56 [harbor:4] Header: Host, value: 192.168.0.106:8080.
2013/07/30 22:18:56 [harbor:4] Header: Origin, value: http://192.168.0.106:5678.
2013/07/30 22:18:56 [harbor:4] Header: Sec-WebSocket-Protocol, value: webcast.
2013/07/30 22:18:56 [harbor:4] Header: Pragma, value: no-cache.
2013/07/30 22:18:56 [harbor:4] Header: Cache-Control, value: no-cache.
cfCUH4RpmGn6eISv26CuDg==.
2013/07/30 22:18:56 [harbor:4] Header: Sec-WebSocket-Version, value: 13.
2013/07/30 22:18:56 [harbor:4] Header: Sec-WebSocket-Extensions,
value: x-webkit-deflate-frame.
2013/07/30 22:18:56 [harbor:4] Header: User-Agent, value: Mozilla/5.0
(Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) C
hrome/30.0.1581.2 Safari/537.36.
{"type":"hello","data":{"mime":"audio/mpeg","audio":{"channels":1,"samplerate":48000,"bit
rate":64,"encoder":"libmp3lame"}}}
2013/07/30 22:18:56 [harbor:4] Mime type: audio/mpeg
2013/07/30 22:18:56 [harbor:4] Mount point: /mount
2013/07/30 22:18:56 [decoder:4] Trying method "WAV" for "audio/mpeg"...
2013/07/30 22:18:56 [decoder:4] Trying method "PCM/BASIC" for "audio/mpeg"...
2013/07/30 22:18:56 [decoder:4] Trying method "RAW AUDIO" for "audio/mpeg"...
2013/07/30 22:18:56 [decoder:4] Trying method "MAD" for "audio/mpeg"...
2013/07/30 22:18:56 [decoder:3] Method "MAD" accepted "audio/mpeg".
2013/07/30 22:18:56 [threads:3] Created thread "harbor source feeding"
(2 total).
2013/07/30 22:18:56 [harbor_4923:3] Decoding...
2013/07/30 22:18:34 [harbor_4923:3] No network activity for 1.00 second(s).
2013/07/30 22:18:59 [fallback_4927:3] Switch to harbor_4923 with transition.
2013/07/30 22:18:59 [single_4925:4] Activations changed: static=[],
dynamic=[fallback_4927:icecast:icecast].
static=[fallback_4927:icecast:icecast],
dynamic=[fallback_4927:icecast:icecast].
2013/07/30 22:18:34 [harbor_4923:3] Incorrect stream type!
2013/07/30 22:18:59 [harbor_4923:4] End of track.
2013/07/30 22:18:59 [harbor_4923:4] Buffer emptied, buffering needed.
2013/07/30 22:18:59 [fallback_4927:3] Switch to single_4925 with
forgetful transition.
2013/07/30 22:18:59 [harbor_4923:4] Activations changed: static=[],
dynamic=[fallback_4927:icecast:icecast].
2013/07/30 22:18:59 [source:4] Source replay_metadata_4945 gets up.
2013/07/30 22:18:59 [replay_metadata_4945:4] Content kind is
{audio=2;video=0;midi=0}.
static=[replay_metadata_4945:fallback_4927:icecast:icecast],
dynamic=[fallback_4927:icecast:icecast].
static=[fallback_4927:icecast:icecast], dynamic=[].
Generator.Incorrect_stream_type.
2013/07/30 22:18:59 [threads:3] Thread "harbor source feeding"
terminated (1 remaining).
I'm using the client example in the webcast repo, my liquidsoap script
#!/usr/local/bin/liquidsoap
#
set("log.file.path","/tmp/liquidsoap.log")
set("log.stdout",true)
set("log.level",5)
set("server.telnet",false)
set("harbor.bind_addr","0.0.0.0")
live_dj = input.harbor("/mount",port=8080)
on_fail = single("/home/tony/RadioScotvoid06242013.mp3")
source = fallback(track_sensitive=false,
[live_dj,on_fail])
output.icecast(%mp3,id="icecast",
mount="datafruits.mp3",
host="localhost",
icy_metadata="true",description="datafruits.fm",
url="http://datafruits.fm",
source)
If you have any ideas, let me know. Thanks!
This is because the incoming stream is mono. You should use
audio_to_stereo() to convert input.harbor's source to stereo.

Btw, I am still working on the demo client. I'm starting to wonder that
there could be a bug in the Lame and Shine encoders, so I'd recommend
sticking to raw encoding for your tests..

Romain
Tony Miller
2013-07-31 16:36:53 UTC
Permalink
Post by Romain Beauxis
This is because the incoming stream is mono. You should use
audio_to_stereo() to convert input.harbor's source to stereo.
Ah ok. You can't send stereo from the client? Or its just too CPU intensive?
Romain Beauxis
2013-07-31 16:39:54 UTC
Permalink
Post by Tony Miller
Post by Romain Beauxis
This is because the incoming stream is mono. You should use
audio_to_stereo() to convert input.harbor's source to stereo.
Ah ok. You can't send stereo from the client? Or its just too CPU intensive?
You sure can but yeah, settings are forced to mono, 64kbps for now.

Romain
Tony Miller
2013-08-01 01:41:38 UTC
Permalink
Have you considered making the client with some sort of Google NaCL
contraption? Lame has been ported to NaCL. However, I'm not sure if
the communication between NaCL and javascript is sufficient enough to
handle passing the binary data from the HTML5 audio APIs to NaCL.
https://developers.google.com/native-client/devguide/coding/message-system

NaCL itself does not support accessing the user's microphone, as far
as I can tell.
Romain Beauxis
2013-08-01 13:18:15 UTC
Permalink
Post by Tony Miller
Have you considered making the client with some sort of Google NaCL
contraption? Lame has been ported to NaCL. However, I'm not sure if
the communication between NaCL and javascript is sufficient enough to
handle passing the binary data from the HTML5 audio APIs to NaCL.
https://developers.google.com/native-client/devguide/coding/message-system
NaCL itself does not support accessing the user's microphone, as far
as I can tell.
NaCL is quite interesting but it is going to take a long time before
it is widely adopted. Javascript, on the other hand, is supported by
all major browsers and does not require installing any plugin or
external software, which is the real issue here.

I have fixed the shine encoder in the examples, it was a stupid boog.
It plays well now! I think the lame encoder is also broken, will see
what I can do, either remove or fix it.

All in all, the client example is getting quite serious now :-)

Romain
Nicholas Vrtis
2013-08-01 13:30:36 UTC
Permalink
Until Romain came out with his code, I was considering using appjs
https://github.com/appjs/appjs on the SERVER side. Appjs is a combination
of the Chrome browser code and Node. So I THINK it will let you do WEBRTC
between the client and the 'server'. Let WEBRTC handle the
transport/compression etc. The just pipe the raw audio from appsj to
liquidsoap. You wouldn't need to worry about compression between the two
since it would be local bits.

This might even work with the client that Romain came up with..

Just my two cents...

Nick
Post by Tony Miller
Have you considered making the client with some sort of Google NaCL
contraption? Lame has been ported to NaCL. However, I'm not sure if
the communication between NaCL and javascript is sufficient enough to
handle passing the binary data from the HTML5 audio APIs to NaCL.
https://developers.google.com/native-client/devguide/coding/message-system
NaCL itself does not support accessing the user's microphone, as far
as I can tell.
------------------------------------------------------------------------------
Get your SQL database under version control now!
Version control is standard for application code, but databases havent
caught up. So what steps can you take to put your SQL databases under
version control? Why should you start doing it? Read more to find out.
http://pubads.g.doubleclick.net/gampad/clk?id=49501711&iu=/4140/ostg.clktrk
_______________________________________________
Savonet-users mailing list
https://lists.sourceforge.net/lists/listinfo/savonet-users
Romain Beauxis
2013-08-01 13:34:57 UTC
Permalink
Hi Nicholas!
Post by Nicholas Vrtis
Until Romain came out with his code, I was considering using appjs
https://github.com/appjs/appjs on the SERVER side. Appjs is a combination
of the Chrome browser code and Node. So I THINK it will let you do WEBRTC
between the client and the 'server'. Let WEBRTC handle the
transport/compression etc. The just pipe the raw audio from appsj to
liquidsoap. You wouldn't need to worry about compression between the two
since it would be local bits.
I have also developed with node-webkit in the past, which is about the
same as AppJS:
https://github.com/rogerwang/node-webkit

However, don't these technologies need a screen to launch the browser?

Romain
Nicholas Vrtis
2013-08-01 13:54:41 UTC
Permalink
Hi Romain,

I've seen node_webkit. Don't remember why I picked one over the other..
probably "a" comes before "n". :) I haven't actually tried kicking off
appjs from a console. 'In Theory', I don't even need a <body> tag to
display anything.. Just load and run some Javascript to set up the
connection. In my case, I wouldn't mind having a screen on the server to
kick it off and then I could disconnect. Might even give me the
opportunity to do some lightweight liquidsoap monitor/control interface
without apache/php.

NIck
Post by Romain Beauxis
Hi Nicholas!
Post by Nicholas Vrtis
Until Romain came out with his code, I was considering using appjs
https://github.com/appjs/appjs on the SERVER side. Appjs is a
combination
Post by Nicholas Vrtis
of the Chrome browser code and Node. So I THINK it will let you do
WEBRTC
Post by Nicholas Vrtis
between the client and the 'server'. Let WEBRTC handle the
transport/compression etc. The just pipe the raw audio from appsj to
liquidsoap. You wouldn't need to worry about compression between the two
since it would be local bits.
I have also developed with node-webkit in the past, which is about the
https://github.com/rogerwang/node-webkit
However, don't these technologies need a screen to launch the browser?
Romain
------------------------------------------------------------------------------
Get your SQL database under version control now!
Version control is standard for application code, but databases havent
caught up. So what steps can you take to put your SQL databases under
version control? Why should you start doing it? Read more to find out.
http://pubads.g.doubleclick.net/gampad/clk?id=49501711&iu=/4140/ostg.clktrk
_______________________________________________
Savonet-users mailing list
https://lists.sourceforge.net/lists/listinfo/savonet-users
daslicht
2013-08-01 14:05:30 UTC
Permalink
Where do I find more info about browser based streaming ?
Is it already on the homepage ?
~Marc
Post by Nicholas Vrtis
Hi Romain,
I've seen node_webkit. Don't remember why I picked one over the other.. probably "a" comes before "n". :) I haven't actually tried kicking off appjs from a console. 'In Theory', I don't even need a <body> tag to display anything.. Just load and run some Javascript to set up the connection. In my case, I wouldn't mind having a screen on the server to kick it off and then I could disconnect. Might even give me the opportunity to do some lightweight liquidsoap monitor/control interface without apache/php.
NIck
Hi Nicholas!
Post by Nicholas Vrtis
Until Romain came out with his code, I was considering using appjs
https://github.com/appjs/appjs on the SERVER side. Appjs is a combination
of the Chrome browser code and Node. So I THINK it will let you do WEBRTC
between the client and the 'server'. Let WEBRTC handle the
transport/compression etc. The just pipe the raw audio from appsj to
liquidsoap. You wouldn't need to worry about compression between the two
since it would be local bits.
I have also developed with node-webkit in the past, which is about the
https://github.com/rogerwang/node-webkit
However, don't these technologies need a screen to launch the browser?
Romain
------------------------------------------------------------------------------
Get your SQL database under version control now!
Version control is standard for application code, but databases havent
caught up. So what steps can you take to put your SQL databases under
version control? Why should you start doing it? Read more to find out.
http://pubads.g.doubleclick.net/gampad/clk?id=49501711&iu=/4140/ostg.clktrk
_______________________________________________
Savonet-users mailing list
https://lists.sourceforge.net/lists/listinfo/savonet-users
------------------------------------------------------------------------------
Get your SQL database under version control now!
Version control is standard for application code, but databases havent
caught up. So what steps can you take to put your SQL databases under
version control? Why should you start doing it? Read more to find out.
http://pubads.g.doubleclick.net/gampad/clk?id=49501711&iu=/4140/ostg.clktrk_______________________________________________
Savonet-users mailing list
https://lists.sourceforge.net/lists/listinfo/savonet-users
Romain Beauxis
2013-08-01 14:31:45 UTC
Permalink
For now, the information is there:
https://github.com/savonet/webcast

I plan on making a more in-depth writing when the developing effort
has reached a good point for it..

Romain
Post by daslicht
Where do I find more info about browser based streaming ?
Is it already on the homepage ?
~Marc
Hi Romain,
I've seen node_webkit. Don't remember why I picked one over the other..
probably "a" comes before "n". :) I haven't actually tried kicking off
appjs from a console. 'In Theory', I don't even need a <body> tag to
display anything.. Just load and run some Javascript to set up the
connection. In my case, I wouldn't mind having a screen on the server to
kick it off and then I could disconnect. Might even give me the opportunity
to do some lightweight liquidsoap monitor/control interface without
apache/php.
NIck
Post by Romain Beauxis
Hi Nicholas!
Post by Nicholas Vrtis
Until Romain came out with his code, I was considering using appjs
https://github.com/appjs/appjs on the SERVER side. Appjs is a combination
of the Chrome browser code and Node. So I THINK it will let you do WEBRTC
between the client and the 'server'. Let WEBRTC handle the
transport/compression etc. The just pipe the raw audio from appsj to
liquidsoap. You wouldn't need to worry about compression between the two
since it would be local bits.
I have also developed with node-webkit in the past, which is about the
https://github.com/rogerwang/node-webkit
However, don't these technologies need a screen to launch the browser?
Romain
------------------------------------------------------------------------------
Get your SQL database under version control now!
Version control is standard for application code, but databases havent
caught up. So what steps can you take to put your SQL databases under
version control? Why should you start doing it? Read more to find out.
http://pubads.g.doubleclick.net/gampad/clk?id=49501711&iu=/4140/ostg.clktrk
_______________________________________________
Savonet-users mailing list
https://lists.sourceforge.net/lists/listinfo/savonet-users
------------------------------------------------------------------------------
Get your SQL database under version control now!
Version control is standard for application code, but databases havent
caught up. So what steps can you take to put your SQL databases under
version control? Why should you start doing it? Read more to find out.
http://pubads.g.doubleclick.net/gampad/clk?id=49501711&iu=/4140/ostg.clktrk_______________________________________________
Savonet-users mailing list
https://lists.sourceforge.net/lists/listinfo/savonet-users
------------------------------------------------------------------------------
Get your SQL database under version control now!
Version control is standard for application code, but databases havent
caught up. So what steps can you take to put your SQL databases under
version control? Why should you start doing it? Read more to find out.
http://pubads.g.doubleclick.net/gampad/clk?id=49501711&iu=/4140/ostg.clktrk
_______________________________________________
Savonet-users mailing list
https://lists.sourceforge.net/lists/listinfo/savonet-users
daslicht
2013-08-01 14:39:37 UTC
Permalink
Post by Romain Beauxis
https://github.com/savonet/webcast
I plan on making a more in-depth writing when the developing effort
has reached a good point for it..
Bookmarked , I will have a look on it later, currently I have to do some node stuff :)
~Marc
Post by Romain Beauxis
Romain
Post by daslicht
Where do I find more info about browser based streaming ?
Is it already on the homepage ?
~Marc
Hi Romain,
I've seen node_webkit. Don't remember why I picked one over the other..
probably "a" comes before "n". :) I haven't actually tried kicking off
appjs from a console. 'In Theory', I don't even need a <body> tag to
display anything.. Just load and run some Javascript to set up the
connection. In my case, I wouldn't mind having a screen on the server to
kick it off and then I could disconnect. Might even give me the opportunity
to do some lightweight liquidsoap monitor/control interface without
apache/php.
NIck
Post by Romain Beauxis
Hi Nicholas!
Post by Nicholas Vrtis
Until Romain came out with his code, I was considering using appjs
https://github.com/appjs/appjs on the SERVER side. Appjs is a combination
of the Chrome browser code and Node. So I THINK it will let you do WEBRTC
between the client and the 'server'. Let WEBRTC handle the
transport/compression etc. The just pipe the raw audio from appsj to
liquidsoap. You wouldn't need to worry about compression between the two
since it would be local bits.
I have also developed with node-webkit in the past, which is about the
https://github.com/rogerwang/node-webkit
However, don't these technologies need a screen to launch the browser?
Romain
------------------------------------------------------------------------------
Get your SQL database under version control now!
Version control is standard for application code, but databases havent
caught up. So what steps can you take to put your SQL databases under
version control? Why should you start doing it? Read more to find out.
http://pubads.g.doubleclick.net/gampad/clk?id=49501711&iu=/4140/ostg.clktrk
_______________________________________________
Savonet-users mailing list
https://lists.sourceforge.net/lists/listinfo/savonet-users
------------------------------------------------------------------------------
Get your SQL database under version control now!
Version control is standard for application code, but databases havent
caught up. So what steps can you take to put your SQL databases under
version control? Why should you start doing it? Read more to find out.
http://pubads.g.doubleclick.net/gampad/clk?id=49501711&iu=/4140/ostg.clktrk_______________________________________________
Savonet-users mailing list
https://lists.sourceforge.net/lists/listinfo/savonet-users
------------------------------------------------------------------------------
Get your SQL database under version control now!
Version control is standard for application code, but databases havent
caught up. So what steps can you take to put your SQL databases under
version control? Why should you start doing it? Read more to find out.
http://pubads.g.doubleclick.net/gampad/clk?id=49501711&iu=/4140/ostg.clktrk
_______________________________________________
Savonet-users mailing list
https://lists.sourceforge.net/lists/listinfo/savonet-users
------------------------------------------------------------------------------
Get your SQL database under version control now!
Version control is standard for application code, but databases havent
caught up. So what steps can you take to put your SQL databases under
version control? Why should you start doing it? Read more to find out.
http://pubads.g.doubleclick.net/gampad/clk?id=49501711&iu=/4140/ostg.clktrk
_______________________________________________
Savonet-users mailing list
https://lists.sourceforge.net/lists/listinfo/savonet-users
Loading...