org.mmbase.streams.transcoders
Class FFMpegAnalyzer

java.lang.Object
  extended by org.mmbase.streams.transcoders.FFMpegAnalyzer
All Implemented Interfaces:
Serializable, Cloneable, Analyzer, PublicCloneable<Analyzer>

public class FFMpegAnalyzer
extends Object
implements Analyzer

An implementation of Analyzer that uses FFmpeg to analyze files. It tries to recognize images, audio and video - in that order. FFmpeg reports various information when you throw a file at it with 'ffmpeg -i file.ext' some of these lines are examined f.e.:

  Input #0, wav, from 'basic.wav':
    Duration: 00:00:02.94, bitrate: 384 kb/s
      Stream #0.0: Audio: pcm_s24le, 8000 Hz, 2 channels, s16, 384 kb/s
 

Version:
$Id: FFMpegAnalyzer.java 42366 2010-06-01 14:55:52Z andre $
Author:
Michiel Meeuwissen, André van Toly
See Also:
Serialized Form

Constructor Summary
FFMpegAnalyzer()
           
 
Method Summary
 void addLogger(Logger logger)
           
 void addThrowable(Throwable t)
           
 void analyze(String l, Node source, Node des)
          Analyzes a line of logging of
 FFMpegAnalyzer clone()
           
 int getMaxLines()
          How many lines of logging should be offered for Analyzer.analyze(java.lang.String, org.mmbase.bridge.Node, org.mmbase.bridge.Node)ing at the most.
 void ready(Node sourceNode, Node destNode)
           
 void setUpdateSource(boolean b)
           
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FFMpegAnalyzer

public FFMpegAnalyzer()
Method Detail

setUpdateSource

public void setUpdateSource(boolean b)

addThrowable

public void addThrowable(Throwable t)
Specified by:
addThrowable in interface Analyzer

getMaxLines

public int getMaxLines()
Description copied from interface: Analyzer
How many lines of logging should be offered for Analyzer.analyze(java.lang.String, org.mmbase.bridge.Node, org.mmbase.bridge.Node)ing at the most.

Specified by:
getMaxLines in interface Analyzer

addLogger

public void addLogger(Logger logger)
Specified by:
addLogger in interface Analyzer

analyze

public void analyze(String l,
                    Node source,
                    Node des)
Description copied from interface: Analyzer
Analyzes a line of logging of

Specified by:
analyze in interface Analyzer
Parameters:
l - This line
source - The node representing the original mediasource.
des - The node representing the mediasource to which the transcoding result is being written.

ready

public void ready(Node sourceNode,
                  Node destNode)
Specified by:
ready in interface Analyzer

clone

public FFMpegAnalyzer clone()
Specified by:
clone in interface PublicCloneable<Analyzer>
Overrides:
clone in class Object


MMBase 2.0-SNAPSHOT - null