Discussion:
[Savonet-users] Streaming to RTMP
Akos Veres
2017-03-19 12:06:06 UTC
Permalink
Hi everyone,

I'm trying to stream to youtube live an icecast source paired with an image.

I've followed these resources:
- http://savonet.sourceforge.net/doc-svn/video-static.html
- http://liquidsoap.fm/doc-svn/video.html
- https://www.sk89q.com/2014/05/broadcasting-a-video-
playlist-to-nginx-rtmp-module/

The current script:

#!/usr/bin/liquidsoap
# XTRadio Video
# Standard settings
set("log.stdout",true)
set("log.file",false)
set("log.level",4)
set("server.telnet",false)
set("frame.video.width",640)
set("frame.video.height",480)
set("frame.video.samplerate",12)
# Stream Settings
backup = input.http(id="xtradio","http://xtradio.org:8080/mp3")
img = single("/xt-hd.png")
img = mksafe(img)
radio = backup
video = img
radio = buffer(buffer=0.03,mksafe(radio))
source = mux_video(video=video,radio)
source = mksafe(source)
output.gstreamer.audio_video(id="output.youtube",
video_pipeline=
"videoconvert ! x264enc bitrate=4000 ! video/x-h264,profile=baseline !
queue ! mux.",
audio_pipeline=
"audioconvert ! voaacenc bitrate=128000 ! queue ! mux.",
pipeline=
"flvmux name=mux ! rtmpsink location=\"rtmp://a.rtmp.
youtube.com/live2/KEY\ <http://a.rtmp.youtube.com/live2/KEY%5C>"",
source)
Output

xtvideo | 2017/03/19 12:00:17 [replay_metadata_7237:4] Activations
changed: static=[mksafe:output(dot)youtube:output(dot)youtube], dynamic=[].
xtvideo | 2017/03/19 12:00:17 [warp_prod_7187:3] Buffer emptied, start
buffering...
xtvideo | 2017/03/19 12:00:17 [mksafe:3] Switch to safe_blank with
transition.
xtvideo | 2017/03/19 12:00:17 [replay_metadata_7237:4] Activations
changed: static=[], dynamic=[].
xtvideo | 2017/03/19 12:00:17 [source:4] Source replay_metadata_7237
gets down.
static=[], dynamic=[mksafe:output(dot)youtube:output(dot)youtube].
static=[mksafe:output(dot)youtube:output(dot)youtube],
dynamic=[mksafe:output(dot)youtube:output(dot)youtube].
xtvideo | 2017/03/19 12:00:17 [xtradio:3] New metadata chunk: ? --
Calvin Harris feat. Ellie Goulding - Outside (Funk LeBlanc Remix) (04:12)
http://soundcloud.com/funk-leblanc/calvin-harris-feat-ellie-goulding-outside-funk-leblanc-remix
.
xtvideo | 2017/03/19 12:00:17 [mksafe:3] Switch to xtradio with
transition.
static=[], dynamic=[mksafe:mksafe:buffer_7186:buffer_7186].
static=[mksafe:mksafe:buffer_7186:buffer_7186],
dynamic=[mksafe:mksafe:buffer_7186:buffer_7186].
xtvideo | 2017/03/19 12:00:17 [source:4] Garbage collected
replay_metadata_7237.
xtvideo | 2017/03/19 12:00:18 [xtradio:4] End of track.
It looks like nothing is connecting to youtube, on the dashboard I see no
connection what so ever.

Any RTFM or howto is welcome, I'm pretty sure I'm misunderstanding a
mechanism somewhere. I don't mind if the same can be achieved with ffmpeg.

Best regards,
*Ákos Veres*
Akos Veres
2017-03-20 16:13:35 UTC
Permalink
Hi everyone,

I'm trying to stream to youtube live an icecast source paired with an image.

I've followed these resources:
- http://savonet.sourceforge.net/doc-svn/video-static.html
- http://liquidsoap.fm/doc-svn/video.html
- https://www.sk89q.com/2014/05/broadcasting-a-video-playlis
t-to-nginx-rtmp-module/

The current script:

#!/usr/bin/liquidsoap
# XTRadio Video
# Standard settings
set("log.stdout",true)
set("log.file",false)
set("log.level",4)
set("server.telnet",false)
set("frame.video.width",640)
set("frame.video.height",480)
set("frame.video.samplerate",12)
# Stream Settings
backup = input.http(id="xtradio","http://xtradio.org:8080/mp3")
img = single("/xt-hd.png")
img = mksafe(img)
radio = backup
video = img
radio = buffer(buffer=0.03,mksafe(radio))
source = mux_video(video=video,radio)
source = mksafe(source)
output.gstreamer.audio_video(id="output.youtube",
video_pipeline=
"videoconvert ! x264enc bitrate=4000 ! video/x-h264,profile=baseline !
queue ! mux.",
audio_pipeline=
"audioconvert ! voaacenc bitrate=128000 ! queue ! mux.",
pipeline=
"flvmux name=mux ! rtmpsink location=\"rtmp://a.rtmp.youtu
be.com/live2/KEY\ <http://a.rtmp.youtube.com/live2/KEY%5C>"",
source)
Output

xtvideo | 2017/03/19 12:00:17 [replay_metadata_7237:4] Activations
changed: static=[mksafe:output(dot)youtube:output(dot)youtube],
dynamic=[].
xtvideo | 2017/03/19 12:00:17 [warp_prod_7187:3] Buffer emptied, start
buffering...
xtvideo | 2017/03/19 12:00:17 [mksafe:3] Switch to safe_blank with
transition.
xtvideo | 2017/03/19 12:00:17 [replay_metadata_7237:4] Activations
changed: static=[], dynamic=[].
xtvideo | 2017/03/19 12:00:17 [source:4] Source replay_metadata_7237
gets down.
static=[], dynamic=[mksafe:output(dot)youtube:output(dot)youtube].
static=[mksafe:output(dot)youtube:output(dot)youtube],
dynamic=[mksafe:output(dot)youtube:output(dot)youtube].
xtvideo | 2017/03/19 12:00:17 [xtradio:3] New metadata chunk: ? --
Calvin Harris feat. Ellie Goulding - Outside (Funk LeBlanc Remix) (04:12)
http://soundcloud.com/funk-leblanc/calvin-harris-feat-
ellie-goulding-outside-funk-leblanc-remix .
xtvideo | 2017/03/19 12:00:17 [mksafe:3] Switch to xtradio with
transition.
static=[], dynamic=[mksafe:mksafe:buffer_7186:buffer_7186].
static=[mksafe:mksafe:buffer_7186:buffer_7186],
dynamic=[mksafe:mksafe:buffer_7186:buffer_7186].
xtvideo | 2017/03/19 12:00:17 [source:4] Garbage collected
replay_metadata_7237.
xtvideo | 2017/03/19 12:00:18 [xtradio:4] End of track.
It looks like nothing is connecting to youtube, on the dashboard I see no
connection what so ever.

Any RTFM or howto is welcome, I'm pretty sure I'm misunderstanding a
mechanism somewhere. I don't mind if the same can be achieved with ffmpeg.

Best regards,
*Ákos Veres*
John Chewter
2017-03-20 18:09:20 UTC
Permalink
I have done it with FFMPEG
Post by Akos Veres
Hi everyone,
I'm trying to stream to youtube live an icecast source paired with an image.
- http://savonet.sourceforge.net/doc-svn/video-static.html
<http://savonet.sourceforge.net/doc-svn/video-static.html>
- http://liquidsoap.fm/doc-svn/video.html
<http://liquidsoap.fm/doc-svn/video.html>
-
https://www.sk89q.com/2014/05/broadcasting-a-video-playlist-to-nginx-rtmp-module/
<https://www.sk89q.com/2014/05/broadcasting-a-video-playlist-to-nginx-rtmp-module/>
#!/usr/bin/liquidsoap
# XTRadio Video
# Standard settings
set("log.stdout",true)
set("log.file",false)
set("log.level",4)
set("server.telnet",false)
set("frame.video.width",640)
set("frame.video.height",480)
set("frame.video.samplerate",12)
# Stream Settings
backup = input.http(id="xtradio","http://xtradio.org:8080/mp3
<http://xtradio.org:8080/mp3>")
img = single("/xt-hd.png")
img = mksafe(img)
radio = backup
video = img
radio = buffer(buffer=0.03,mksafe(radio))
source = mux_video(video=video,radio)
source = mksafe(source)
output.gstreamer.audio_video(id="output.youtube",
video_pipeline=
"videoconvert ! x264enc bitrate=4000 !
video/x-h264,profile=baseline ! queue ! mux.",
audio_pipeline=
"audioconvert ! voaacenc bitrate=128000 ! queue ! mux.",
pipeline=
"flvmux name=mux ! rtmpsink
location=\"rtmp://a.rtmp.youtube.com/live2/KEY\
<http://a.rtmp.youtube.com/live2/KEY%5C>"",
source)
Output
xtvideo | 2017/03/19 12:00:17 [replay_metadata_7237:4]
static=[mksafe:output(dot)youtube:output(dot)youtube], dynamic=[].
xtvideo | 2017/03/19 12:00:17 [warp_prod_7187:3] Buffer
emptied, start buffering...
xtvideo | 2017/03/19 12:00:17 [mksafe:3] Switch to safe_blank
with transition.
xtvideo | 2017/03/19 12:00:17 [replay_metadata_7237:4]
Activations changed: static=[], dynamic=[].
xtvideo | 2017/03/19 12:00:17 [source:4] Source
replay_metadata_7237 gets down.
static=[], dynamic=[mksafe:output(dot)youtube:output(dot)youtube].
xtvideo | 2017/03/19 12:00:17 [safe_blank:4] Activations
changed: static=[mksafe:output(dot)youtube:output(dot)youtube],
dynamic=[mksafe:output(dot)youtube:output(dot)youtube].
xtvideo | 2017/03/19 12:00:17 [xtradio:3] New metadata chunk: ?
-- Calvin Harris feat. Ellie Goulding - Outside (Funk LeBlanc
Remix) (04:12)
http://soundcloud.com/funk-leblanc/calvin-harris-feat-ellie-goulding-outside-funk-leblanc-remix
<http://soundcloud.com/funk-leblanc/calvin-harris-feat-ellie-goulding-outside-funk-leblanc-remix>
.
xtvideo | 2017/03/19 12:00:17 [mksafe:3] Switch to xtradio with
transition.
xtvideo | 2017/03/19 12:00:17 [safe_blank:4] Activations
changed: static=[], dynamic=[mksafe:mksafe:buffer_7186:buffer_7186].
static=[mksafe:mksafe:buffer_7186:buffer_7186],
dynamic=[mksafe:mksafe:buffer_7186:buffer_7186].
xtvideo | 2017/03/19 12:00:17 [source:4] Garbage collected
replay_metadata_7237.
xtvideo | 2017/03/19 12:00:18 [xtradio:4] End of track.
It looks like nothing is connecting to youtube, on the dashboard I see
no connection what so ever.
Any RTFM or howto is welcome, I'm pretty sure I'm misunderstanding a
mechanism somewhere. I don't mind if the same can be achieved with ffmpeg.
Best regards,
/Ákos Veres/
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Savonet-users mailing list
https://lists.sourceforge.net/lists/listinfo/savonet-users
John Chewter
2017-03-20 18:42:35 UTC
Permalink
By that I mean icecast -> FMPEG -> YouTube.

I saw no advantage to using LS
Post by John Chewter
I have done it with FFMPEG
Post by Akos Veres
Hi everyone,
I'm trying to stream to youtube live an icecast source paired with an image.
- http://savonet.sourceforge.net/doc-svn/video-static.html
<http://savonet.sourceforge.net/doc-svn/video-static.html>
- http://liquidsoap.fm/doc-svn/video.html
<http://liquidsoap.fm/doc-svn/video.html>
-
https://www.sk89q.com/2014/05/broadcasting-a-video-playlist-to-nginx-rtmp-module/
<https://www.sk89q.com/2014/05/broadcasting-a-video-playlist-to-nginx-rtmp-module/>
#!/usr/bin/liquidsoap
# XTRadio Video
# Standard settings
set("log.stdout",true)
set("log.file",false)
set("log.level",4)
set("server.telnet",false)
set("frame.video.width",640)
set("frame.video.height",480)
set("frame.video.samplerate",12)
# Stream Settings
backup = input.http(id="xtradio","http://xtradio.org:8080/mp3
<http://xtradio.org:8080/mp3>")
img = single("/xt-hd.png")
img = mksafe(img)
radio = backup
video = img
radio = buffer(buffer=0.03,mksafe(radio))
source = mux_video(video=video,radio)
source = mksafe(source)
output.gstreamer.audio_video(id="output.youtube",
video_pipeline=
"videoconvert ! x264enc bitrate=4000 !
video/x-h264,profile=baseline ! queue ! mux.",
audio_pipeline=
"audioconvert ! voaacenc bitrate=128000 ! queue ! mux.",
pipeline=
"flvmux name=mux ! rtmpsink
location=\"rtmp://a.rtmp.youtube.com/live2/KEY\
<http://a.rtmp.youtube.com/live2/KEY%5C>"",
source)
Output
xtvideo | 2017/03/19 12:00:17 [replay_metadata_7237:4]
static=[mksafe:output(dot)youtube:output(dot)youtube], dynamic=[].
xtvideo | 2017/03/19 12:00:17 [warp_prod_7187:3] Buffer
emptied, start buffering...
xtvideo | 2017/03/19 12:00:17 [mksafe:3] Switch to safe_blank
with transition.
xtvideo | 2017/03/19 12:00:17 [replay_metadata_7237:4]
Activations changed: static=[], dynamic=[].
xtvideo | 2017/03/19 12:00:17 [source:4] Source
replay_metadata_7237 gets down.
xtvideo | 2017/03/19 12:00:17 [mux_7189:4] Activations
changed: static=[],
dynamic=[mksafe:output(dot)youtube:output(dot)youtube].
xtvideo | 2017/03/19 12:00:17 [safe_blank:4] Activations
changed: static=[mksafe:output(dot)youtube:output(dot)youtube],
dynamic=[mksafe:output(dot)youtube:output(dot)youtube].
? -- Calvin Harris feat. Ellie Goulding - Outside (Funk LeBlanc
Remix) (04:12)
http://soundcloud.com/funk-leblanc/calvin-harris-feat-ellie-goulding-outside-funk-leblanc-remix
<http://soundcloud.com/funk-leblanc/calvin-harris-feat-ellie-goulding-outside-funk-leblanc-remix>
.
xtvideo | 2017/03/19 12:00:17 [mksafe:3] Switch to xtradio
with transition.
xtvideo | 2017/03/19 12:00:17 [safe_blank:4] Activations
changed: static=[], dynamic=[mksafe:mksafe:buffer_7186:buffer_7186].
static=[mksafe:mksafe:buffer_7186:buffer_7186],
dynamic=[mksafe:mksafe:buffer_7186:buffer_7186].
xtvideo | 2017/03/19 12:00:17 [source:4] Garbage collected
replay_metadata_7237.
xtvideo | 2017/03/19 12:00:18 [xtradio:4] End of track.
It looks like nothing is connecting to youtube, on the dashboard I
see no connection what so ever.
Any RTFM or howto is welcome, I'm pretty sure I'm misunderstanding a
mechanism somewhere. I don't mind if the same can be achieved with ffmpeg.
Best regards,
/Ákos Veres/
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org!http://sdm.link/slashdot
_______________________________________________
Savonet-users mailing list
https://lists.sourceforge.net/lists/listinfo/savonet-users
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Savonet-users mailing list
https://lists.sourceforge.net/lists/listinfo/savonet-users
Akos Veres
2017-03-21 09:15:35 UTC
Permalink
I'm using FMPEG as well, that works without any issues, I just want to have
a dynamic text added to image so it shows the currently playing track
together with album art, LS could generate all of that and then continually
push the stream to youtube.

Best regards,
*Ákos Veres*
Post by John Chewter
By that I mean icecast -> FMPEG -> YouTube.
I saw no advantage to using LS
I have done it with FFMPEG
Hi everyone,
I'm trying to stream to youtube live an icecast source paired with an image.
- http://savonet.sourceforge.net/doc-svn/video-static.html
- http://liquidsoap.fm/doc-svn/video.html
- https://www.sk89q.com/2014/05/broadcasting-a-video-playlis
t-to-nginx-rtmp-module/
#!/usr/bin/liquidsoap
# XTRadio Video
# Standard settings
set("log.stdout",true)
set("log.file",false)
set("log.level",4)
set("server.telnet",false)
set("frame.video.width",640)
set("frame.video.height",480)
set("frame.video.samplerate",12)
# Stream Settings
backup = input.http(id="xtradio","http://xtradio.org:8080/mp3")
img = single("/xt-hd.png")
img = mksafe(img)
radio = backup
video = img
radio = buffer(buffer=0.03,mksafe(radio))
source = mux_video(video=video,radio)
source = mksafe(source)
output.gstreamer.audio_video(id="output.youtube",
video_pipeline=
"videoconvert ! x264enc bitrate=4000 ! video/x-h264,profile=baseline
! queue ! mux.",
audio_pipeline=
"audioconvert ! voaacenc bitrate=128000 ! queue ! mux.",
pipeline=
"flvmux name=mux ! rtmpsink location=\"rtmp://a.rtmp.youtu
be.com/live2/KEY\ <http://a.rtmp.youtube.com/live2/KEY%5C>"",
source)
Output
xtvideo | 2017/03/19 12:00:17 [replay_metadata_7237:4] Activations
changed: static=[mksafe:output(dot)youtube:output(dot)youtube],
dynamic=[].
xtvideo | 2017/03/19 12:00:17 [warp_prod_7187:3] Buffer emptied, start
buffering...
xtvideo | 2017/03/19 12:00:17 [mksafe:3] Switch to safe_blank with
transition.
xtvideo | 2017/03/19 12:00:17 [replay_metadata_7237:4] Activations
changed: static=[], dynamic=[].
xtvideo | 2017/03/19 12:00:17 [source:4] Source replay_metadata_7237
gets down.
static=[], dynamic=[mksafe:output(dot)youtube:output(dot)youtube].
static=[mksafe:output(dot)youtube:output(dot)youtube],
dynamic=[mksafe:output(dot)youtube:output(dot)youtube].
xtvideo | 2017/03/19 12:00:17 [xtradio:3] New metadata chunk: ? --
Calvin Harris feat. Ellie Goulding - Outside (Funk LeBlanc Remix) (04:12)
http://soundcloud.com/funk-leblanc/calvin-harris-feat-ellie-
goulding-outside-funk-leblanc-remix .
xtvideo | 2017/03/19 12:00:17 [mksafe:3] Switch to xtradio with
transition.
static=[], dynamic=[mksafe:mksafe:buffer_7186:buffer_7186].
static=[mksafe:mksafe:buffer_7186:buffer_7186],
dynamic=[mksafe:mksafe:buffer_7186:buffer_7186].
xtvideo | 2017/03/19 12:00:17 [source:4] Garbage collected
replay_metadata_7237.
xtvideo | 2017/03/19 12:00:18 [xtradio:4] End of track.
It looks like nothing is connecting to youtube, on the dashboard I see no
connection what so ever.
Any RTFM or howto is welcome, I'm pretty sure I'm misunderstanding a
mechanism somewhere. I don't mind if the same can be achieved with ffmpeg.
Best regards,
*Ákos Veres*
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
------------------------------------------------------------
------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Savonet-users mailing list
https://lists.sourceforge.net/lists/listinfo/savonet-users
John Chewter
2017-03-21 09:57:46 UTC
Permalink
I get that text info from the icecast metadata. I guess the album art
may be an issue, but I attach an image changing with the show.
Post by Akos Veres
I'm using FMPEG as well, that works without any issues, I just want to
have a dynamic text added to image so it shows the currently playing
track together with album art, LS could generate all of that and then
continually push the stream to youtube.
Best regards,
/Ákos Veres/
On Mon, Mar 20, 2017 at 6:42 PM, John Chewter
By that I mean icecast -> FMPEG -> YouTube.
I saw no advantage to using LS
Post by John Chewter
I have done it with FFMPEG
Post by Akos Veres
Hi everyone,
I'm trying to stream to youtube live an icecast source paired with an image.
- http://savonet.sourceforge.net/doc-svn/video-static.html
<http://savonet.sourceforge.net/doc-svn/video-static.html>
- http://liquidsoap.fm/doc-svn/video.html
<http://liquidsoap.fm/doc-svn/video.html>
-
https://www.sk89q.com/2014/05/broadcasting-a-video-playlist-to-nginx-rtmp-module/
<https://www.sk89q.com/2014/05/broadcasting-a-video-playlist-to-nginx-rtmp-module/>
#!/usr/bin/liquidsoap
# XTRadio Video
# Standard settings
set("log.stdout",true)
set("log.file",false)
set("log.level",4)
set("server.telnet",false)
set("frame.video.width",640)
set("frame.video.height",480)
set("frame.video.samplerate",12)
# Stream Settings
backup =
input.http(id="xtradio","http://xtradio.org:8080/mp3
<http://xtradio.org:8080/mp3>")
img = single("/xt-hd.png")
img = mksafe(img)
radio = backup
video = img
radio = buffer(buffer=0.03,mksafe(radio))
source = mux_video(video=video,radio)
source = mksafe(source)
output.gstreamer.audio_video(id="output.youtube",
video_pipeline=
"videoconvert ! x264enc bitrate=4000 !
video/x-h264,profile=baseline ! queue ! mux.",
audio_pipeline=
"audioconvert ! voaacenc bitrate=128000 ! queue ! mux.",
pipeline=
"flvmux name=mux ! rtmpsink
location=\"rtmp://a.rtmp.youtube.com/live2/KEY\
<http://a.rtmp.youtube.com/live2/KEY%5C>"",
source)
Output
xtvideo | 2017/03/19 12:00:17 [replay_metadata_7237:4]
static=[mksafe:output(dot)youtube:output(dot)youtube], dynamic=[].
xtvideo | 2017/03/19 12:00:17 [warp_prod_7187:3] Buffer
emptied, start buffering...
xtvideo | 2017/03/19 12:00:17 [mksafe:3] Switch to
safe_blank with transition.
xtvideo | 2017/03/19 12:00:17 [replay_metadata_7237:4]
Activations changed: static=[], dynamic=[].
xtvideo | 2017/03/19 12:00:17 [source:4] Source
replay_metadata_7237 gets down.
xtvideo | 2017/03/19 12:00:17 [mux_7189:4] Activations
changed: static=[],
dynamic=[mksafe:output(dot)youtube:output(dot)youtube].
static=[mksafe:output(dot)youtube:output(dot)youtube],
dynamic=[mksafe:output(dot)youtube:output(dot)youtube].
xtvideo | 2017/03/19 12:00:17 [xtradio:3] New metadata
chunk: ? -- Calvin Harris feat. Ellie Goulding - Outside
(Funk LeBlanc Remix) (04:12)
http://soundcloud.com/funk-leblanc/calvin-harris-feat-ellie-goulding-outside-funk-leblanc-remix
<http://soundcloud.com/funk-leblanc/calvin-harris-feat-ellie-goulding-outside-funk-leblanc-remix>
.
xtvideo | 2017/03/19 12:00:17 [mksafe:3] Switch to
xtradio with transition.
xtvideo | 2017/03/19 12:00:17 [safe_blank:4] Activations
changed: static=[],
dynamic=[mksafe:mksafe:buffer_7186:buffer_7186].
xtvideo | 2017/03/19 12:00:17 [xtradio:4] Activations
changed: static=[mksafe:mksafe:buffer_7186:buffer_7186],
dynamic=[mksafe:mksafe:buffer_7186:buffer_7186].
xtvideo | 2017/03/19 12:00:17 [source:4] Garbage
collected replay_metadata_7237.
xtvideo | 2017/03/19 12:00:18 [xtradio:4] End of track.
It looks like nothing is connecting to youtube, on the dashboard
I see no connection what so ever.
Any RTFM or howto is welcome, I'm pretty sure I'm
misunderstanding a mechanism somewhere. I don't mind if the same
can be achieved with ffmpeg.
Best regards,
/Ákos Veres/
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org!http://sdm.link/slashdot
_______________________________________________
Savonet-users mailing list
https://lists.sourceforge.net/lists/listinfo/savonet-users
<https://lists.sourceforge.net/lists/listinfo/savonet-users>
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org!http://sdm.link/slashdot
_______________________________________________
Savonet-users mailing list
https://lists.sourceforge.net/lists/listinfo/savonet-users
<https://lists.sourceforge.net/lists/listinfo/savonet-users>
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________ Savonet-users
https://lists.sourceforge.net/lists/listinfo/savonet-users
<https://lists.sourceforge.net/lists/listinfo/savonet-users>
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Savonet-users mailing list
https://lists.sourceforge.net/lists/listinfo/savonet-users
Akos Veres
2017-03-21 10:56:26 UTC
Permalink
And you are running constant stream to youtube with a changing image? Can
you show me a code example please? If that is possible with fmpeg, then I
can just create an image and attach that as the song changes.

Best regards,
*Ákos Veres*
I get that text info from the icecast metadata. I guess the album art may
be an issue, but I attach an image changing with the show.
I'm using FMPEG as well, that works without any issues, I just want to
have a dynamic text added to image so it shows the currently playing track
together with album art, LS could generate all of that and then continually
push the stream to youtube.
Best regards,
*Ákos Veres*
Post by John Chewter
By that I mean icecast -> FMPEG -> YouTube.
I saw no advantage to using LS
I have done it with FFMPEG
Hi everyone,
I'm trying to stream to youtube live an icecast source paired with an image.
- http://savonet.sourceforge.net/doc-svn/video-static.html
- http://liquidsoap.fm/doc-svn/video.html
- https://www.sk89q.com/2014/05/broadcasting-a-video-playlis
t-to-nginx-rtmp-module/
#!/usr/bin/liquidsoap
# XTRadio Video
# Standard settings
set("log.stdout",true)
set("log.file",false)
set("log.level",4)
set("server.telnet",false)
set("frame.video.width",640)
set("frame.video.height",480)
set("frame.video.samplerate",12)
# Stream Settings
backup = input.http(id="xtradio","http://xtradio.org:8080/mp3")
img = single("/xt-hd.png")
img = mksafe(img)
radio = backup
video = img
radio = buffer(buffer=0.03,mksafe(radio))
source = mux_video(video=video,radio)
source = mksafe(source)
output.gstreamer.audio_video(id="output.youtube",
video_pipeline=
"videoconvert ! x264enc bitrate=4000 ! video/x-h264,profile=baseline
! queue ! mux.",
audio_pipeline=
"audioconvert ! voaacenc bitrate=128000 ! queue ! mux.",
pipeline=
"flvmux name=mux ! rtmpsink location=\"rtmp://a.rtmp.youtu
be.com/live2/KEY\ <http://a.rtmp.youtube.com/live2/KEY%5C>"",
source)
Output
xtvideo | 2017/03/19 12:00:17 [replay_metadata_7237:4] Activations
changed: static=[mksafe:output(dot)youtube:output(dot)youtube],
dynamic=[].
xtvideo | 2017/03/19 12:00:17 [warp_prod_7187:3] Buffer emptied,
start buffering...
xtvideo | 2017/03/19 12:00:17 [mksafe:3] Switch to safe_blank with
transition.
xtvideo | 2017/03/19 12:00:17 [replay_metadata_7237:4] Activations
changed: static=[], dynamic=[].
xtvideo | 2017/03/19 12:00:17 [source:4] Source replay_metadata_7237
gets down.
static=[], dynamic=[mksafe:output(dot)youtube:output(dot)youtube].
static=[mksafe:output(dot)youtube:output(dot)youtube],
dynamic=[mksafe:output(dot)youtube:output(dot)youtube].
xtvideo | 2017/03/19 12:00:17 [xtradio:3] New metadata chunk: ? --
Calvin Harris feat. Ellie Goulding - Outside (Funk LeBlanc Remix) (04:12)
http://soundcloud.com/funk-leblanc/calvin-harris-feat-ellie-
goulding-outside-funk-leblanc-remix .
xtvideo | 2017/03/19 12:00:17 [mksafe:3] Switch to xtradio with
transition.
static=[], dynamic=[mksafe:mksafe:buffer_7186:buffer_7186].
static=[mksafe:mksafe:buffer_7186:buffer_7186],
dynamic=[mksafe:mksafe:buffer_7186:buffer_7186].
xtvideo | 2017/03/19 12:00:17 [source:4] Garbage collected
replay_metadata_7237.
xtvideo | 2017/03/19 12:00:18 [xtradio:4] End of track.
It looks like nothing is connecting to youtube, on the dashboard I see no
connection what so ever.
Any RTFM or howto is welcome, I'm pretty sure I'm misunderstanding a
mechanism somewhere. I don't mind if the same can be achieved with ffmpeg.
Best regards,
*Ákos Veres*
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most engaging
tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________ Savonet-users mailing
lists/listinfo/savonet-users
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
------------------------------------------------------------
------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Savonet-users mailing list
https://lists.sourceforge.net/lists/listinfo/savonet-users
John Chewter
2017-03-21 12:37:52 UTC
Permalink
I am not changing the image during a show. I reset it at the beginning
of a new show
Post by Akos Veres
And you are running constant stream to youtube with a changing image?
Can you show me a code example please? If that is possible with fmpeg,
then I can just create an image and attach that as the song changes.
Best regards,
/Ákos Veres/
On Tue, Mar 21, 2017 at 9:57 AM, John Chewter
I get that text info from the icecast metadata. I guess the album
art may be an issue, but I attach an image changing with the show.
Post by Akos Veres
I'm using FMPEG as well, that works without any issues, I just
want to have a dynamic text added to image so it shows the
currently playing track together with album art, LS could
generate all of that and then continually push the stream to youtube.
Best regards,
/Ákos Veres/
On Mon, Mar 20, 2017 at 6:42 PM, John Chewter
By that I mean icecast -> FMPEG -> YouTube.
I saw no advantage to using LS
Post by John Chewter
I have done it with FFMPEG
Post by Akos Veres
Hi everyone,
I'm trying to stream to youtube live an icecast source
paired with an image.
- http://savonet.sourceforge.net/doc-svn/video-static.html
<http://savonet.sourceforge.net/doc-svn/video-static.html>
- http://liquidsoap.fm/doc-svn/video.html
<http://liquidsoap.fm/doc-svn/video.html>
-
https://www.sk89q.com/2014/05/broadcasting-a-video-playlist-to-nginx-rtmp-module/
<https://www.sk89q.com/2014/05/broadcasting-a-video-playlist-to-nginx-rtmp-module/>
#!/usr/bin/liquidsoap
# XTRadio Video
# Standard settings
set("log.stdout",true)
set("log.file",false)
set("log.level",4)
set("server.telnet",false)
set("frame.video.width",640)
set("frame.video.height",480)
set("frame.video.samplerate",12)
# Stream Settings
backup =
input.http(id="xtradio","http://xtradio.org:8080/mp3
<http://xtradio.org:8080/mp3>")
img = single("/xt-hd.png")
img = mksafe(img)
radio = backup
video = img
radio = buffer(buffer=0.03,mksafe(radio))
source = mux_video(video=video,radio)
source = mksafe(source)
output.gstreamer.audio_video(id="output.youtube",
video_pipeline=
"videoconvert ! x264enc bitrate=4000 !
video/x-h264,profile=baseline ! queue ! mux.",
audio_pipeline=
"audioconvert ! voaacenc bitrate=128000 ! queue ! mux.",
pipeline=
"flvmux name=mux ! rtmpsink
location=\"rtmp://a.rtmp.youtube.com/live2/KEY\
<http://a.rtmp.youtube.com/live2/KEY%5C>"",
source)
Output
xtvideo | 2017/03/19 12:00:17
static=[mksafe:output(dot)youtube:output(dot)youtube],
dynamic=[].
xtvideo | 2017/03/19 12:00:17 [warp_prod_7187:3]
Buffer emptied, start buffering...
xtvideo | 2017/03/19 12:00:17 [mksafe:3] Switch to
safe_blank with transition.
xtvideo | 2017/03/19 12:00:17
static=[], dynamic=[].
xtvideo | 2017/03/19 12:00:17 [source:4] Source
replay_metadata_7237 gets down.
xtvideo | 2017/03/19 12:00:17 [mux_7189:4]
Activations changed: static=[],
dynamic=[mksafe:output(dot)youtube:output(dot)youtube].
xtvideo | 2017/03/19 12:00:17 [safe_blank:4]
static=[mksafe:output(dot)youtube:output(dot)youtube],
dynamic=[mksafe:output(dot)youtube:output(dot)youtube].
xtvideo | 2017/03/19 12:00:17 [xtradio:3] New
metadata chunk: ? -- Calvin Harris feat. Ellie Goulding
- Outside (Funk LeBlanc Remix) (04:12)
http://soundcloud.com/funk-leblanc/calvin-harris-feat-ellie-goulding-outside-funk-leblanc-remix
<http://soundcloud.com/funk-leblanc/calvin-harris-feat-ellie-goulding-outside-funk-leblanc-remix>
.
xtvideo | 2017/03/19 12:00:17 [mksafe:3] Switch to
xtradio with transition.
xtvideo | 2017/03/19 12:00:17 [safe_blank:4]
Activations changed: static=[],
dynamic=[mksafe:mksafe:buffer_7186:buffer_7186].
xtvideo | 2017/03/19 12:00:17 [xtradio:4]
static=[mksafe:mksafe:buffer_7186:buffer_7186],
dynamic=[mksafe:mksafe:buffer_7186:buffer_7186].
xtvideo | 2017/03/19 12:00:17 [source:4] Garbage
collected replay_metadata_7237.
xtvideo | 2017/03/19 12:00:18 [xtradio:4] End of track.
It looks like nothing is connecting to youtube, on the
dashboard I see no connection what so ever.
Any RTFM or howto is welcome, I'm pretty sure I'm
misunderstanding a mechanism somewhere. I don't mind if the
same can be achieved with ffmpeg.
Best regards,
/Ákos Veres/
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org!http://sdm.link/slashdot
_______________________________________________
Savonet-users mailing list
https://lists.sourceforge.net/lists/listinfo/savonet-users
<https://lists.sourceforge.net/lists/listinfo/savonet-users>
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org!http://sdm.link/slashdot
_______________________________________________
Savonet-users mailing list
https://lists.sourceforge.net/lists/listinfo/savonet-users
<https://lists.sourceforge.net/lists/listinfo/savonet-users>
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's
most engaging tech sites, Slashdot.org!
http://sdm.link/slashdot
_______________________________________________ Savonet-users
https://lists.sourceforge.net/lists/listinfo/savonet-users
<https://lists.sourceforge.net/lists/listinfo/savonet-users>
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org!http://sdm.link/slashdot
_______________________________________________
Savonet-users mailing list
https://lists.sourceforge.net/lists/listinfo/savonet-users
<https://lists.sourceforge.net/lists/listinfo/savonet-users>
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________ Savonet-users
https://lists.sourceforge.net/lists/listinfo/savonet-users
<https://lists.sourceforge.net/lists/listinfo/savonet-users>
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Savonet-users mailing list
https://lists.sourceforge.net/lists/listinfo/savonet-users
Akos Veres
2017-03-22 09:27:03 UTC
Permalink
Ah, so it's not a continuous stream to youtube, it stops at the beginning
of a new show. I need continuous stream, that's why I thought that
output.gstreamer.audio_video is the solution.

Best regards,
*Ákos Veres*
I am not changing the image during a show. I reset it at the beginning of
a new show
And you are running constant stream to youtube with a changing image? Can
you show me a code example please? If that is possible with fmpeg, then I
can just create an image and attach that as the song changes.
Best regards,
*Ákos Veres*
I get that text info from the icecast metadata. I guess the album art may
be an issue, but I attach an image changing with the show.
I'm using FMPEG as well, that works without any issues, I just want to
have a dynamic text added to image so it shows the currently playing track
together with album art, LS could generate all of that and then continually
push the stream to youtube.
Best regards,
*Ákos Veres*
Post by John Chewter
By that I mean icecast -> FMPEG -> YouTube.
I saw no advantage to using LS
I have done it with FFMPEG
Hi everyone,
I'm trying to stream to youtube live an icecast source paired with an image.
- http://savonet.sourceforge.net/doc-svn/video-static.html
- http://liquidsoap.fm/doc-svn/video.html
- https://www.sk89q.com/2014/05/broadcasting-a-video-playlis
t-to-nginx-rtmp-module/
#!/usr/bin/liquidsoap
# XTRadio Video
# Standard settings
set("log.stdout",true)
set("log.file",false)
set("log.level",4)
set("server.telnet",false)
set("frame.video.width",640)
set("frame.video.height",480)
set("frame.video.samplerate",12)
# Stream Settings
backup = input.http(id="xtradio","http://xtradio.org:8080/mp3")
img = single("/xt-hd.png")
img = mksafe(img)
radio = backup
video = img
radio = buffer(buffer=0.03,mksafe(radio))
source = mux_video(video=video,radio)
source = mksafe(source)
output.gstreamer.audio_video(id="output.youtube",
video_pipeline=
"videoconvert ! x264enc bitrate=4000 !
video/x-h264,profile=baseline ! queue ! mux.",
audio_pipeline=
"audioconvert ! voaacenc bitrate=128000 ! queue ! mux.",
pipeline=
"flvmux name=mux ! rtmpsink location=\"rtmp://a.rtmp.youtu
be.com/live2/KEY\ <http://a.rtmp.youtube.com/live2/KEY%5C>"",
source)
Output
xtvideo | 2017/03/19 12:00:17 [replay_metadata_7237:4] Activations
changed: static=[mksafe:output(dot)youtube:output(dot)youtube],
dynamic=[].
xtvideo | 2017/03/19 12:00:17 [warp_prod_7187:3] Buffer emptied,
start buffering...
xtvideo | 2017/03/19 12:00:17 [mksafe:3] Switch to safe_blank with
transition.
xtvideo | 2017/03/19 12:00:17 [replay_metadata_7237:4] Activations
changed: static=[], dynamic=[].
xtvideo | 2017/03/19 12:00:17 [source:4] Source replay_metadata_7237
gets down.
static=[], dynamic=[mksafe:output(dot)youtube:output(dot)youtube].
static=[mksafe:output(dot)youtube:output(dot)youtube],
dynamic=[mksafe:output(dot)youtube:output(dot)youtube].
xtvideo | 2017/03/19 12:00:17 [xtradio:3] New metadata chunk: ? --
Calvin Harris feat. Ellie Goulding - Outside (Funk LeBlanc Remix) (04:12)
http://soundcloud.com/funk-leblanc/calvin-harris-feat-ellie-
goulding-outside-funk-leblanc-remix .
xtvideo | 2017/03/19 12:00:17 [mksafe:3] Switch to xtradio with
transition.
static=[], dynamic=[mksafe:mksafe:buffer_7186:buffer_7186].
static=[mksafe:mksafe:buffer_7186:buffer_7186],
dynamic=[mksafe:mksafe:buffer_7186:buffer_7186].
xtvideo | 2017/03/19 12:00:17 [source:4] Garbage collected
replay_metadata_7237.
xtvideo | 2017/03/19 12:00:18 [xtradio:4] End of track.
It looks like nothing is connecting to youtube, on the dashboard I see
no connection what so ever.
Any RTFM or howto is welcome, I'm pretty sure I'm misunderstanding a
mechanism somewhere. I don't mind if the same can be achieved with ffmpeg.
Best regards,
*Ákos Veres*
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most engaging
tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________ Savonet-users mailing
lists/listinfo/savonet-users
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most engaging
tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________ Savonet-users mailing
lists/listinfo/savonet-users
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
------------------------------------------------------------
------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Savonet-users mailing list
https://lists.sourceforge.net/lists/listinfo/savonet-users
John Chewter
2017-03-22 09:35:35 UTC
Permalink
It is not noticable on youtube. It doesn't seem to miss a beat.
Buffering I guess.
Post by Akos Veres
Ah, so it's not a continuous stream to youtube, it stops at the
beginning of a new show. I need continuous stream, that's why I
thought that output.gstreamer.audio_video is the solution.
Best regards,
/Ákos Veres/
On Tue, Mar 21, 2017 at 12:37 PM, John Chewter
I am not changing the image during a show. I reset it at the
beginning of a new show
Post by Akos Veres
And you are running constant stream to youtube with a changing
image? Can you show me a code example please? If that is possible
with fmpeg, then I can just create an image and attach that as
the song changes.
Best regards,
/Ákos Veres/
On Tue, Mar 21, 2017 at 9:57 AM, John Chewter
I get that text info from the icecast metadata. I guess the
album art may be an issue, but I attach an image changing
with the show.
Post by Akos Veres
I'm using FMPEG as well, that works without any issues, I
just want to have a dynamic text added to image so it shows
the currently playing track together with album art, LS
could generate all of that and then continually push the
stream to youtube.
Best regards,
/Ákos Veres/
On Mon, Mar 20, 2017 at 6:42 PM, John Chewter
By that I mean icecast -> FMPEG -> YouTube.
I saw no advantage to using LS
Post by John Chewter
I have done it with FFMPEG
Post by Akos Veres
Hi everyone,
I'm trying to stream to youtube live an icecast source
paired with an image.
-
http://savonet.sourceforge.net/doc-svn/video-static.html
<http://savonet.sourceforge.net/doc-svn/video-static.html>
- http://liquidsoap.fm/doc-svn/video.html
<http://liquidsoap.fm/doc-svn/video.html>
-
https://www.sk89q.com/2014/05/broadcasting-a-video-playlist-to-nginx-rtmp-module/
<https://www.sk89q.com/2014/05/broadcasting-a-video-playlist-to-nginx-rtmp-module/>
#!/usr/bin/liquidsoap
# XTRadio Video
# Standard settings
set("log.stdout",true)
set("log.file",false)
set("log.level",4)
set("server.telnet",false)
set("frame.video.width",640)
set("frame.video.height",480)
set("frame.video.samplerate",12)
# Stream Settings
backup =
input.http(id="xtradio","http://xtradio.org:8080/mp3
<http://xtradio.org:8080/mp3>")
img = single("/xt-hd.png")
img = mksafe(img)
radio = backup
video = img
radio = buffer(buffer=0.03,mksafe(radio))
source = mux_video(video=video,radio)
source = mksafe(source)
output.gstreamer.audio_video(id="output.youtube",
video_pipeline=
"videoconvert ! x264enc bitrate=4000 !
video/x-h264,profile=baseline ! queue ! mux.",
audio_pipeline=
"audioconvert ! voaacenc bitrate=128000 ! queue !
mux.",
pipeline=
"flvmux name=mux ! rtmpsink
location=\"rtmp://a.rtmp.youtube.com/live2/KEY\
<http://a.rtmp.youtube.com/live2/KEY%5C>"",
source)
Output
xtvideo | 2017/03/19 12:00:17
static=[mksafe:output(dot)youtube:output(dot)youtube],
dynamic=[].
xtvideo | 2017/03/19 12:00:17
[warp_prod_7187:3] Buffer emptied, start buffering...
xtvideo | 2017/03/19 12:00:17 [mksafe:3] Switch
to safe_blank with transition.
xtvideo | 2017/03/19 12:00:17
static=[], dynamic=[].
xtvideo | 2017/03/19 12:00:17 [source:4] Source
replay_metadata_7237 gets down.
xtvideo | 2017/03/19 12:00:17 [mux_7189:4]
Activations changed: static=[],
dynamic=[mksafe:output(dot)youtube:output(dot)youtube].
xtvideo | 2017/03/19 12:00:17 [safe_blank:4]
static=[mksafe:output(dot)youtube:output(dot)youtube],
dynamic=[mksafe:output(dot)youtube:output(dot)youtube].
xtvideo | 2017/03/19 12:00:17 [xtradio:3] New
metadata chunk: ? -- Calvin Harris feat. Ellie
Goulding - Outside (Funk LeBlanc Remix) (04:12)
http://soundcloud.com/funk-leblanc/calvin-harris-feat-ellie-goulding-outside-funk-leblanc-remix
<http://soundcloud.com/funk-leblanc/calvin-harris-feat-ellie-goulding-outside-funk-leblanc-remix>
.
xtvideo | 2017/03/19 12:00:17 [mksafe:3] Switch
to xtradio with transition.
xtvideo | 2017/03/19 12:00:17 [safe_blank:4]
Activations changed: static=[],
dynamic=[mksafe:mksafe:buffer_7186:buffer_7186].
xtvideo | 2017/03/19 12:00:17 [xtradio:4]
static=[mksafe:mksafe:buffer_7186:buffer_7186],
dynamic=[mksafe:mksafe:buffer_7186:buffer_7186].
xtvideo | 2017/03/19 12:00:17 [source:4]
Garbage collected replay_metadata_7237.
xtvideo | 2017/03/19 12:00:18 [xtradio:4] End
of track.
It looks like nothing is connecting to youtube, on the
dashboard I see no connection what so ever.
Any RTFM or howto is welcome, I'm pretty sure I'm
misunderstanding a mechanism somewhere. I don't mind
if the same can be achieved with ffmpeg.
Best regards,
/Ákos Veres/
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org!http://sdm.link/slashdot
_______________________________________________
Savonet-users mailing list
https://lists.sourceforge.net/lists/listinfo/savonet-users
<https://lists.sourceforge.net/lists/listinfo/savonet-users>
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org!http://sdm.link/slashdot
_______________________________________________
Savonet-users mailing list
https://lists.sourceforge.net/lists/listinfo/savonet-users
<https://lists.sourceforge.net/lists/listinfo/savonet-users>
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the
world's most engaging tech sites, Slashdot.org!
http://sdm.link/slashdot
_______________________________________________
Savonet-users mailing list
https://lists.sourceforge.net/lists/listinfo/savonet-users
<https://lists.sourceforge.net/lists/listinfo/savonet-users>
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org!http://sdm.link/slashdot
_______________________________________________
Savonet-users mailing list
https://lists.sourceforge.net/lists/listinfo/savonet-users
<https://lists.sourceforge.net/lists/listinfo/savonet-users>
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's
most engaging tech sites, Slashdot.org!
http://sdm.link/slashdot
_______________________________________________ Savonet-users
https://lists.sourceforge.net/lists/listinfo/savonet-users
<https://lists.sourceforge.net/lists/listinfo/savonet-users>
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org!http://sdm.link/slashdot
_______________________________________________
Savonet-users mailing list
https://lists.sourceforge.net/lists/listinfo/savonet-users
<https://lists.sourceforge.net/lists/listinfo/savonet-users>
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________ Savonet-users
https://lists.sourceforge.net/lists/listinfo/savonet-users
<https://lists.sourceforge.net/lists/listinfo/savonet-users>
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Savonet-users mailing list
https://lists.sourceforge.net/lists/listinfo/savonet-users
Alex LaBranche
2017-03-22 10:01:19 UTC
Permalink
I know this is a bit off-topic for this mailing list, but I figured maybe this could help.

I run a 24/7 video stream in which the audio is sourced from a Shoutcast server. Instead of broadcasting a still image I decided to try and spice things up a bit by using filters on a video track that are audio reactive. I also wanted to have the title info in the video frame, not just metadata.

Tracks change about once an hour since they are all DJ mix sets. i display the current track title and the current number of listeners in the outgoing rtmp stream as draw text filters.

The filter reads from a text file. Using the 'reload' option will make ffmpeg reload/read said file every frame. So what I do is have one script thats executed by cron once a minute that gets the number of listeners and saves to count.txt. And the source software I wrote thats broadcasting to shoutcast writes the song title into separate file, title.txt every time it changes, making sure that its updated atomically so ffmpeg wont partially read the file or fail and exit completely. (instead of editing the file directly, I first write the information to a temp.txt file, then mv tmp.txt title.txt)

I have a shell script that defines each different filter I use, then I just put it all together at the end... here are a few bits from it...

First I define the listener count drawtext.
This puts the count in the bottom right corner of the frame (1920x1080), with a little transparency.... count.txt and font.ttf are in the same directory as the script, and I'm sure you get what the other settings are for =]


count="drawtext=fontfile=font.ttf:fontsize=72:fontcolor=white:textfile=count.txt:reload=1:x=(w-text_w)-15:y=(h-60):alpha=.5";


Now I define the title drawtext:
This centers the title at the bottom of the frame, will scale the text in the event the string is too long to fit within the width of the frame so that the text will never get cut off, and will blink on and off, displaying for 15 seconds every 60 seconds, and again, a bit of transparency


title="drawtext=fontfile=font.ttf:fix_bounds=true:fontsize=38:textfile=title.txt:fontcolor=white:reload=1:y=(h-text_h)-25:x=(w-text_w)/2:enable=lt(mod(t\,60)\,15):alpha=.5";


The important bit in each is reload=1.

The ffmpeg string could then be written like this


ffmpeg -i /path/to/video.mp4 -i http://shoutcast-server.com:8000 -filter_complex $count,$title -s 1920x1080 -c:a libfdk_aac -b:a 256k -c:v libx264 -b:v 15000k -preset ultrafast -f flv rtmp://stream.output.com/app/streamkey

If you'd like to see what this looks like in action you can visit https://www.dsfm.tv (should autoplay)

You can read more about the drawtext filter here:

https://ffmpeg.org/ffmpeg-filters.html#drawtext-1


If you have any questions feel free =]

Cheers,

Alex
I'm using FMPEG as well, that works without any issues, I just want to have a dynamic text added to image so it shows the currently playing track together with album art, LS could generate all of that and then continually push the stream to youtube.
Best regards,
Ákos Veres
By that I mean icecast -> FMPEG -> YouTube.
I saw no advantage to using LS
Post by John Chewter
I have done it with FFMPEG
Post by Akos Veres
Hi everyone,
I'm trying to stream to youtube live an icecast source paired with an image.
- http://savonet.sourceforge.net/doc-svn/video-static.html
- http://liquidsoap.fm/doc-svn/video.html
- https://www.sk89q.com/2014/05/broadcasting-a-video-playlist-to-nginx-rtmp-module/
#!/usr/bin/liquidsoap
# XTRadio Video
# Standard settings
set("log.stdout",true)
set("log.file",false)
set("log.level",4)
set("server.telnet",false)
set("frame.video.width",640)
set("frame.video.height",480)
set("frame.video.samplerate",12)
# Stream Settings
backup = input.http(id="xtradio","http://xtradio.org:8080/mp3")
img = single("/xt-hd.png")
img = mksafe(img)
radio = backup
video = img
radio = buffer(buffer=0.03,mksafe(radio))
source = mux_video(video=video,radio)
source = mksafe(source)
output.gstreamer.audio_video(id="output.youtube",
video_pipeline=
"videoconvert ! x264enc bitrate=4000 ! video/x-h264,profile=baseline ! queue ! mux.",
audio_pipeline=
"audioconvert ! voaacenc bitrate=128000 ! queue ! mux.",
pipeline=
"flvmux name=mux ! rtmpsink location=\"rtmp://a.rtmp.youtube.com/live2/KEY\"",
source)
Output
xtvideo | 2017/03/19 12:00:17 [replay_metadata_7237:4] Activations changed: static=[mksafe:output(dot)youtube:output(dot)youtube], dynamic=[].
xtvideo | 2017/03/19 12:00:17 [warp_prod_7187:3] Buffer emptied, start buffering...
xtvideo | 2017/03/19 12:00:17 [mksafe:3] Switch to safe_blank with transition.
xtvideo | 2017/03/19 12:00:17 [replay_metadata_7237:4] Activations changed: static=[], dynamic=[].
xtvideo | 2017/03/19 12:00:17 [source:4] Source replay_metadata_7237 gets down.
xtvideo | 2017/03/19 12:00:17 [mux_7189:4] Activations changed: static=[], dynamic=[mksafe:output(dot)youtube:output(dot)youtube].
xtvideo | 2017/03/19 12:00:17 [safe_blank:4] Activations changed: static=[mksafe:output(dot)youtube:output(dot)youtube], dynamic=[mksafe:output(dot)youtube:output(dot)youtube].
xtvideo | 2017/03/19 12:00:17 [xtradio:3] New metadata chunk: ? -- Calvin Harris feat. Ellie Goulding - Outside (Funk LeBlanc Remix) (04:12) http://soundcloud.com/funk-leblanc/calvin-harris-feat-ellie-goulding-outside-funk-leblanc-remix .
xtvideo | 2017/03/19 12:00:17 [mksafe:3] Switch to xtradio with transition.
xtvideo | 2017/03/19 12:00:17 [safe_blank:4] Activations changed: static=[], dynamic=[mksafe:mksafe:buffer_7186:buffer_7186].
xtvideo | 2017/03/19 12:00:17 [xtradio:4] Activations changed: static=[mksafe:mksafe:buffer_7186:buffer_7186], dynamic=[mksafe:mksafe:buffer_7186:buffer_7186].
xtvideo | 2017/03/19 12:00:17 [source:4] Garbage collected replay_metadata_7237.
xtvideo | 2017/03/19 12:00:18 [xtradio:4] End of track.
It looks like nothing is connecting to youtube, on the dashboard I see no connection what so ever.
Any RTFM or howto is welcome, I'm pretty sure I'm misunderstanding a mechanism somewhere. I don't mind if the same can be achieved with ffmpeg.
Best regards,
Ákos Veres
------------------------------------------------------------
------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org!
http://sdm.link/slashdot
______________________________
_________________
Savonet-users mailing list
https://lists.sourceforge.net/lists/listinfo/savonet-users
------------------------------------------------------------
------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org!
http://sdm.link/slashdot
______________________________
_________________
Savonet-users mailing list
https://lists.sourceforge.net/lists/listinfo/savonet-users
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Savonet-users mailing list
https://lists.sourceforge.net/lists/listinfo/savonet-users
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot_______________________________________________
Savonet-users mailing list
https://lists.sourceforge.net/lists/listinfo/savonet-users
Akos Veres
2017-03-22 10:35:14 UTC
Permalink
This is great! Thank you very much, I will definitely have a go at this, in
the end I want to create a docker image for it, I'll update this
conversation once it is done so others can benefit from it as well. Thank
you again, thrilled to try it out!

Best regards,
*Ákos Veres*
Post by Alex LaBranche
I know this is a bit off-topic for this mailing list, but I figured maybe this could help.
I run a 24/7 video stream in which the audio is sourced from a Shoutcast
server. Instead of broadcasting a still image I decided to try and spice
things up a bit by using filters on a video track that are audio reactive.
I also wanted to have the title info in the video frame, not just metadata.
Tracks change about once an hour since they are all DJ mix sets. i display
the current track title and the current number of listeners in the outgoing
rtmp stream as draw text filters.
The filter reads from a text file. Using the 'reload' option will make
ffmpeg reload/read said file every frame. So what I do is have one script
thats executed by cron once a minute that gets the number of listeners and
saves to count.txt. And the source software I wrote thats broadcasting to
shoutcast writes the song title into separate file, title.txt every time it
changes, making sure that its updated atomically so ffmpeg wont partially
read the file or fail and exit completely. (instead of editing the file
directly, I first write the information to a temp.txt file, then mv tmp.txt
title.txt)
I have a shell script that defines each different filter I use, then I
just put it all together at the end... here are a few bits from it...
First I define the listener count drawtext.
This puts the count in the bottom right corner of the frame (1920x1080),
with a little transparency.... count.txt and font.ttf are in the same
directory as the script, and I'm sure you get what the other settings are
for =]
count="drawtext=fontfile=font.ttf:fontsize=72:fontcolor=
white:textfile=count.txt:reload=1:x=(w-text_w)-15:y=(h-60):alpha=.5";
This centers the title at the bottom of the frame, will scale the text in
the event the string is too long to fit within the width of the frame so
that the text will never get cut off, and will blink on and off,
displaying for 15 seconds every 60 seconds, and again, a bit of transparency
title="drawtext=fontfile=font.ttf:fix_bounds=true:fontsize=
38:textfile=title.txt:fontcolor=white:reload=1:y=(h-
text_h)-25:x=(w-text_w)/2:enable=lt(mod(t\,60)\,15):alpha=.5";
The important bit in each is reload=1.
The ffmpeg string could then be written like this
ffmpeg -i /path/to/video.mp4 -i http://shoutcast-server.com:8000
-filter_complex $count,$title -s 1920x1080 -c:a libfdk_aac -b:a 256k -c:v
libx264 -b:v 15000k -preset ultrafast -f flv rtmp://stream.output.com/app/
streamkey
If you'd like to see what this looks like in action you can visit
https://www.dsfm.tv (should autoplay)
https://ffmpeg.org/ffmpeg-filters.html#drawtext-1
If you have any questions feel free =]
Cheers,
Alex
Post by Akos Veres
I'm using FMPEG as well, that works without any issues, I just want to
have a dynamic text added to image so it shows the currently playing track
together with album art, LS could generate all of that and then continually
push the stream to youtube.
Post by Akos Veres
Best regards,
Ákos Veres
On Mon, Mar 20, 2017 at 6:42 PM, John Chewter <
By that I mean icecast -> FMPEG -> YouTube.
I saw no advantage to using LS
Post by John Chewter
I have done it with FFMPEG
Post by Akos Veres
Hi everyone,
I'm trying to stream to youtube live an icecast source paired with an
image.
Post by Akos Veres
Post by John Chewter
Post by Akos Veres
- http://savonet.sourceforge.net/doc-svn/video-static.html
- http://liquidsoap.fm/doc-svn/video.html
- https://www.sk89q.com/2014/05/broadcasting-a-video-playlist-
to-nginx-rtmp-module/
Post by Akos Veres
Post by John Chewter
Post by Akos Veres
#!/usr/bin/liquidsoap
# XTRadio Video
# Standard settings
set("log.stdout",true)
set("log.file",false)
set("log.level",4)
set("server.telnet",false)
set("frame.video.width",640)
set("frame.video.height",480)
set("frame.video.samplerate",12)
# Stream Settings
backup = input.http(id="xtradio","http://xtradio.org:8080/mp3")
img = single("/xt-hd.png")
img = mksafe(img)
radio = backup
video = img
radio = buffer(buffer=0.03,mksafe(radio))
source = mux_video(video=video,radio)
source = mksafe(source)
output.gstreamer.audio_video(id="output.youtube",
video_pipeline=
"videoconvert ! x264enc bitrate=4000 !
video/x-h264,profile=baseline ! queue ! mux.",
Post by Akos Veres
Post by John Chewter
Post by Akos Veres
audio_pipeline=
"audioconvert ! voaacenc bitrate=128000 ! queue ! mux.",
pipeline=
"flvmux name=mux ! rtmpsink location=\"rtmp://a.rtmp.
youtube.com/live2/KEY\"",
Post by Akos Veres
Post by John Chewter
Post by Akos Veres
source)
Output
xtvideo | 2017/03/19 12:00:17 [replay_metadata_7237:4] Activations
changed: static=[mksafe:output(dot)youtube:output(dot)youtube],
dynamic=[].
Post by Akos Veres
Post by John Chewter
Post by Akos Veres
xtvideo | 2017/03/19 12:00:17 [warp_prod_7187:3] Buffer emptied,
start buffering...
Post by Akos Veres
Post by John Chewter
Post by Akos Veres
xtvideo | 2017/03/19 12:00:17 [mksafe:3] Switch to safe_blank with
transition.
Post by Akos Veres
Post by John Chewter
Post by Akos Veres
xtvideo | 2017/03/19 12:00:17 [replay_metadata_7237:4] Activations
changed: static=[], dynamic=[].
Post by Akos Veres
Post by John Chewter
Post by Akos Veres
xtvideo | 2017/03/19 12:00:17 [source:4] Source
replay_metadata_7237 gets down.
static=[], dynamic=[mksafe:output(dot)youtube:output(dot)youtube].
static=[mksafe:output(dot)youtube:output(dot)youtube],
dynamic=[mksafe:output(dot)youtube:output(dot)youtube].
Post by Akos Veres
Post by John Chewter
Post by Akos Veres
xtvideo | 2017/03/19 12:00:17 [xtradio:3] New metadata chunk: ? --
Calvin Harris feat. Ellie Goulding - Outside (Funk LeBlanc Remix) (04:12)
http://soundcloud.com/funk-leblanc/calvin-harris-feat-
ellie-goulding-outside-funk-leblanc-remix .
Post by Akos Veres
Post by John Chewter
Post by Akos Veres
xtvideo | 2017/03/19 12:00:17 [mksafe:3] Switch to xtradio with
transition.
static=[], dynamic=[mksafe:mksafe:buffer_7186:buffer_7186].
static=[mksafe:mksafe:buffer_7186:buffer_7186],
dynamic=[mksafe:mksafe:buffer_7186:buffer_7186].
Post by Akos Veres
Post by John Chewter
Post by Akos Veres
xtvideo | 2017/03/19 12:00:17 [source:4] Garbage collected
replay_metadata_7237.
Post by Akos Veres
Post by John Chewter
Post by Akos Veres
xtvideo | 2017/03/19 12:00:18 [xtradio:4] End of track.
It looks like nothing is connecting to youtube, on the dashboard I see
no connection what so ever.
Post by Akos Veres
Post by John Chewter
Post by Akos Veres
Any RTFM or howto is welcome, I'm pretty sure I'm misunderstanding a
mechanism somewhere. I don't mind if the same can be achieved with ffmpeg.
Post by Akos Veres
Post by John Chewter
Post by Akos Veres
Best regards,
Ákos Veres
------------------------------------------------------------
------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org!
http://sdm.link/slashdot
______________________________
_________________
Savonet-users mailing list
https://lists.sourceforge.net/lists/listinfo/savonet-users
------------------------------------------------------------
------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org!
http://sdm.link/slashdot
______________________________
_________________
Savonet-users mailing list
https://lists.sourceforge.net/lists/listinfo/savonet-users
------------------------------------------------------------
------------------
Post by Akos Veres
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Savonet-users mailing list
https://lists.sourceforge.net/lists/listinfo/savonet-users
------------------------------------------------------------
------------------
Post by Akos Veres
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot______
_________________________________________
Post by Akos Veres
Savonet-users mailing list
https://lists.sourceforge.net/lists/listinfo/savonet-users
------------------------------------------------------------
------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Savonet-users mailing list
https://lists.sourceforge.net/lists/listinfo/savonet-users
Continue reading on narkive:
Loading...