Skip to content

Commit fec8291

Browse files
add link to the chapter 3
1 parent 98c7a56 commit fec8291

1 file changed

Lines changed: 6 additions & 0 deletions

File tree

README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ __Table of Contents__
3131
* [FFmpeg libav architecture](#ffmpeg-libav-architecture)
3232
* [Chapter 1 - timing](#chapter-1---syncing-audio-and-video)
3333
* [Chapter 2 - remuxing](#chapter-2---remuxing)
34+
* [Chapter 3 - transcoding](#chapter-3---transcoding)
3435

3536
# Intro
3637

@@ -712,6 +713,7 @@ As you can see it has a single `mdat` atom/box, **this is place where the video
712713
In this chapter, we're going to create a minimalist transcoder, written in C, that can convert videos coded in H264 to H265 using **FFmpeg/libav** library specifically [libavcodec](https://ffmpeg.org/libavcodec.html), libavformat, and libavutil.
713714
714715
![media transcoding flow](/img/transcoding_flow.png.png)
716+
715717
> _Just a quick recap:_ **AVFormatContext** is the abstraction for the format of the media file, aka container (ex: MKV, MP4, Webm, TS), the **AVStream** represents each type of data for a given format (ex: audio, video, subtitle, metadata), **AVPacket** is a slice of compressed data obtained from the AVStream that can be decoded by an **AVCodec** (ex: av1, h264, vp9, hevc) generating a raw data called **AVFrame**.
716718
717719
### Transmuxing
@@ -878,6 +880,10 @@ int encode(AVFormatContext *avfc, AVStream *dec_video_avs, AVStream *enc_video_a
878880
```
879881

880882
We converted the media stream from `h264` codec:
883+
881884
![h264 codec properties](/img/h264_properties.png)
885+
882886
To the `HEVC` codec:
887+
883888
![hevc codec properties](/img/hevc_properties.png)
889+

0 commit comments

Comments
 (0)