AvTranscoder
0.9.4
C++APIforLibav/FFmpeg
|
An High Level API to transform medias.
Based on FFMpeg / libav projects.
github: | https://github.com/avTranscoder/avTranscoder |
openhub: | https://www.openhub.net/p/avTranscoder |
travis-ci: | https://travis-ci.org/avTranscoder/avTranscoder |
coverity-scan: | https://scan.coverity.com/projects/2626 |
The library is here to provide a simple managment of the Transform process.
Main features attending are:
The library provide the Transcoder class, which was the highest level of managment.
This classe manage progress of process for each StreamTranscoder.
Each StreamTranscoder definition can be added to the Transcoder.
After declaration, the process() method can process file, which call processFrame() in loop.
The StreamTranscoder will be here to abstract call for different case as:
Each StreamTranscoder is able to process a frame, and in background process a rewrap or the transcode process.
This object manage the input media, providing the analisys methods to get metadatas on wrapper and each streams.
It also the entry point to get the InputStream which was the coded stream.
The equivalent to the InputFile is the OutputFile. Each output stream require a decalaration, needed to wrote headers of files (wrote during the beginWrap() call).
As the InputFile provide the InputStream to describe stream, the OutputFile as his OutputStream to put coded stream into the output file.
Using one InputStream and one OutputStream, each DataStream can be passed to provide a rewrap process.
The InputEssence provide every time an image, from a coded stream or from an external buffer.
It's allow the possiblity to generate silence or black stream, or also switch between the coded stream and a factice (to complete stream with different durations).
The switch between source was managed inside the StreamTranscoder class.
As the InputEssence can decode the stream, the OutputEssence will encode our images to provide the coded stream.
It's the encoder cofigured with some Profile.
For adapt some images to the output format, some transformation can be done.
This step will only provide pixel/sample transformation (point to point transform). No resize, resampling can be applyed in this step.
Each component of the Lowest API call method present in the libav/ffmpeg API. You can depend on one of these project.
Newest versions of libav/ffmpeg are recommended.