![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
音视频开发
文章平均质量分 64
音视频基础知识和FFMPEG
打打打劫
这个作者很懒,什么都没留下…
展开
-
二、基于QT_SDL渲染像素格式
本章目标:RGB与YUV的原理SDL渲染图像的方法QT渲染图像的方法SDL与QT结合渲染图像的方法刷新SDL渲染的方式面向对象工厂模式封装方法窗口大小的变化与抗锯齿的处理RGB像素格式原理RGB与YUV像素格式基础1. 渲染RGB像素格式1.1 通过SDL渲染SDL窗口创建SDL的窗口、渲染器、纹理创建RGB图像数据纹理通过渲染器渲染RGB数据到窗口#include <iostream>#include <sdl/SDL.h>using na原创 2021-03-12 23:14:22 · 606 阅读 · 0 评论 -
五、视频编码
1. 视频编码原理视频编码原理,详见音视频开发基础2. AVPacketAVPacket结构体,详见AVpacket结构体3. x264 / x265编码参数设置x264、x265编码器码率控制:ABR、CQB、CBR、CBF、VBV详见码率控制#include <iostream>#include <fstream>extern "C"{#include <libavcodec/avcodec.h>#include <libavutil原创 2021-03-20 19:16:31 · 349 阅读 · 0 评论 -
一、FFmpeg简介
一、FFmpeg简介1. ffmpeg/ffplay/ffprobe1.1 概念ffmpeg: Hyper fast Audio and Video encoder 超快音视频编码器ffplay: Simple media player 简单媒体播放器ffprobe: Simple multimedia streams analyzer简单多媒体流分析器1.2 帮助文档ffmpeg◼基本信息:ffmpeg -h◼高级信息:ffmpeg -h long◼所有信息:ffmpeg -h原创 2021-05-24 22:23:24 · 6400 阅读 · 0 评论 -
三、AVFrame渲染
目标:AVFrame结构体的成员含义AVFrame的内存分析:引用计数与字节对齐将文件中YUV数据存储到AVFrame中,并将AVFrame中的YUV渲染出来帧率的控制策略方式、精确控制的方式通过多线程控制渲染界面上设置并显示fps的方法。1. AVFrame结构体和相关接口1.1 AVFrame基本介绍AVFrame结构体结构体成员uint8_t *data[AV_NUM_DATA_POINTERS]; AV_NUM_DATA_POINTERS的数值为8实际上data中存放着原创 2021-03-13 01:42:16 · 760 阅读 · 0 评论 -
六、视频解码
1. 相关APIAVCodec *avcodec_find_decoder(enum AVCodecID id)AVCodecContext *avcodec_alloc_context3(const AVCodec *codec)设置上下文时,无需设置参数,因为解码后会根据sps、pps获取int avcodec_open2(AVCodecContext *avctx, const AVCodec *codec, AVDictionary **options)int avcodec_send_p原创 2021-03-25 17:18:17 · 123 阅读 · 0 评论 -
八、解封装rtsp及录制视频
1. 用VLC模拟一个rtsp服务器创建rtsp服务器2. 接收rtsp数据原创 2021-09-03 19:52:01 · 917 阅读 · 0 评论 -
四、像素格式转换和多路渲染
1. RGB与YUV格式互转1.1 相关API创建上下文struct SwsContext *sws_getCachedContext( struct SwsContext *context, //转换上下文,NULL新创建,非NULL判断与现有参数是否一致,一致则返回,不一致则重新创建 int srcW, int srcH, enum AVPixelFormat srcFormat, int dstW, int dstH, enum AVPixelFormat dstF原创 2021-03-16 22:12:19 · 198 阅读 · 0 评论 -
七. 封装解封装
1. MP4格式分析参考MP4格式分析2. 相关API及数据结构//打开要读取的文件,获得上下文int avformat_open_input( AVFormatContext **ps, //上下文 const char *url, //文件路径 ff_const59 AVInputFormat *fmt, //输入的格式 AVDictionary **options //选项);//获取ic的信息int avformat_find_stream_info(原创 2021-03-30 19:52:29 · 216 阅读 · 0 评论 -
FLV协议分析
FLV = FLV Header + FLV Body1. FLV HeaderFLV Header: 头三个字节为‘F‘ ’L’ ‘V’ 三个字节、版本、类型、偏移2. FLV BodyFLV Body:包括pre tagsize 和 tag2.1 pre tagsizepre tagsize代表了前一个tag的大小,tag代表当前的数据2.2 Tag Header2.3 Tag Body2.3.1 Script Tag DataScript data: MetaData T.原创 2021-02-27 17:27:12 · 725 阅读 · 0 评论 -
NALU header含义
为了防止自己找不到原文,所以保存。原文:点击打开链接一、序言h264常见的帧头数据为:00 00 00 01 67 (SPS)00 00 00 01 68 (PPS)00 00 00 01 65 ( IDR 帧)00 00 00 01 61 (P帧)等等,那么他们代表的意思是什么呢?二、start...转载 2021-02-04 22:30:51 · 747 阅读 · 0 评论 -
音视频基础
1. 环境配置1-1. Linux环境变量PAHT:命令查找的路径pkc-config --libs --cflags libavutil #libs-查看库 cflags-查看头文件 PKG_CONFIG_PATH:头文件和库文件查找的路径无论path环境变量还是pcg_config都需要在~/.bash_profile文件中设置export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/ffmpeg/lib/pkgconfig:/usr/local原创 2020-09-15 15:22:26 · 705 阅读 · 0 评论 -
SDL基础
1. 概述SDL将功能分成下列数个子系统(subsystem):◼ SDL_INIT_TIMER:定时器◼ SDL_INIT_AUDIO:音频◼ SDL_INIT_VIDEO:视频◼ SDL_INIT_JOYSTICK:摇杆◼ SDL_INIT_HAPTIC:触摸屏◼ SDL_INIT_GAMECONTROLLER:游戏控制器◼ SDL_INIT_EVENTS:事件◼ SDL_INIT_EVERYTHING:包含上述所有选项音视频主要关注定时器、视频、音频、事件子系统2. window原创 2021-02-24 21:40:15 · 507 阅读 · 0 评论