DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

2022年1月20日

摘要: 一、前言 写一个用到指针的程序时,被拷贝、赋值、析构函数坑了一波,网上查相关博客,发现关于拷贝、赋值构造函数调用时机大多都有错误,因此决定自己总结撸一发博客。 A (A& a); //拷贝构造函数 A (const A& a); //拷贝构造函数 A& operator= (const A& a); 阅读全文
posted @ 2022-01-20 18:07 DoubleLi 阅读(271) 评论(0) 推荐(0)

摘要: 1. 数据结构定义 1.1 相关基础概念 在阅读 AVFrame 数据结构之前,需要先了解与之相关的几个基础概念(此处只考虑视频相关): pixel_format:像素格式,图像像素在内存中的排列格式。一种像素格式包含有色彩空间、采样方式、存储模式、位深等信息。 bit_depth: 位深,指每个分 阅读全文
posted @ 2022-01-20 15:37 DoubleLi 阅读(180) 评论(0) 推荐(0)

摘要: 视频软件不是仅靠一个FFmpeg就能完成。FFmpeg只包括流的读写及编码解码,其他操作都得靠其他库来实现。比如播放视频需要界面库;播放声音需要播放声音的库或系统API等。所以这一块也是重中之重。下面我介绍几种常用FFmpeg与其他库交互方式。 将avframe与qt互转 AVFrame转QImag 阅读全文
posted @ 2022-01-20 15:29 DoubleLi 阅读(557) 评论(0) 推荐(0)

摘要: 回顾 什么是H.265? 本文在这里就不对H.265做介绍了。感兴趣的朋友可以看下面的文章了解详情。(第一篇是我们在2019年3月发布的文章,距今已有2年,时间过得真快)《Web端H.265播放器研发解密》[1] WebAssembly的发展 看了上面那篇2年前的文章应该清楚了浏览器对于H.265支 阅读全文
posted @ 2022-01-20 15:24 DoubleLi 阅读(1414) 评论(0) 推荐(1)

摘要: 1.FFMPEG下载html 进入http://ffmpeg.org/download.html,若是下载源码,则在右下方:linux 若是在linux中,直接输入git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg下载便可下载库到windows中,则 阅读全文
posted @ 2022-01-20 11:51 DoubleLi 阅读(608) 评论(0) 推荐(0)

摘要: 1.封装格式MPEG-4其中 MPEG-1 和 MPEG-2 是采用相同原理为基础的预测编码、变换编码、 熵编码及运动补偿等第一代数据压缩编码技术;MPEG-4(ISO/IEC 14496)则是基于第二代压缩编码技术制定的国际标准,它以视听媒体对象为基本单元,采用基于内容的压缩编码,实现数字视音频、 阅读全文
posted @ 2022-01-20 11:50 DoubleLi 阅读(153) 评论(0) 推荐(0)

摘要: 头文件位于 #include <libswresample/swresample.h> SwrContext经常使用函数以下所示 SwrContext *swr_alloc(void); //建立一个SwrContext,并设置为默认参数 struct SwrContext *swr_alloc_s 阅读全文
posted @ 2022-01-20 11:49 DoubleLi 阅读(237) 评论(0) 推荐(0)

摘要: AVCodecContext AVCodecContext 结构表示程序运行的当前 Codec 使用的上下文,着重于全部 Codec 共有的属性(而且是在程序运行时才能肯定其值)和关联其余结构的字段。 extradata 和 extradata_size 两个成员表述了相应 Codec 使用的私有数 阅读全文
posted @ 2022-01-20 11:48 DoubleLi 阅读(190) 评论(0) 推荐(0)

摘要: AVStream和AVCodecParameters 说明: AVStream 结构表示当前媒体流的上下文,着重于全部媒体流共有的属性(而且是在程序运行时才能肯定其值)和关联其余结构的字段。 其中codecpar成员里存储了当前音视频媒体使用的编解码器信息; priv_data 成员关联解析各个具体 阅读全文
posted @ 2022-01-20 11:46 DoubleLi 阅读(401) 评论(0) 推荐(0)

摘要: AVFormatContext: 用来存储视音频封装格式(flv,mp4,rmvb,avi)中包含的全部信息 不少函数都要用到它做为参数。ide AVFormatContext结构体以下所示(显示部分红员,后续深刻添加):函数 typedef struct AVFormatContext { con 阅读全文
posted @ 2022-01-20 11:43 DoubleLi 阅读(165) 评论(0) 推荐(0)

摘要: 1.使用注意api AVPacket须要用户经过av_packet_allc()建立好空间后.才能供给fimpeg进行获取解码前帧数据,因为解码前帧数据大小是不固定的(好比I帧数据量最大)因此ffmpeg会在AVPacket的成员里动态进行建立空间. 而且咱们每一次使用完AVPacket后(再次调用 阅读全文
posted @ 2022-01-20 11:41 DoubleLi 阅读(488) 评论(0) 推荐(0)

摘要: 在ffmpeg中,解码前的数据结构体为AVPacket(参考:3.AVPacket使用),而解码后的数据为AVFrame(视频的YUV, RGB, 音频的PCM,数据量更大)html 1.AVFrame介绍数组 AVFrame必须使用av_frame_alloc()来分配。注意,这只是分配AVFra 阅读全文
posted @ 2022-01-20 11:40 DoubleLi 阅读(185) 评论(0) 推荐(0)

摘要: 最近发现了ffmpeg有个网页版的文档,分享给大家:ffmpeg文档,查询起来看是挺方便的。现在才发现,是不是有点太晚了? 之前都是直接看源码上的注释,反过来想想,那些注释写的也都听清晰易懂的哈(自我安慰)。 AVFrame AVFrame结构体描述了解码后的(原始)音频或视频数据。 AVFrame 阅读全文
posted @ 2022-01-20 11:27 DoubleLi 阅读(514) 评论(0) 推荐(0)

摘要: ffmpeg、ffplay 自己学习记录,方便以后查看。 ffmpeg关键结构体类型: 1)解协议 AVIOContext,URLProtocol,URLContext主要存储视音频使用的协议的类型以及状态。URLProtocol存储输入视音频使用的封装格式。 每种协议都对应一个URLProtoco 阅读全文
posted @ 2022-01-20 11:21 DoubleLi 阅读(153) 评论(0) 推荐(0)