Results 1 to 6 of 6

Thread: inject custom metadata to video on demand stream server side at time intervels

  1. #1
    Join Date
    Oct 2013

    Default inject custom metadata to video on demand stream server side at time intervels

    I saw this link about how to modify the metadata of on-demand streams.
    I can use that if i wanted to "modify" metadata in beginning of stream. But i need to "add" metadata dynamically on server-side at variable time-intervals( ie. client sends cue-points to server in-middle of playing the vod stream and server has to inject metadata with some custom keys to vod stream).
    Below is my code inside cue-point method on server-side to send metadata to vod :
                List<IMediaStream> playStreams = client.getAppInstance().getPlayStreamsByName(vodStreamName);
    	    AMFDataObj data = new AMFDataObj();
    	    AMFDataArray parameters = new AMFDataArray();
    	    data.put("testMetadata", parameters);
    	    for(IMediaStream streamInstance:playStreams)
    	    	if(streamInstance != null)
    	    		streamInstance.sendDirect("onMetaData", data);//working
    I used the same code to send metadata to live(non-vod) streams, it works just fine. It doesn't work in case of vod stream. Can anyone tell what's wrong with my code? Any help is appreciated.
    Last edited by evkrishna; 03-11-2014 at 03:49 AM.

  2. #2


    This method is for live streams. It will write cuepoints to recordings for later VoD playback, but does not write to VoD directly.

    You can use a 3rd party injector, Captionate would be one option.


  3. #3


    There is also a way to do this thru Wowza.

    You can create a schedule to run VoD content as a live source, then use the LiveStreamRecord API to record the stream back to VoD with the metadata included. you will need to use the LiveStreamRecord API because a StreamType of "live-record" is not supported by Stream class Streams.

    How to do scheduled streaming with Wowza Streaming Engine (StreamPublisher)
    How to record live streams (HTTPLiveStreamRecord)


  4. #4
    Join Date
    Oct 2013


    Hi Salvadore,
    I appreciate ur reply. It took a whole day for me to experiment the ways to send metadata in vod stream in real-time. It turned out that a simple modification in the code would do the trick.
    Replacing below code
    streamInstance.sendDirect("onMetaData", data);
    streamInstance.send("onMetaData", data);
    did the help to my purpose.
    I thought streamInstance.sendDirect() is kind of much better way of injecting metadata to streams, as streamInstance.send() failed in case of transcoded streams in my early project. It seems i have to use streamInstance.send() to send metadata to all the clients,those are playing an vod stream.

    Hope my whole day effort will be useful to some ppl looking for the same


  5. #5


    You were saying metadata and I was hearing cuepoints, that is my fault. Sorry for the confusion and I am glad to hear you got this working.

    Thanks for the update.


  6. #6



    Answered here.


Similar Threads

  1. Replies: 2
    Last Post: 08-25-2014, 01:55 PM
  2. Inject ID3/MetaData into Audio only Streams and maintain metadata throughout restream
    By brandone1 in forum Wowza Streaming Engine functionality
    Replies: 0
    Last Post: 08-15-2013, 01:17 PM
  3. inject custom metadata into mp4 live stream so wowza can read it
    By arpan_synapse in forum Live Streaming and Encoder Discussion
    Replies: 11
    Last Post: 08-24-2012, 02:39 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts