Results 1 to 4 of 4

Thread: Intercept each decoded frame like a stream before sending to be encoded?

  1. #1

    Question Intercept each decoded frame like a stream before sending to be encoded?

    I currently have something working with TranscoderStreamSourceVideo.grabFrame and dynamically generated overlays, kinda like a censorship. However, it seems because the grabFrame and overlay process are out-of-band of the decode/encode process that the overlay is a little laggy where the censorship cannot keep up with the subject being censored.

    Is there a way to instead insert this censorship-generating and frame overlay process like a man-in-the-middle between the decoding and encoding?

    Example: Incoming stream -> Wowza -> Transcoder -> Decode -> Censorship drawn on frame (BufferedImage) -> Encode -> Client

    This way every frame is guaranteed to have the censor in the right position (of course assuming that the placement is correct).

    Thanks

    Rob Olmos
    EnderTech

  2. #2
    Join Date
    Dec 2007
    Posts
    21,962

    Default

    Rob,

    I don't think this is possible, if I understand.

    Richard

  3. #3

    Default

    Quote Originally Posted by rrlanham View Post
    Rob,

    I don't think this is possible, if I understand.

    Richard
    Basically I want to hook into the the transcoding process like a FFmpeg filter (libavfilter) where each frame is processed by my custom code.
    Eg. the output of the decoding process is fed into my custom code and my custom code feeds into the input of the encoding process.

    So I imagine a normal transcode process would be ("->" means output is fed into the next stage's input): Decode -> Scale the raw frame -> Encode

    I would like it to do: Decode -> Scale the raw frame -> (my custom code doing it's thing, eg. drawing on the frame) -> Encode

    Then in the transcoder template (transcoder.xml/transrate.xml) In the <Video> section you can specify something like:

    <Filter>
    <Name>Censorship</Name>
    <Description>Censorship</Name>
    <Class>endertech.transcoder.filter.FilterCensorship</Class>
    </Filter>

    FilterCensorship implements some interface for a method to receive every video frame and returns the frame after any manipulations have been done to it.

    Probably still isn't possible but I thought I'd give a shot to rephrase it so you understand what I'm looking for.
    Maybe add it as a feature request to continue building out the Transcoder Addon.

    Thanks

    Rob Olmos
    EnderTech

  4. #4

    Default

    It is possible to plug into the decode, scale, encode process for each frame and apply an overlay. You will not have direct access to the frame at this point. You will be able to add an overlay to the frame.

    Charlie

Similar Threads

  1. Input source is not being decoded
    By cawecoy in forum AddOn: Transcoder
    Replies: 3
    Last Post: 10-08-2012, 04:50 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
  •