i have the publisher/controller/loop until live all setup/automated with ffmpeg 
providing 4 live streams which rotate  

this allows me to have a ‘main stream’ in which the wowza server rotates 
content on a time based schedule. the cut between streams is very subtle.

the 2 modules im using are stream publisher and loop until live


in wowza/conf/live/Application.xml

<Module>
        <Name>ModuleStreamPublisher</Name>
        <Description>ModuleStreamPublisher</Description>
        
<Class>com.wowza.wms.plugin.collection.module.ModuleStreamPublisher</Class>
</Module>
<Module>
        <Name>ModuleLoopUntilLive</Name>
        <Description>ModuleLoopUntilLive</Description>
        
<Class>com.wowza.wms.plugin.collection.module.ModuleLoopUntilLive</Class>
</Module>



<Property>
        <Name>streamPublisherSmilFile</Name>
        <Value>streamschedule.smil</Value>
</Property>
<!-- This property is the name of the dj stream or streams that will be 
published to your application. -->
<Property>
        <Name>loopUntilLiveStream</Name>
        <Value>djstream</Value>
</Property>
<!-- This property is the name of the server-side stream or streams that the 
live stream(s) will be inserted into. -->
<Property>
        <Name>loopUntilLiveOutStream</Name>
        <Value>dubstepfm</Value>
</Property>
<!--  Reload the entire stream playlist when switching back to the filler 
video. -->
<Property>
        <Name>loopUntilLiveReloadEntirePlaylist</Name>
        <Value>true</Value>
</Property>
<!--  Handle MediaCasters properly by only switching the stream when the 
MediaCaster is ready. -->
<Property>
        <Name>loopUntilLiveHandleMediaCasters</Name>
        <Value>true</Value>
</Property>


in wowza/content/streamschedule.smil

<smil>
<head>
</head>
<body>
<stream name=“dubstepfm"></stream>
<playlist name=“audioviz" playOnStream=“dubstepfm" repeat="true" 
scheduled="2014-01-01 12:59:59">
        <video src="spectrum1.stream" start="-2" length="86400"/>
        <video src="spectrum2.stream" start="-2" length="86400"/>
        <video src="wavesline.stream" start="-2" length="86400"/>
        <video src="wavespoint.stream" start="-2" length="86400"/>
</playlist>
</body>
</smil>


in wowza/content/wavespoint.stream
udp://127.0.0.1:10040

in wowza/content/wavesline.stream
udp://127.0.0.1:10030

in wowza/content/spectrum2.stream
udp://127.0.0.1:10020

in wowza/content/spectrum1.stream
udp://127.0.0.1:10010


and finally the ffmpeg instances that create the audio viz


ffmpeg -i http://stream.dubstep.fm:5000 -filter_complex 
showwaves=s=1280x720:mode=point,drawtext=fontfile=d3.ttf:fontsize=28:fontcolor=white:textfile=dsfm.tv.txt:y=10:x=10
 -c:v libx264 -b:v 3000k -pix_fmt yuv420p -c:a copy -preset ultrafast -bsf 
h264_mp4toannexb -f mpegts udp://127.0.0.1:10040?pkt_size=1316

ffmpeg -i http://stream.dubstep.fm:5000 -filter_complex 
showwaves=s=1280x720:mode=line,drawtext=fontfile=/d3.ttf:fontsize=28:fontcolor=white:textfile=dsfm.tv.txt:y=10:x=10
 -c:v libx264 -preset ultrafast -b:v 3000k -pix_fmt yuv420p -c:a copy -bsf 
h264_mp4toannexb -f mpegts udp://127.0.0.1:10030?pkt_size=1316

ffmpeg -i http://stream.dubstep.fm:5000 -filter_complex 
showspectrum=mode=separate:s=1280x720,drawtext=fontfile=d3.ttf:fontsize=28:fontcolor=white:textfile=dsfm.tv.txt:y=10:x=10
 -c:v libx264 -b:v 3000k -pix_fmt yuv420p -c:a copy -preset ultrafast -bsf 
h264_mp4toannexb -f mpegts udp://127.0.0.1:10020?pkt_size=1316

ffmpeg -i http://stream.dubstep.fm:5000 -filter_complex 
showspectrum=s=1280x720,drawtext=fontfile=d3.ttf:fontsize=28:fontcolor=white:textfile=dsfm.tv.txt:y=10:x=10
 -c:v libx264 -preset ultrafast -b:v 3000k -pix_fmt yuv420p -c:a copy -bsf 
h264_mp4toannexb -f mpegts udp://127.0.0.1:10010?pkt_size=1316


to sum it all up im generating 2 spectrograms and 2 waveforms using the audio 
from a shoutcast server. each one plays for 24 hours before switching to the 
next one in the list. if a stream is published with the name djstream, it will 
immediately switch to that content… once djstream is finished it goes back to 
the schedule again, rotating once every 24 hours to the next stream… the single

i believe the app type has to be ‘live’ for most of this stuff to work, and i 
dont think you can switch to a stream published to a different app.


results -> http://dsfm.tv

ok enough wowza on the ffmpeg list.. let me know if you have any q’s, etc

cheers!

> On Oct 25, 2014, at 1:54 PM, Felix E. Klee <[email protected]> wrote:
> 
> Thanks Luke! Hm, I thought it was standard feature. But being not, I
> guess I'll first look at Wowza which seems to be scriptable with
> ActionScript. Fortunately, I've used ActionScript before: Many years
> ago, I wrote a streaming video player, based on AMS.
> 
> Anyhow, there must be a smooth solution.  l just can't believe that
> it's not possible to run something akin to a TV station on the
> Internet.
> _______________________________________________
> ffmpeg-user mailing list
> [email protected]
> http://ffmpeg.org/mailman/listinfo/ffmpeg-user

_______________________________________________
ffmpeg-user mailing list
[email protected]
http://ffmpeg.org/mailman/listinfo/ffmpeg-user

Reply via email to