ffmpeg学习1

in 杂记 with 6442 comments

前提

I帧:关键帧,帧内压缩,不使用运动补偿,不依赖其他库,可以独立解码

P帧:帧间编码方式,前向时间预测,可以包含帧内编码的部分,p帧的宏块可以是前向预测,也可以是帧内编码。依赖于前面的I帧或P帧

B帧:帧间编码方式,双向时间预测,大大提高压缩倍数。视频帧的传输顺序和显示顺序不同,依赖前面的P帧或I帧,依赖后面的P帧

图像组GOP:两个关键帧之间的距离,码率不变,GOP越大,P、B帧越多,图像质量越好

libavformat:媒体文件容器格式处理库,音视频混流处理MediaMuxer和音视频解析MediaDemuxer:需要用到该库进行码流文件解析和混流

libavcodec:编解码器库

libswresample:音频格式转换和重采样处理的库

libswscale:视频格式转换和缩放处理的库

libavfilter:音视频滤镜、特效处理的库

libavdevice:设备操作库

libavutil:Utility辅助函数库,提供一些独立的辅助函数功能

重点数据结构和基础

1、音视频数据帧AVFrame,表示未进行编码压缩的音视频数据

typedef struct AVFrame{
    ......
    // 视频帧图像数据 或者 音频帧PCM数据, 根据不同的格式有不同的存放方式
    // 对于视频帧:RGB/RGBA 格式时 data[0] 中一次存放每个像素的RGB/RGBA数据
    // YUV420 格式时 data[0]存放Y数据;  data[1]存放U数据; data[2]存放V数据
    // 对于音频帧: data[0]存放左声道数据;  data[1]存放右声道数据
    uint8_t *data[AV_NUM_DATA_POINTERS];
    
    // 行字节跨度, 相当于stride
    // 对于视频帧: 上下两行同一列像素相差的字节数,例如:对于RGBA通常是(width*4), 但是有时FFMPEG内部会有扩展, 可能会比这个值大
    // 对于音频帧: 单个通道中所有采样占用的字节数
    int linesize[AV_NUM_DATA_POINTERS];
    
    int format;// 视频帧是图像格式,音频帧是采样格式
    int64_t pts;// 当前数据帧的时间戳
    
    int width,height;// 仅用于视频帧,宽度高度
    int key_frame;// 仅用于视频,当前是否是I帧
    
    int sample_rate;// 音频,采样率
    uint64_t channel_layout;// 音频,通道类型
    int nb_samples;// 音频,样本数量
}AVFrame;

常用的操作函数

AVFrame *av_frame_alloc(void);  // 分配一个数据帧结构

AVFrame *av_frame_clone(const AVFrame *src); // 完整的克隆数据帧结构, 包括其内部数据

void av_frame_free(AVFrame **frame);  // 释放数据帧结构及其内部数据

int av_frame_ref(AVFrame *dst, const AVFrame *src);  // 增加引用计数

void av_frame_unref(AVFrame *frame);  // 减少引用计数

2、音视频数据包AVPacket,表示压缩后的音视频数据

typedef struct AVPacket{
    ......
    int64_t pts;// 显示时间戳
    int64_t dts;// 解码时间戳,对于音频来说,通常与pts相同
    uint8_t *data;// 实际压缩后的视频或者音频数据
    int size;// 压缩后的数据大小
    int stream_index;// 流索引值,在媒体文件中,使用0,1来区分音视频流
    int flags;
    
    int64_t duration;// 渲染显示时长
    int64_t pos;// 当前包在流中的位置,-1表示未知
    ......
}AVPacket;

常用的操作函数

AVPacket *av_packet_alloc(void);  // 分配一个数据包结构体

AVPacket *av_packet_clone(const AVPacket *src);  // 完整赋值一个数据包

void av_packet_free(AVPacket **pkt);  // 释放数据包结构及其内部的数据

void av_init_packet(AVPacket *pkt);   // 初始化数据包结构,可选字段都设置为默认值

int av_new_packet(AVPacket *pkt, int size); // 根据指定大小创建包结构中的数据

