ffmpeg学习笔记
树叶-梨花
挺好
展开
-
H264 AVCC 格式转 ANNEX B格式
概述有很多封装格式的H264码流采用的是AVCC格式。有些硬件编码器仅支持ANNEX B格式的H264码流,因此就需要做一次中转,本示例主要展示如何转换。代码#include <stdio.h>#include <string.h>#include <stdlib.h>#include <stdint.h>#define NALU_T...原创 2020-04-21 15:40:19 · 9318 阅读 · 0 评论 -
FFMPEG Codec capabilities笔记
概述在ffmpeg音频编码中,有些编码器支持任意数量的音频样本(如,ALAW),还有些则仅支持固定长度的音频样本(如,AAC)。这些区别则可以通过codec->capabilities标记进行解读。AV_CODEC_CAP_VARIABLE_FRAME_SIZE如果编码器的capabilities字段含有该标记,则表示输入编码器的样本数量是可变的。否则则必须依照编码器的frame_si...原创 2019-12-12 10:24:29 · 1247 阅读 · 0 评论 -
G711/G726编解码示例
概述本文基于ffmpeg,演示g711a,g711u,g726,g726le的编码以及编码后的文件如何播放测试。g711本质还是pcm,不过是将16位带符号pcm数据压缩为8位pcm数据。g711a是取s16le格式的高13位;g711u则是取s16le格式的高14位。实际压缩比是2:1,具体压缩算法可参考如下博客:https://blog.csdn.net/q2519008/article/...原创 2019-12-11 16:37:25 · 3696 阅读 · 0 评论 -
ffmpeg播放帧率控制
概述30帧/秒的视频,如果解码性能足够块(比如RK3399解码可达到61帧/秒),那么ffplay播放时,是如何控制帧率为30帧/秒呢?本文就是为了解开该谜团。封装音视频在通过封装器封装时,都必须告诉封装器自己的帧率(采样率/bit rate),然后封装器根据帧率计算每帧的时间戳间隔。比如如下视频帧30帧/秒:frame0 pts:00msframe1 pts:33msfarme2 ...原创 2019-12-06 19:49:15 · 5923 阅读 · 0 评论 -
FFMPEG演示教程——ResamplingAudio
概述本示例基于ffmpeg的resampling_audio.c示例,增加了Plane模式的支持以及将程序接口化。Plane格式的介绍可以参照博文:音频格式解析:交错模式 vs Plane模式。基于下文中代码,可实现AV_SAMPLE_FMT_S16转AV_SAMPLE_FMT_S16P,当然稍作修改,也可实现AV_SAMPLE_FMT_S16转AV_SAMPLE_FMT_FLTP。非Pla...原创 2019-11-14 20:09:09 · 461 阅读 · 0 评论 -
音频格式解析:交错模式 vs Plane模式
概述音频中我们常见格式如下所示,其中我们注意有些音频格式中带了“P”,比如AV_SAMPLE_FMT_S16P则表示带符号的16位Plane模式。本文我们重点讲述“交错模式”与“Plane模式”下,音频文件内各个Channel组织形式。并附带讲述下FFMPEG中frame结构对这两种格式的管理。enum AVSampleFormat { AV_SAMPLE_FMT_NONE = -1,...原创 2019-11-14 10:34:12 · 1687 阅读 · 0 评论 -
ffmpeg mux时间戳介绍
概述ffmpeg提供了很多官方demo,路径:ffmpeg-4.1.3/doc/examples。编译方法:make examples。本文讲述muxing.c这个示例,重点解析时间戳的生成。使用命令:muxing test.mp4,自动填充video和audio数据,并在当前路径下生成test.mp4文件。前提知识AVStream中的time_base以秒为单位,表示封装格式的采样率...原创 2019-11-11 22:13:19 · 866 阅读 · 0 评论 -
ffplay 外部时钟同步的原理
概述ffplay有三种同步方式:1、音频作为主时钟;2、视频作为主时钟;3、外部时钟源作为主时钟。默认的同步方式为“音频作为主时钟”方式,具体代码分析可查阅:https://blog.csdn.net/lyy901135/article/details/95307111音频作为主时钟时,视频pts向音频的pts看齐,若视频播放延迟,则需进行丢帧处理。视频作为主时钟时,音频需向视频的pts看齐,...原创 2019-08-09 15:38:18 · 1454 阅读 · 0 评论 -
ffplay 音视频同步的源码分析
看了多数博文都是针对ffplay主体框架的介绍。关于ffplay源码分析,本文推荐叶余老师的文章:https://www.cnblogs.com/leisure_chn/p/10301831.html上文中对ffplay源码分析很到位,也很透彻。本文主要总结下博主自己对帧同步原理的理解,以及对代码中serial字段进行说明。ffplay帧同步原理每个音频/视频帧都有pts(presenta...原创 2019-07-10 15:25:12 · 1738 阅读 · 0 评论 -
ffmpeg example演示教程 -VideoDecode
FFMPEG Example-01 decode_video.c本人刚开始学习ffmpeg,写此博客作为笔记,也希望能帮助其他刚入门的童鞋!ffmpeg源码下载和编译本文就直接跳过,源码doc/example路径下有很多demo,可以为我们演示ffmpeg的api如何使用,对我们理解ffmpeg的api有很大帮助。本文将介绍decode_video.c如何编译使用。代码主体框架:1、根据Co...原创 2019-07-09 11:32:09 · 2590 阅读 · 0 评论 -
ffmpeg example演示教程 -AudioDecode
FFMPEG Example-01 audio_codec.c本人刚开始学习ffmpeg,写此博客作为笔记,也希望能帮助其他刚入门的童鞋!ffmpeg源码下载和编译本文就直接跳过,源码doc/example路径下有很多demo,可以为我们演示ffmpeg的api如何使用,对我们理解ffmpeg的api有很大帮助。本文将介绍audio_codec.c如何编译使用。因测试方便,我修改了部分代码用于...原创 2019-07-08 18:19:49 · 1273 阅读 · 0 评论