Class FLVWriter

  • All Implemented Interfaces:
    ITagWriter

    public class FLVWriter
    extends Object
    implements ITagWriter
    A Writer is used to write the contents of a FLV file
    Author:
    The Red5 Project, Dominick Accattato (daccattato@gmail.com), Luke Hubbard, Codegent Ltd (luke@codegent.com), Tiago Jacobs (tiago@imdt.com.br), Paul Gregoire (mondain@gmail.com)
    • Constructor Detail

      • FLVWriter

        public FLVWriter​(String filePath)
        Creates writer implementation with for a given file
        Parameters:
        filePath - path to existing file
      • FLVWriter

        public FLVWriter​(boolean repair,
                         String filePath)
        Creates writer implementation with for a given file
        Parameters:
        repair - repair the .ser file
        filePath - path to existing file
      • FLVWriter

        public FLVWriter​(File file,
                         boolean append)
        Creates writer implementation with given file and flag indicating whether or not to append. FLV.java uses this constructor so we have access to the file object
        Parameters:
        file - File output stream
        append - true if append to existing file
      • FLVWriter

        public FLVWriter​(Path path,
                         boolean append)
        Creates writer implementation with given file and flag indicating whether or not to append. FLV.java uses this constructor so we have access to the file object
        Parameters:
        path - File output path
        append - true if append to existing file
    • Method Detail

      • writeTag

        public boolean writeTag​(ITag tag)
                         throws IOException
        Writes a Tag object
        Specified by:
        writeTag in interface ITagWriter
        Parameters:
        tag - Tag to write
        Returns:
        true on success, false otherwise
        Throws:
        IOException - I/O exception
      • writeTag

        public boolean writeTag​(byte dataType,
                                org.apache.mina.core.buffer.IoBuffer data)
                         throws IOException
        Write a Tag using bytes
        Specified by:
        writeTag in interface ITagWriter
        Parameters:
        dataType - Tag type
        data - Byte data
        Returns:
        true on success, false otherwise
        Throws:
        IOException - I/O exception
      • writeStream

        public boolean writeStream​(byte[] b)
        Write a Stream to disk using bytes
        Specified by:
        writeStream in interface ITagWriter
        Parameters:
        b - Array of bytes to write
        Returns:
        true on success, false otherwise
      • close

        public void close()
        Ends the writing process, then merges the data file with the flv file header and metadata.
        Specified by:
        close in interface ITagWriter
      • addPostProcessor

        public void addPostProcessor​(IPostProcessor postProcessor)
        Adds a post-process for execution once the instance completes.
        Specified by:
        addPostProcessor in interface ITagWriter
        Parameters:
        postProcessor - an implementation instance of IPostProcessor
      • setFLV

        public static void setFLV​(IFLV flv)
        Setter for FLV object
        Parameters:
        flv - FLV source
      • getOffset

        public int getOffset()
        Return the offset
        Specified by:
        getOffset in interface ITagWriter
        Returns:
        Offset value
      • setOffset

        public void setOffset​(int offset)
        Setter for offset
        Parameters:
        offset - Value to set for offset
      • getBytesWritten

        public long getBytesWritten()
        Return the bytes written
        Specified by:
        getBytesWritten in interface ITagWriter
        Returns:
        Number of bytes written
      • setVideoCodecId

        public void setVideoCodecId​(int videoCodecId)
      • setAudioCodecId

        public void setAudioCodecId​(int audioCodecId)
      • setSoundRate

        public void setSoundRate​(int soundRate)
      • setSoundSize

        public void setSoundSize​(int soundSize)
      • setSoundType

        public void setSoundType​(boolean soundType)
      • setDuration

        public void setDuration​(int duration)
      • setVideoDataSize

        public void setVideoDataSize​(int videoDataSize)
      • setAudioDataSize

        public void setAudioDataSize​(int audioDataSize)
      • repair

        public static boolean repair​(String path,
                                     Integer audioId,
                                     Integer videoId)
                              throws InterruptedException
        Allows repair of flv files if .info and .ser files still exist.
        Parameters:
        path - path to .ser file
        audioId - audio codec id
        videoId - video codec id
        Returns:
        true if conversion was successful
        Throws:
        InterruptedException - Exception on interruption
      • main

        public static void main​(String[] args)
                         throws InterruptedException
        Exposed to allow repair of flv files if .info and .ser files still exist.
        Parameters:
        args - 0: path to .ser file 1: audio codec id 2: video codec id
        Throws:
        InterruptedException - Exception on interruption