3、时间基和时间戳

时间基time_base:时间刻度的概念

eg:time_base = 1/200,相当于将1000ms均分为200份,每个时间单位是5ms,当视频帧的pts=1173时,对应的实际时刻点是1173*5=5865ms

媒体文件解析分流

文件处理:1、音频流 2、视频流

流媒体文件相关的API:libavformat库中的函数

1、avformat_open_input()/avformat_close_input()

2、avformat_seek_file()——暂时不推荐使用

3、av_read_frame()

解码器相关API:libavcodec库中的函数

1、avcodec_alloc_context3()/avcodec_free_context()

2、avcodec_parameters_to_context()

3、avcodec_open2()/avcodec_close()

4、avcodec_send_packet()/avcodec_receive_frame()

Responses / Cancel Reply
  1. 1win kazino ilovasi 1win kazino ilovasi .

    Reply
  2. mostbet az giriş bloku mostbet az giriş bloku .

    Reply
  3. 1win qanday ro‘yxatdan o‘tish kerak 1win qanday ro‘yxatdan o‘tish kerak .

    Reply
  4. 1 win md www.1win100.md .

    Reply
  5. ОФИЦИАЛЬНАЯ ССЫЛКА на всеми любимый сайт:

    https://kro33.cc

    Это самая ПОСЛЕДНЯЯ ОФИЦИАЛЬНАЯ ссылка.

    Кракен давно зарекомендовал себя как качественный сервис на территории всего постсоветского простраинства и не только, но даже у таких очевидных плюсов, бывают неочевидные минусы, такие как мошенники, которые подделывают официальную ссылку.
    Даркнет: Всё, что нужно знать о Кракен ссылке, сайте и доступе через Tor
    Кракен Вход Clear-net(Обычный браузер)

    https://kro33.cc

    Пользуйтесь только самой актуальной ссылкой!

    Преимущества использования Кракен Даркнет
    Почему пользователи выбирают Кракен сайт среди других даркнет-платформ?
    Безопасность: Платформа обеспечивает высокий уровень защиты данных пользователей.
    Анонимность: Все транзакции проходят через сеть Tor, что исключает возможность отслеживания.
    Вход наКракен Даркнет может быть безопасным и удобным, если вы используете проверенные Кракен ссылки и следуете всем рекомендациям. Для получения доступа убедитесь, что используете только надёжные источники и избегаете фишинговых сайтов.

    Следуя нашим инструкциям, вы сможете найти рабочую ссылку на Кракен сайт и воспользоваться всеми возможностями платформы без риска для себя.
    САМАЯ ПОСЛЕДНЯЯ ссылка для доступа к КРАКЕНУ - https://kro33.cc

    Ключевые слова: Кракен Даркнет, Кракен ссылка, Кракен сайт, Кракен Онион, Кракен чистая ССЫЛКА, Кракен доступе, КРАКЕН, KRAKEN,KRO, KRO33
    кракен сайт

    кракен официальный сайт

    кракен сайт магазин

    ссылка на сайт кракен

    кракен сайт даркнет

    кракен зеркало сайта

    сайт кракен тор

    кракен рабочий сайт

    кракен сайт маркетплейс

    кракен официальный сайт ссылка

    сайт кракен kraken

    кракен сайт купить

    кракен наркотики

    кракен наркошоп

    кракен наркота

    кракен порошок

    кракен наркотики

    кракен что там продают

    кракен маркетплейс что продают

    кракен покупка

    кракен купить

    кракен купить мяу

    кракен питер

    кракен в питере

    кракен москва

    кракен в москве

    кракен что продают

    кракен это

    кракен market

    кракен darknet market

    кракен dark market

    кракен market ссылка

    кракен darknet market ссылка

    кракен market ссылка тор

    кракен даркнет маркет

    кракен market тор

    кракен маркет

    платформа кракен

    кракен торговая площадка

    кракен даркнет маркет ссылка сайт

    кракен маркет даркнет тор

    кракен аккаунты

    кракен заказ

    диспуты кракен

    как восстановить кракен

    кракен даркнет не работает

    как пополнить кракен

    google authenticator кракен

    рулетка кракен

    купоны кракен

    кракен зарегистрироваться

    кракен регистрация

    кракен пользователь не найден

    кракен отзывы

    ссылка кракен

    кракен официальная ссылка

    кракен ссылка на сайт

    кракен официальная ссылка

    кракен актуальные

    кракен ссылка тор

    кракен клирнет

    кракен ссылка маркет

    кракен клир ссылка

    кракен ссылка

    ссылка на кракен

    кракен ссылка

    кракен ссылка на сайт

    кракен ссылка кракен

    актуальная ссылка на кракен

    рабочие ссылки кракен

    кракен тор ссылка

    ссылка на кракен тор

    кракен зеркало тор

    кракен маркет тор

    кракен tor

    кракен ссылка tor

    кракен тор

    кракен ссылка тор

    кракен tor зеркало

    кракен darknet tor

    кракен тор браузер

    кракен тор

    кракен darknet ссылка тор

    кракен ссылка на сайт тор

    кракен вход на сайт

    кракен вход

    кракен зайти

    кракен войти

    кракен даркнет вход

    кракен войти

    где найти ссылку кракен

    где взять ссылку на кракен

    как зайти на сайт кракен

    как найти кракен

    кракен новый

    кракен не работает

    кракен вход

    как зайти на кракен

    кракен вход ссылка

    сайт кракен

    кракен сайт

    кракен сайт что это

    кракен сайт даркнет

    что за сайт кракен

    кракен что за сайт

    кракен официальный сайт

    сайт кракен отзывы

    кракен сайт

    кракен официальный сайт

    сайт кракен тор

    кракен сайт ссылка

    кракен сайт зеркало

    кракен сайт тор ссылка

    кракен зеркало сайта

    зеркало кракен

    адрес кракена

    кракен зеркало тор

    зеркало кракен даркнет

    актуальное зеркало кракен

    рабочее зеркало кракен

    кракен зеркало

    кракен зеркала

    кракен зеркало

    зеркало кракен market

    актуальное зеркало кракен

    кракен дарк

    кракен darknet

    кракен даркнет ссылка

    ссылка кракен даркнет маркет

    кракен даркнет

    кракен darknet

    кракен даркнет

    кракен dark

    кракен darknet ссылка

    кракен сайт даркнет маркет

    кракен даркнет маркет ссылка тор

    кракен даркнет тор

    кракен текст рекламы

    кракен реклама

    реклама кракен москва сити

    реклама наркошопа кракен

    кракен гидра

    кракен реклама

    реклама кракен на арбате

    кракен даркнет реклама

    кракен скачать

    кракен это

    кракен это современный

    только через торрент кракен

    только через кракен

    только через тор кракен

    кракен даркнет только через

    кракен академия

    кракен academy

    кракен обучение

    кракен курсы

    кракен bot

    академия кракен

    кракен работа

    кракен форум

    кракен новости

    кракен телеграмм

    wayaway кракен

    кракен магазин

    кракен магазин

    площадка кракен

    площадка кракен

    кракен shop

    кракен store

    кракен шоп

    кракен qr код

    кракен кьюар код

    qr кракен

    qr код кракен

    кракен логотип

    кракен лого

    кракен logo

    кракен переходник

    https://kro33.cc
    https://kro33.cc
    https://kro33.cc

    Reply
  6. [url=https://fortniterussia.com/]донат в фортнайт в россии[/url] - донат в фортнайт в россии, xbox купить вбаксы

    Reply
  7. Davidabida

    This is because it is necessary to follow our procedure in full https://dp.getbb.ru/viewtopic.php?f=3&t=2595

    Reply
  8. Производство душевых ограждений из стекла по индивидуальным чертежам
    душевые ограждения из стекла для ванны душевые ограждения из стекла для ванны .

    Reply
  9. Профессиональный магазин шин с быстрой логистикой и гибкой оплатой
    шины магазин https://kupit-shiny0-spb.ru .

    Reply
  10. 1вин uzcard пополнение 1вин uzcard пополнение .

    Reply