AvTranscoder  0.9.4
C++APIforLibav/FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
index.doxygen
Go to the documentation of this file.
1 /** @mainpage AvTranscoder
2  *
3  * An High Level API to transform medias.<br/>
4  * Based on FFMpeg / libav projects.
5  *
6  * <h2>Links</h2>
7  * <table style="border-width:0">
8  * <tr><td>github:</td><td>https://github.com/avTranscoder/avTranscoder</td></tr>
9  * <tr><td>openhub:</td><td>https://www.openhub.net/p/avTranscoder</td></tr>
10  * <tr><td>travis-ci:</td><td>https://travis-ci.org/avTranscoder/avTranscoder</td></tr>
11  * <tr><td>coverity-scan:</td><td>https://scan.coverity.com/projects/2626</td></tr>
12  * </table>
13  *
14  * <h2>Authors</h2>
15  * <ul>
16  * <li>Marc-Antoine Arnaud</li>
17  * <li>Valentin Noël</li>
18  * <li>Clément Champetier</li>
19  * </ul>
20  *
21  * <h2>Main features</h2>
22  * The library is here to provide a simple managment of the Transform process.<br/>
23  * Main features attending are:
24  * <ul>
25  * <li>process each stream without different calls</li>
26  * <li>specify stream process before the begin of the process</li>
27  * <li>minimize process: only rewrap, or transcode without transformation if possible</li>
28  * <li>manage different length of stream (generate silence/black)</li>
29  * <li>overload of each sub-component for specific integration, like proprietary wrapper</li>
30  * <li>multi-languages usages (C++, Java, Python)</li>
31  * </ul>
32  *
33  * <h2>High Level API</h2>
34  * <h3>Transcoder</h3>
35  * The library provide the <b>Transcoder</b> class, which was the highest level of managment.<br/>
36  * This classe manage progress of process for each <b>StreamTranscoder</b>.<br/>
37  * Each <b>StreamTranscoder</b> definition can be added to the <b>Transcoder</b>.<br/>
38  * After declaration, the process() method can process file, which call processFrame() in loop.<br/>
39  *
40  * <h3>StreamTranscoder</h3>
41  * The <b>StreamTranscoder</b> will be here to abstract call for different case as:
42  * <ul>
43  * <li>simple rewrap stream</li>
44  * <li>transcode stream (decoding, transform and encoding)</li>
45  * <li>encode from dummy (silence/black or external input source), without decoding step</li>
46  * </ul>
47  * Each <b>StreamTranscoder</b> is able to process a frame, and in background process a rewrap or the transcode process.<br/>
48  *
49  * <h2>Lowest API</h2>
50  * <h3>InputFile</h3>
51  * This object manage the input media, providing the analisys methods to get metadatas on wrapper and each streams.<br/>
52  * It also the entry point to get the <b>InputStream</b> which was the coded stream.<br/>
53  *
54  * <h3>OutputFile</h3>
55  * The equivalent to the <b>InputFile</b> is the <b>OutputFile</b>. Each output stream require a decalaration, needed to wrote headers of files (wrote during the beginWrap() call).<br/>
56  * As the <b>InputFile</b> provide the <b>InputStream</b> to describe stream, the <b>OutputFile</b> as his <b>OutputStream</b> to put coded stream into the output file.<br/>
57  * Using one <b>InputStream</b> and one <b>OutputStream</b>, each <b>DataStream</b> can be passed to provide a rewrap process.<br/>
58  *
59  * <h3>InputEssence</h3>
60  * The <b>InputEssence</b> provide every time an image, from a coded stream or from an external buffer.<br/>
61  * 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).<br/>
62  * The switch between source was managed inside the <b>StreamTranscoder</b> class.
63  *
64  * <h3>OutputEssence</h3>
65  * As the <b>InputEssence</b> can decode the stream, the <b>OutputEssence</b> will encode our images to provide the coded stream.<br/>
66  * It's the encoder cofigured with some <b>Profile</b>.
67  *
68  * <h3>EssenceTransform</h3>
69  * For adapt some images to the output format, some transformation can be done.<br/>
70  * This step will only provide pixel/sample transformation (point to point transform). No resize, resampling can be applyed in this step.
71  *
72  * <h2>Low API</h2>
73  * Each component of the Lowest API call method present in the libav/ffmpeg API. You can depend on one of these project.<br/>
74  * Newest versions of libav/ffmpeg are recommended.<br/>
75  * <br/>
76  * <br/>
77  *
78  */
79 
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy