ffmpeg学习1

in 杂记 with 7584 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. Если вы искали где отремонтировать сломаную технику, обратите внимание - профи москва

    Reply
  2. RobertProna

    Клининг после смерти человека http://uborka-posle-umershego-moskva.ru/

    Reply
  3. [url=http://image.google.bf/url?sa=t&source=web&rct=j&url=https://darwinnunez-cz.biz]darwinnunez-cz.biz[/url]
    [url=http://temac.ca/smf/index.php?thememode=full;redirect=https://darwinnunez-cz.biz]darwinnunez-cz.biz[/url]
    [url=http://images.google.cat/url?q=https://darwinnunez-cz.biz]darwinnunez-cz.biz[/url]
    [url=http://elit-apartament.ru/go?https://darwinnunez-cz.biz]darwinnunez-cz.biz[/url]
    [url=http://cse.t.me/s/worldcasinonet.pg/url?sa=i&url=https://darwinnunez-cz.biz]darwinnunez-cz.biz[/url]
    [url=http://www.ece.cmu.edu/~protoflex/lib/exe/fetch.php?media=https://darwinnunez-cz.biz]darwinnunez-cz.biz[/url]
    [url=http://net-russiaa.parsablog.com.xx3.kz/go.php?url=https://darwinnunez-cz.biz]darwinnunez-cz.biz[/url]
    [url=http://adspics.com.xx3.kz/go.php?url=https://darwinnunez-cz.biz]darwinnunez-cz.biz[/url]
    [url=http://www.hms-livgidromash.ru/bitrix/rk.php?goto=https://darwinnunez-cz.biz]darwinnunez-cz.biz[/url]
    [url=http://maps.google.bs/url?q=https://darwinnunez-cz.biz]darwinnunez-cz.biz[/url]
    [url=http://metager.org/meta/meta.ger3?eingabe=&mgv=de6ef68a43c8c667df11821c1c24e3edhttps://darwinnunez-cz.biz]darwinnunez-cz.biz[/url]
    [url=http://www.floorball-portal.de/redirect/?url=https://darwinnunez-cz.biz]darwinnunez-cz.biz[/url]
    [url=http://iklan.ws.xx3.kz/go.php?url=https://darwinnunez-cz.biz]darwinnunez-cz.biz[/url]
    [url=http://news.onionsearchengine.com/click.php?u=https://darwinnunez-cz.biz]darwinnunez-cz.biz[/url]
    [url=http://maps.google.dm/url?q=https://darwinnunez-cz.biz]darwinnunez-cz.biz[/url]

    last news about darwin nunez
    darwinnunez-cz.biz
    darwinnunez-cz.biz
    darwinnunez-cz.biz
    darwinnunez-cz.biz
    darwinnunez-cz.biz
    darwinnunez-cz.biz
    darwinnunez-cz.biz
    darwinnunez-cz.biz
    darwinnunez-cz.biz
    darwinnunez-cz.biz
    darwinnunez-cz.biz
    darwinnunez-cz.biz
    darwinnunez-cz.biz
    darwinnunez-cz.biz
    darwinnunez-cz.biz

    Reply
  4. HarryBet

    https://chicago.eater.com/2022/3/29/23001399/pop-up-dinners-bars-restaurants-events-chicago-spring-2022

    Reply
  5. [url=http://selcoop.ru/bitrix/redirect.php?event1=&event2=&event3=&goto=https://darwinnunezcz.biz]darwinnunezcz.biz[/url]
    [url=https://sp-ao.shortpixel.ai/client/q_lqip,ret_wait/https://darwinnunezcz.biz]darwinnunezcz.biz[/url]
    [url=https://www.stinger-russia.ru/bitrix/redirect.php?goto=https://darwinnunezcz.biz]darwinnunezcz.biz[/url]
    [url=http://maru8.com.xx3.kz/go.php?url=https://darwinnunezcz.biz]darwinnunezcz.biz[/url]
    [url=http://images.google.es/url?sa=t&url=https://darwinnunezcz.biz]darwinnunezcz.biz[/url]
    [url=http://qwikad.com.xx3.kz/go.php?url=https://darwinnunezcz.biz]darwinnunezcz.biz[/url]
    [url=http://www.revogamers.net/comunidad/redirect-to/?redirect=https://darwinnunezcz.biz]darwinnunezcz.biz[/url]
    [url=http://konnoc.ru/bitrix/rk.php?goto=https://darwinnunezcz.biz]darwinnunezcz.biz[/url]
    [url=https://cse.google.ki/url?q=https://darwinnunezcz.biz]darwinnunezcz.biz[/url]
    [url=https://maps.t.me/s/worldcasinonet.pg/url?sa=j&url=https://darwinnunezcz.biz]darwinnunezcz.biz[/url]
    [url=https://oxfordamerican.org/adclick?ad=rabun-county-tourism-paid-112-march-29-june-30-2021&url=https://darwinnunezcz.biz]darwinnunezcz.biz[/url]
    [url=http://totojitu.inube.com.xx3.kz/go.php?url=https://darwinnunezcz.biz]darwinnunezcz.biz[/url]
    [url=http://streaming4fun.com/redirect.php?url=https://darwinnunezcz.biz]darwinnunezcz.biz[/url]
    [url=http://satomitsu.com/cgi-bin/rank.cgi?mode=link&id=1115&url=https://darwinnunezcz.biz]darwinnunezcz.biz[/url]
    [url=http://edframe.com.xx3.kz/go.php?url=https://darwinnunezcz.biz]darwinnunezcz.biz[/url]

    last news about darwin nunez

    darwinnunezcz.biz
    darwinnunezcz.biz
    darwinnunezcz.biz
    darwinnunezcz.biz
    darwinnunezcz.biz
    darwinnunezcz.biz
    darwinnunezcz.biz
    darwinnunezcz.biz
    darwinnunezcz.biz
    darwinnunezcz.biz
    darwinnunezcz.biz
    darwinnunezcz.biz
    darwinnunezcz.biz

    Reply
  6. [url=http://www.lililouisemusique.fr/newsletter/redir.php?idn=616&url=https://bruno-guimaraes-cz.biz/]bruno-guimaraes-cz.biz[/url]
    [url=http://vsasemya.ru/go/url=https://bruno-guimaraes-cz.biz/]bruno-guimaraes-cz.biz[/url]
    [url=http://go.redirectingat.com/?id=92X363&xcust=hawk_custom-tracking&xs=1&url=https://bruno-guimaraes-cz.biz/]bruno-guimaraes-cz.biz[/url]
    [url=http://www.caribbeanweddings.com/click_track.html?r=kortingskaarten.nethttps://bruno-guimaraes-cz.biz/]bruno-guimaraes-cz.biz[/url]
    [url=http://brookland.kent-towns.co.uk/link.asp?url=https://bruno-guimaraes-cz.biz/]bruno-guimaraes-cz.biz[/url]
    [url=https://orderentry.fundtrackersql.com/shopdfscanada/Home/ChangeCulture?lang=en&returnUrl=https://bruno-guimaraes-cz.biz/]bruno-guimaraes-cz.biz[/url]
    [url=https://chaturbate.com/external_ab/?url=https://bruno-guimaraes-cz.biz/]bruno-guimaraes-cz.biz[/url]
    [url=https://pjmood.com/bitrix/rk.php?goto=https://bruno-guimaraes-cz.biz/]bruno-guimaraes-cz.biz[/url]
    [url=https://cocev.blog.idnes.cz/redir.aspx?url=https://bruno-guimaraes-cz.biz/]bruno-guimaraes-cz.biz[/url]
    [url=http://fertilizer.ru/bitrix/rk.php?goto=https://bruno-guimaraes-cz.biz/]bruno-guimaraes-cz.biz[/url]
    [url=http://ynnpro.ahovey.est-online.hut2.ru/test.php?a%5B%5D=<a%20href=https://bruno-guimaraes-cz.biz/]bruno-guimaraes-cz.biz[/url]
    [url=https://nowlifestyle.com/redir.php?msg=432d546b8c7bff93f9d0ad4a6d4f179c&k=81b2c42f716dc463a928f760234b79c1&url=https://bruno-guimaraes-cz.biz/]bruno-guimaraes-cz.biz[/url]
    [url=https://nl.xhamster8.com/exit.php?url=https://bruno-guimaraes-cz.biz/]bruno-guimaraes-cz.biz[/url]
    [url=http://www.google.ae/url?q=https://bruno-guimaraes-cz.biz/]bruno-guimaraes-cz.biz[/url]
    [url=http://shutupandfap.com/gifs/link.php?gr=52&id=8f5361&url=/cgi-bin/crtr/out.cgi?req=1%nt=pics%u=https://bruno-guimaraes-cz.biz/]bruno-guimaraes-cz.biz[/url]

    last news about bruno guimaraes

    bruno-guimaraes-cz.biz
    bruno-guimaraes-cz.biz
    bruno-guimaraes-cz.biz
    bruno-guimaraes-cz.biz
    bruno-guimaraes-cz.biz
    bruno-guimaraes-cz.biz
    bruno-guimaraes-cz.biz
    bruno-guimaraes-cz.biz
    bruno-guimaraes-cz.biz
    bruno-guimaraes-cz.biz
    bruno-guimaraes-cz.biz
    bruno-guimaraes-cz.biz
    bruno-guimaraes-cz.biz
    bruno-guimaraes-cz.biz
    bruno-guimaraes-cz.biz

    Reply
  7. [url=http://teen-collection.com/cgi-bin/out.cgi?id=85&l=top01&u=https://mahrezriyad-cz.biz/]mahrezriyad-cz.biz[/url]
    [url=http://www.amazeheaters.com/index.php?url=https://mahrezriyad-cz.biz/]mahrezriyad-cz.biz[/url]
    [url=http://taxvisioncloud.com/__media__/js/netsoltrademark.php?d=https://mahrezriyad-cz.biz/]mahrezriyad-cz.biz[/url]
    [url=https://www.rtsu.tj/bitrix/redirect.php?goto=https://mahrezriyad-cz.biz/]mahrezriyad-cz.biz[/url]
    [url=http://www.sweethotasians.com/cgi-bin/atc/out.cgi?id=18&u=https://mahrezriyad-cz.biz/]mahrezriyad-cz.biz[/url]
    [url=http://www.statspro.com/footbal/DOMINATORS/redir.asp?url=https://mahrezriyad-cz.biz/]mahrezriyad-cz.biz[/url]
    [url=http://images.t.me/s/worldcasinonet.om/url?q=https://mahrezriyad-cz.biz/]mahrezriyad-cz.biz[/url]
    [url=http://datsunfan.ru/go/url=https://mahrezriyad-cz.biz/]mahrezriyad-cz.biz[/url]
    [url=http://todos.xsrv.jp/june/ssi/php/redirect.php?u=//https://mahrezriyad-cz.biz/]mahrezriyad-cz.biz[/url]
    [url=http://go.redirectingat.com/?id=92X363&xcust=hawk_custom-tracking&xs=1&url=https://mahrezriyad-cz.biz/]mahrezriyad-cz.biz[/url]
    [url=http://www.erotichub.net/cm/out.php?niche=70&id=294131&url=https://mahrezriyad-cz.biz/]mahrezriyad-cz.biz[/url]
    [url=http://a.1u2u3u4u.com/bbs/redirect.php?tid=7983893&goto=lastposthttps://mahrezriyad-cz.biz/]mahrezriyad-cz.biz[/url]
    [url=https://projectsales.exchangehouse.com.au/leaving?ref=https://mahrezriyad-cz.biz/]mahrezriyad-cz.biz[/url]
    [url=https://www.google.sc/url?q=https://mahrezriyad-cz.biz/]mahrezriyad-cz.biz[/url]
    [url=https://www.lionsclubs.org.hk/en/page/redirect?url=https://mahrezriyad-cz.biz/]mahrezriyad-cz.biz[/url]

    last news about mahrez riyad

    mahrezriyad-cz.biz
    mahrezriyad-cz.biz
    mahrezriyad-cz.biz
    mahrezriyad-cz.biz
    mahrezriyad-cz.biz
    mahrezriyad-cz.biz
    mahrezriyad-cz.biz
    mahrezriyad-cz.biz
    mahrezriyad-cz.biz
    mahrezriyad-cz.biz
    mahrezriyad-cz.biz
    mahrezriyad-cz.biz
    mahrezriyad-cz.biz
    mahrezriyad-cz.biz
    mahrezriyad-cz.biz

    Reply
  8. take a look at the site here https://galaxyswapper.ru/

    Reply
  9. guimaraesbruno-cz.biz
    guimaraesbruno-cz.biz
    guimaraesbruno-cz.biz
    guimaraesbruno-cz.biz
    guimaraesbruno-cz.biz
    guimaraesbruno-cz.biz
    guimaraesbruno-cz.biz
    guimaraesbruno-cz.biz
    guimaraesbruno-cz.biz
    guimaraesbruno-cz.biz
    guimaraesbruno-cz.biz
    guimaraesbruno-cz.biz
    guimaraesbruno-cz.biz
    guimaraesbruno-cz.biz
    guimaraesbruno-cz.biz

    last news about guimaraes bruno here!

    guimaraesbruno-cz.biz
    guimaraesbruno-cz.biz
    guimaraesbruno-cz.biz
    guimaraesbruno-cz.biz
    guimaraesbruno-cz.biz
    guimaraesbruno-cz.biz
    guimaraesbruno-cz.biz
    guimaraesbruno-cz.biz
    guimaraesbruno-cz.biz
    guimaraesbruno-cz.biz
    guimaraesbruno-cz.biz
    guimaraesbruno-cz.biz
    guimaraesbruno-cz.biz
    guimaraesbruno-cz.biz
    guimaraesbruno-cz.biz

    Reply
  10. [url=https://pluxe.net/mt4i.cgi?id=1&mode=redirect&no=576&ref_eid=554&url=https://toni-kroos-cz.biz]toni-kroos-cz.biz[/url]
    [url=http://www.boutique.aero/regie/adclick.php?bannerid=289&zoneid=0&source=&dest=https://toni-kroos-cz.biz]toni-kroos-cz.biz[/url]
    [url=http://hottopicbaby.net.xx3.kz/go.php?url=https://toni-kroos-cz.biz]toni-kroos-cz.biz[/url]
    [url=http://ombudsman-kursk.ru/redirect?url=https://toni-kroos-cz.biz]toni-kroos-cz.biz[/url]
    [url=http://ukzrs.ru/bitrix/rk.php?goto=https://toni-kroos-cz.biz]toni-kroos-cz.biz[/url]
    [url=http://ww9.love-moms.info/cgi-bin/out.cgi?ses=Q30kf6TkG0&id=38&url=https://toni-kroos-cz.biz]toni-kroos-cz.biz[/url]
    [url=http://labirint.ru.xx3.kz/go.php?url=https://toni-kroos-cz.biz]toni-kroos-cz.biz[/url]
    [url=https://cieslarova.blog.idnes.cz/redir.aspx?url=https://toni-kroos-cz.biz]toni-kroos-cz.biz[/url]
    [url=http://russianvirgin.info/cgi-bin/out.cgi?req=1&t=60t&l=OPEN02&url=https://toni-kroos-cz.biz]toni-kroos-cz.biz[/url]
    [url=http://www.maturesexmature.com/out.php?url=https://toni-kroos-cz.biz]toni-kroos-cz.biz[/url]
    [url=http://missionlaserdentistry.com.xx3.kz/go.php?url=https://toni-kroos-cz.biz]toni-kroos-cz.biz[/url]
    [url=http://foxhead.ru/bitrix/redirect.php?event1=&event2=&event3=&goto=https://toni-kroos-cz.biz]toni-kroos-cz.biz[/url]
    [url=http://ofd27.ru/bitrix/redirect.php?event1=&event2=&event3=&goto=https://toni-kroos-cz.biz]toni-kroos-cz.biz[/url]
    [url=https://devolz.ua/bitrix/redirect.php?goto=https://toni-kroos-cz.biz]toni-kroos-cz.biz[/url]
    [url=http://mupukkr.ru/bitrix/rk.php?goto=https://toni-kroos-cz.biz]toni-kroos-cz.biz[/url]

    last news about toni kroos!

    toni-kroos-cz.biz
    toni-kroos-cz.biz
    toni-kroos-cz.biz
    toni-kroos-cz.biz
    toni-kroos-cz.biz
    toni-kroos-cz.biz
    toni-kroos-cz.biz
    toni-kroos-cz.biz
    toni-kroos-cz.biz
    toni-kroos-cz.biz
    toni-kroos-cz.biz
    toni-kroos-cz.biz
    toni-kroos-cz.biz
    toni-kroos-cz.biz
    toni-kroos-cz.biz

    Reply