摘要:AVStream和AVCodecParameters 说明: AVStream 结构表示当前媒体流的上下文,着重于全部媒体流共有的属性(而且是在程序运行时才能肯定其值)和关联其余结构的字段。 其中codecpar成员里存储了当前音视频媒体使用的编解码器信息; priv_data 成员关联解析各个具体
阅读全文
随笔分类 - ffmpeg、ffplay
摘要:AVFormatContext: 用来存储视音频封装格式(flv,mp4,rmvb,avi)中包含的全部信息 不少函数都要用到它做为参数。ide AVFormatContext结构体以下所示(显示部分红员,后续深刻添加):函数 typedef struct AVFormatContext { con
阅读全文
摘要:1.使用注意api AVPacket须要用户经过av_packet_allc()建立好空间后.才能供给fimpeg进行获取解码前帧数据,因为解码前帧数据大小是不固定的(好比I帧数据量最大)因此ffmpeg会在AVPacket的成员里动态进行建立空间. 而且咱们每一次使用完AVPacket后(再次调用
阅读全文
摘要:在ffmpeg中,解码前的数据结构体为AVPacket(参考:3.AVPacket使用),而解码后的数据为AVFrame(视频的YUV, RGB, 音频的PCM,数据量更大)html 1.AVFrame介绍数组 AVFrame必须使用av_frame_alloc()来分配。注意,这只是分配AVFra
阅读全文
摘要:最近发现了ffmpeg有个网页版的文档,分享给大家:ffmpeg文档,查询起来看是挺方便的。现在才发现,是不是有点太晚了? 之前都是直接看源码上的注释,反过来想想,那些注释写的也都听清晰易懂的哈(自我安慰)。 AVFrame AVFrame结构体描述了解码后的(原始)音频或视频数据。 AVFrame
阅读全文
摘要:ffmpeg、ffplay 自己学习记录,方便以后查看。 ffmpeg关键结构体类型: 1)解协议 AVIOContext,URLProtocol,URLContext主要存储视音频使用的协议的类型以及状态。URLProtocol存储输入视音频使用的封装格式。 每种协议都对应一个URLProtoco
阅读全文
摘要:一、介绍 在ffmpeg中,每帧都会存在一个pts用来表示该帧图像在视频流中的位置。而在多路流(比如视频、音频)时,往往需要进行多媒体的同步,使得画面和声音同步,这时便需要使用两者的pts来做同步。那么pts是如何计算得到的呢,如何使用它做同步呢? 1.1 时间基转换 ffmpeg中时间存在一个基,
阅读全文
摘要:最近编码的时候发现生成的视频不能用Windows Media Player等系统自带的播放器播放,也没有缩略图。找了很久,最后才发现在avcodec_open2之前添加一行代码就行了: codec_ctx->flags |= AV_CODEC_FLAG_GLOBAL_HEADER; 调用该行代码后,
阅读全文
摘要:参考http://blog.csdn.net/leixiaohua1020/article/details/11800877 H.264码流第一个 NALU是 SPS(序列参数集Sequence Parameter Set) 对应H264标准文档 7.3.2.1 序列参数集的语法进行解析 H.264
阅读全文
摘要:在使用FFMPEG的类库进行编程的过程中,可以直接输出解复用之后的的视频数据码流。只需要在每次调用av_read_frame()之后将得到的视频的AVPacket存为本地文件即可。 经试验,在分离MPEG2码流的时候,直接存储AVPacket即可。 在分离H.264码流的时候,直接存储AVPacke
阅读全文
摘要:本文是“FFmpeg从入门到精通”系列的第三篇,由金山云供稿,并授权LiveVideoStack发布。此前两篇为FFmpeg代码导读——基础篇和FFmpeg代码导读——HEVC在RTMP中的扩展。FFmpeg广泛应用与音视频领域,被誉为音视频开发的“瑞士军刀”。“FFmpeg从入门到精通”系列将由浅
阅读全文
摘要:4. HEVC在RTMP中的扩展 为推进HEVC视频编码格式在直播方案中的落地,经过CDN联盟讨论,并和主流云服务厂商达成一致,规范了HEVC在RTMP/FLV中的扩展,具体修改内容见下。 4.1 FLV规范扩展 HEVC为视频编码格式,因此对FLV规范的扩展,只集中在Video Tag,其它部分,
阅读全文
摘要:从事音视频技术开发对FFmpeg都不会感到陌生,通过它可以完成音视频采集、编解码、转码、后处理以及流媒体服务等诸多的功能,可以说涵盖了音视频开发中绝大多数的领域。金山云多媒体SDK团队在移动直播、短视频等项目中遇到了许多问题,本文为《FFmpeg从入门到出家》系列的第一篇上半部分,由LiveVide
阅读全文
摘要:本文基于 FFmpeg 4.1 版本。 1. 数据结构定义 1.1 相关基础概念 在阅读 AVFrame 数据结构之前,需要先了解与之相关的几个基础概念(此处只考虑视频相关): pixel_format:像素格式,图像像素在内存中的排列格式。一种像素格式包含有色彩空间、采样方式、存储模式、位深等信息
阅读全文
摘要:struct AVFrame{uint8_t *data[4];分别指向yuv三个位面及一个未知的位面或者是rgb模式下只有data[0]指向raw dataint linesize[4];四个位面分别的内存块大小}AVFrame *avcodec_alloc_frame() //Allocates
阅读全文
摘要:文档来源:http://www.ffmpeg.org/ffmpeg-filters.html#Description 1 Description This document describes filters, sources, and sinks provided by the libavfilt
阅读全文
摘要:方法一方法是设置超时参数 AVFormatContext *pAVFormatContext = avformat_alloc_context();//申请一个AVFormatContext结构的内存,并进行简单初始化 AVDictionary* options = NULL; av_dict_se
阅读全文
摘要:FFmpeg长时间无响应的解决方法需要解决的问题1、FFmpeg去连接的时候相机不在线导致avformat_open_input等函数一直死等,造成程序卡死 2、av_read_frame的过程中相机断开连接导致读取码流一直死等 解决方法打开流媒体之前注册FFmpeg回调函数 AVFormatCon
阅读全文
摘要:在上一篇FFMPEG实时解码网络视频流中使用av_parser_parse2来组合数据包,判断是否已经得到一帧数据,但如果多媒体流中混合音频和视频,这种方法似乎走不通。 下面使用另一种方法实现,先初始化: int CTcpH264Dlg::InitDecode(){ av_register_all(
阅读全文
摘要:从内存中读取数据 ffmpeg一般情况下支持打开一个本地文件,例如“C:\test.avi” 或者是一个流媒体协议的URL,例如“rtmp://222.31.64.208/vod/test.flv” 其打开文件的函数是avformat_open_input(),直接将文件路径或者流媒体URL的字符串
阅读全文