ffmpeg api和结构体介绍
Lammyzp
这个作者很懒,什么都没留下…
展开
-
ffmpeg 编译android so库文件
ffmpeg for android 编译so库文件ffmpeg是现在主流播放器和直播软件中常用的库,主要用于视频的编解码,下面主要介绍一下,ffmpeg如何在android平台上使用。ffmpeg想在android上使用,一般都是在官网下载源码,然后编译成相应的so库。参考了好几篇网上的博客,利用其提供的shell脚本编译,总是报 文件找不到或者编译参数错误:Unknown opti...原创 2018-09-01 17:41:33 · 6104 阅读 · 9 评论 -
ffmpeg 音频重采样SwrContext
SwrContext重采样上下文创建分配空间SwrContext *swrContext = swr_alloc();设置参数struct SwrContext *swr_alloc_set_opts(struct SwrContext *s, int64_t out_ch_layout, enum ...原创 2019-04-01 14:48:00 · 728 阅读 · 0 评论 -
ffmpeg 视频像素尺寸转换SwsContext、sws_scale 函数解释
函数介绍SwsContext格式转换的上下文,下面是初始化函数struct SwsContext *sws_getContext(int srcW, int srcH, enum AVPixelFormat srcFormat, int dstW, int dstH, enum AVPixelFormat dst...原创 2019-04-01 12:24:13 · 1581 阅读 · 0 评论 -
ffmpeg 新版本avcodec_send_packet 和avcodec_receive_frame实现解码
ffmpeg解码现在完全放在后台去做了,现在分为2个步骤avcodec_send_packet 发送数据到ffmepg,放到解码队列中avcodec_receive_frame 将成功的解码队列中取出1个frameint avcodec_send_packet(AVCodecContext *avctx, const AVPacket *avpacket)avpacket ...原创 2019-04-01 10:01:48 · 25331 阅读 · 6 评论 -
ffmepg AVFrame用法
空间分配类似于AVPacket,采用的引用计数。常用参数uint8_t *data[AV_NUM_DSTS_POINTERS] 数据。int linesize[AV_NUM_DSTS_POINTERS] 视频:一行数据大小,音频:一个通道的数据(防止视频 字节对齐)int width height; 视频的宽高int nb_samples 音频单通道的样本数量 ,单通道一...原创 2019-04-01 09:28:57 · 3581 阅读 · 0 评论 -
ffmpeg AVCodec 和 AVCodecContext 用法
AVCodecavcodec_register_all 注册解码器AVCodec *avcodec_find_decoder(enum AVCodecID id) 初始化 解码器AVCodec *avcodec_find_decoder_by_name(const char *name) 通过名字来查找解码器。andoird cpu中集成有专门处理音视频的部分,且只提供了java的接...原创 2019-03-31 17:11:55 · 5023 阅读 · 0 评论 -
ffmpeg av_seek_frame解释
原型int av_seek_frame(AVFormatContext *s, int stream_index, int64_t timestamp, int flags);参数解释:AVFormatContext *s, 解码的格式上下文int stream_index, 默认-1 指按照视频时间来移动int64_t timesta...原创 2019-03-31 16:02:17 · 2711 阅读 · 1 评论 -
ffmpeg AVPacket 解释常用函数
AVPacket 结构体解释AVBUffer/ref *buf : AVPacket采用的是引用计数,每次 AVPacket的时候把引用加一。int64_t pts 显示时间, 计算方法 pts * num/den)int64_t dts解码时间 因为b帧 有前后依赖帧率,先解码可能后显示,所以ffmpeg解码时候按照dts 时间解码 ,按照pts来显示.uint8...原创 2019-03-31 15:32:02 · 2013 阅读 · 0 评论 -
ffmepg 获取视频音频流索引的2种方式
遍历流的方式 AVFormatContext *ic = NULL; int re = avformat_open_input(&ic,videoPath,0,0); int vedioStream = 0; int audioStream = 0; for(int i= 0; i < ic->nb_streams; i++) { AVSt...原创 2019-03-31 14:36:15 · 1211 阅读 · 0 评论 -
ffmpeg AVStream解释
AVStream 包含音频和视频的一些参数。参数AVCodecContext * codec: 3.2版本后弃用了。这里弃用主要是要将 解封装 和 解码 隔离。编码时候要用到解码时的cedec参数,这里可以用AVCodecParameters使用int avcodec_parameters_to_context(AVCodecContext *codec,const AVCodecPar...原创 2019-03-31 13:37:30 · 1355 阅读 · 0 评论 -
ffmpeg AVFormatContext结构体常用参数解释
AVFormatContext结构体AVIOContext *pb; 自定义读写格式时,从内存中度,就要看这个结构体,会用到他。char filename[1024]; 视频的url,方便断开重连。AVStream **stream;音频或者视频的信息,如宽高、帧率。时长。里面时长,但时间基数不一样,且音频和视频的时间基数也不一定相同。int64_t duration;总...原创 2019-03-31 13:08:08 · 1473 阅读 · 0 评论 -
ffmpeg avformat_open_input函数解释
avformat_open_input原型/** * Open an input stream and read the header. The codecs are not opened. * The stream must be closed with avformat_close_input(). * * @param ps Pointer to user-supplied...原创 2019-03-31 12:52:28 · 3325 阅读 · 0 评论 -
FFmpeg 编译的so和include在android studio中的使用
FFmpeg 在 android studio中的使用上一篇博客讲了如何编译ffmpeg,产生适合在android上调用的so库文件和include头文件,下面讲讲如何在android studio中使用这些库文件来进行ndk开发1、新建android 项目**,注意勾选支持c/c++,然后将编译好的文件拷贝到libs目录下: 2、拷贝带版本号的库文件到libs/armeab...原创 2018-09-01 18:55:47 · 1480 阅读 · 0 评论 -
ffmpeg 常用函数说明
初始化部分函数1、初始化所有封装和解封装 flv mp4 mov mp3av_register_all();2、初始化网络库avformat_network_init();open部分打开输入设备int avformat_open_input(AVFormatContext **ps, const char *url, AVInputFormat *fmt...原创 2019-04-30 17:10:51 · 1004 阅读 · 0 评论