
The libpostproc is a library containing video postprocessing routines. The libavutil is a helper library containing routines for different parts of FFmpeg. The libavdevice is a special devices muxing/demuxing library and is a complement to libavformat library. The libavfilter is a library of filters that provides the media filtering layer. The libavformat is a library containing demuxers and muxers for audio/video container formats. The libavcodec is a library of codecs for decoding and encoding multimedia. And if you want to change video resolution, you have to edit video frames which you retrieve after decoding. For instance, if all you need is just trim video you have to do only remuxing and edit FFmpeg’s AVPackets after demuxing. You can choose first or second variant depends on your task. The video processing is process of manipulation of encoded packets or decoded frames/samples. The transcoding is the process that includes 4 steps: demuxing, decoding, encoding and muxing. It is called “raw” because they contain unprocessed (or minimally processed) raw data from an image sensor. The raw video data is a sequence of pictures. The result of this process is a pulse code modulation format, abbreviated PCM. This process is known as analog-to-digital conversion. So, we have to convert the analog signal into a series of numbers representing its amplitude. It is valued vary continuously, and the signal exists at every point in time. What is the raw audio data?Īfter audio recording, we have an analog signal. I clarify the reason why we should encode data below. So, files with *.mp3 extensions which we use every day are audio data that was encoded using the mp3 codec. The most popular codec for video is H.264. The extension of the file is a name of the container.Ĭontainers contain encoded data. In simple words, *.mp4, *.avi or *.flv files are containers, because they hold different types of data.
The container is specification describes how different elements of data and metadata coexist in a file. Demultiplexing means splitting from the container the video and audio out into separate streams.
Multiplexing means combining different types, for instance, audio and video, of data in a container. They are shorts for multiplexing and demultiplexing.
Remuxing is a process that includes two other ones: demuxing and muxing.