Libav: A Comprehensive Overview of Multimedia Processing

libav libav n.w
1 / 20
Embed
Share

Explore the world of Libav, a powerful multimedia processing library. Learn about video file formats, audio codecs, containers, and its rich history. Discover the main libraries and tools, and delve into video compression techniques and transcoding operations.

  • Libav
  • Multimedia Processing
  • Video Codecs
  • Audio Formats
  • Transcoding

Uploaded on | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

You are allowed to download the files provided on this website for personal or commercial use, subject to the condition that they are used lawfully. All files are the property of their respective owners.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.

E N D

Presentation Transcript


  1. Libav Libav :

  2. Outline 01 02 Libav What is Libav? Video File Formats Video? Audio? Codec? Container? 03 04 Build Hands on! Build and create library files. Play with Libav 0_hello_world.c 2

  3. 01 Libav So what is this? 3

  4. History We want a better API. Suspended FF + (Fast Forward) = We want to support more features. 2000 2015 2021 2011 4

  5. Libraries Main Libraries Libavutil Libavcodec libavdevice Libavfilter Libavforamt Containing functions for simplifying programming. containing multimedia input/output software frameworks. Containing decoders and encoders for audio/video codecs. Containing demuxers and muxers for multimedia container formats. containing media filters. Libswscale Libswresample Performing highly optimized image scaling and color space/pixel format conversion operations. library performing highly optimized audio resampling, rematrixing and sample format conversionoperations 5

  6. Tools Who use them? 6

  7. 02 Video File Formats Video? Audio? Codec? Container? 7

  8. Container Just like a box. Container Codec ! ! Codec H.264 + AAC H.264 + AAC Video Containers and Codecs 8

  9. Box Boxes in Boxes in MPEG Boxes Boxes. MPEG- -4 4part 14 (MP4) part 14 (MP4) Boxes Boxes. Container Box Box Container Box: Box: ftyp ( ftyp (File Type Box mp41 mp41 moov mdat (Media Data Box): File Type Box): ): mp42 mp42 moov( (Movie Box Mpeg Mpeg Standard Standard Movie Box): ): mdat (Media Data Box): 9 Many types of boxes.

  10. Codec Compression Technique of h.264 I I- -frames: frames: are the least compressible but don't require other video frames to decode. P P- -frames: frames: can use data from previous frames to decompressand are more compressible than I-frames. B B- -frames: frames:can use both previous and forward frames for data reference to get the highest amount of data compression. I, B and P-frame 10

  11. Operations 1. Transcoding Codec Netflix Codec 11

  12. Operation 2. Transmuxing 12

  13. 03 Hands On 13

  14. Commands Configure ./configure --disable-asm--enable-avdevice--enable-doc --disable-programs --disable-shared --enable-static --disable- bzlib --enable-gray --disable-libopenjpeg--disable-iconv--disable-zlib--prefix=./vs2019_build --toolchain=msvc-- arch=x86 --extra-cflags=-MDd--extra-ldflags="/NODEFAULTLIB:libcmt" --enable-debug Make make make j8 j8 14

  15. 04 Play with Libav 15

  16. Play With Libav Planar and Non-Planar Audio Planar Planar C2 C2 C1 C1 C1 C2 Non Planar Non- - Planar C2 C1 C2 C1 C1 C2 16

  17. Play With Libav Decode MP2 Procedure AVPacket AVPacket AVFrame AVFrame Parse Parse Decode Decode Parser CodecContext mp2 mp2 Recv Recv Send Send 17

  18. Link Libav in Visual Studio Hackmd https://hackmd.io/@Henry-Zhou/Byc0GT-HF 18

  19. Reference Learn FFmpeg in a hard way vs2017 ffmpeg 4.0.3 Building libav/ffmpeg with MSVC FFmpeg Doxygen Document 19

  20. 20

Related


More Related Content