视频处理
timesir
授人以鱼,不若授人以渔
展开
-
使用ffmpeg接口将h.264解码为YUV
目录1. 参数传递和解析2. 按照要求初始化需要的FFMpeg结构2.1. 第一步: 获取解码器指针。根据编解码器ID,获取编解码器指针2.2. 第二步: 获取解码器上下文。AVCodecContext实例。通过编解码器AVCodec指针,获取编解码器上下文2.3. 第三步: 设置 AVCodecContext可以截断方式读取数据2.4. 第四步: 打开解码器,不需要像编码一样设置 AVC原创 2017-10-07 13:48:37 · 963 阅读 · 0 评论 -
使用ffmpeg接口解封装解码为YUV
目录1. 第一步: 相关结构的初始化1.1. 第一步: 通过打开文件获取 AVFormatContext(解封装输入文件格式)1.2. 第二步: 通过打开文件的 AVFormatContext,获取音频和视频AVStream1.3. 第三步: 获取音频和视频解码器上下文和解码器实例1.4. 整体初始化的函数代码为1.5. 分配AVFrame和初始化AVPacket对象:2. 第二步: 循原创 2017-10-06 11:38:37 · 803 阅读 · 0 评论 -
怎样判断ffmpeg接口是线程安全的?
文档中一般会有警告信息,比如avcodec_open2 ffmpeg中线程不安全函数的处理方式 http://stackoverflow.com/questions/13888915/thread-safety-of-libav-ffmpeg 安装库的时候定义默认的锁自己写程序使用av_lockmgr_register(lockmgr)https://www.ffmpeg.org/dox原创 2017-10-06 11:35:55 · 1667 阅读 · 0 评论 -
FFmpeg网络传输协议
目录1. 抓流和推流2. 各种协议比较抓流和推流视频直播中说的抓流和推流,是什么意思,两种有什么区别? - 知乎 各种协议比较RTMP直播应用与延时分析-andersonyan-ChinaUnix博客 关于直播,所有的技术细节都在这里了(二) | U刻 直播服务器简单实现 http_flv和hls 内网直播桌面 - lucpp - 博客园 直播协议的选择:RTMP vs. HLS - 推原创 2017-10-06 10:53:27 · 2123 阅读 · 0 评论 -
FFmpeg框架解析及核心数据结构
目录1. ffmpeg关键数据结构及对应的协议层2. 协议层(http,rtsp,rtmp,mms)3. 封装层(flv,avi,rmvb,mp4)3.1. 解封装3.2. 封装3.3. 主要结构体及初始化3.3.1. AVFormatContext主要存储视音频封装格式中包含的信息(非常重要,包含封装层、编码层)3.3.2. AVStream是视频文件中某一音频流或者视频流的抽象。3原创 2017-10-06 10:47:33 · 1369 阅读 · 0 评论 -
FFmpeg常用命令
目录1. 视频解封装,提取音频或者视频数据1.1. 分离视频中的音频和视频数据。提取的视频与源视频使用相同编码器,舍弃音频数据1.2. 分离视频中的音频和视频数据。提取的音频与源视频中音频使用相同编码器,舍弃视频数据1.3. 从某时间间隔,剪切一段视频。目标与源使用相同的编码器。1.4. 从视频文件中抽取出可以播放的h.2642. 视频格式转换2.1. 使用ffmpeg默认的目标文件编码器原创 2017-10-06 10:38:41 · 3626 阅读 · 0 评论 -
视频基础知识
目录1. 改变帧率并不会改变视频的播放速度2. 码率和比特率是同义词改变帧率并不会改变视频的播放速度60fps 转为 10fps,只是每秒显示的图片变少了,会有卡顿的感觉 ffmpeg -i 1.mp4 -r 60 output.mp4 码率和比特率是同义词每秒视频含有的bit个数 可以通过码率计算出文件大小 ffmpeg-比特率,帧率和文件大小 - BIGBurning - CSDN博原创 2017-10-06 10:30:09 · 494 阅读 · 0 评论 -
YUV基础知识
目录1. BMP格式2. YUV格式BMP格式BMP 使用 R、G、B三种颜色表示一个像素点 YUV格式YUV 使用一个亮度分量与两个色度分量表示一个像素点。 亮度分量与色度分量的采样分辨率可以是一致的,也可以不是一致的。 YUV420格式中,每4个Y像素对应一个U像素和一个V像素。即,只有图像本身分辨率的四分之一。原创 2017-10-06 10:24:02 · 231 阅读 · 0 评论 -
pcm基础知识
目录1. pcm格式信息2. pcm格式pcm格式信息物理编码方式: 有符号16位(s16) 字节序: 小端(le) 声道数: 视频中音频的声道数 采样频率: 视频中音频的采样率pcm格式PCM文件格式简介_百度文库原创 2017-10-06 10:22:10 · 1118 阅读 · 0 评论 -
ffmpeg IO抽象层次讲解
ffmpeg IO抽象,AVIOContext扩展自定义IO原创 2017-10-05 16:29:55 · 1513 阅读 · 0 评论 -
使用ffmpeg接口将YUV编码为h.264
目录1. 第一步: 解析数据参数2. 第二步: 按要求初始化ffmpeg结构2.1. 第一步: 根据编解码器ID,获取编解码器指针2.2. 第二步: 获取AVCodecContext实例。通过编解码器AVCodec指针,获取编解码器上下文2.3. 第三步: 设置编码器参数2.4. 第四步: 根据AVCodec和AVCodecContext实例,打开编码器2.5. 第五步:配置编码的输入数原创 2017-10-07 13:55:29 · 1297 阅读 · 0 评论 -
使用ffmpeg接口将YUV编码封装为文件
目录1. 第一步: 初始化相关结构体1.1. 第一步: 手动创造 AVFormatContext(封装输出文件格式)1.2. 第二步: 设置stream的id和codec等参数1.3. 第三步: 打开编码音视频数据所需要的编码器1.4. 第四步: 分配相应的frame对象 为frame分配空间1.5. 打开音视频,分配frame对象的代码2. 第二步: 打开输出文件并写入文件头3. 第原创 2017-10-06 11:42:25 · 661 阅读 · 0 评论