![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
解码
文章平均质量分 50
TopsLuo
朽木可雕
展开
-
利用ffmpeg中的libswresample模块对音频进行重采样
在工作中,需要对音频进行重采样,比如说采样率为44.1kHz变为48kHz,通过研究ffmpeg中提供的例子,自己写了一段测试代码,贴出来供大家参考(当然,重采样还有另外一种方法,就是用ffmpeg中的libavfilter模块,后面我也会把该方法的代码贴出来)。测试代码仅测试过AAC格式,其它格式需要稍加改动(主要在fwrite的那一段,AAC解码出来的format为FLTP类型,如果不是该格式原创 2017-05-27 14:23:59 · 2223 阅读 · 0 评论 -
音频重采样(libavfilter)及AVAudioFifo的使用
前面有提到过,ffmpeg音频重采样有多种方法,一种是libswresample,另外一种是libavfilter,前一种方法已经介绍过,现在介绍使用libavfilter的方法,并把filter处理后的数据写入AVAudioFifo中,再从fifo中读取一帧音频数据(因为经过filter重采样的数据长度会发生变化,可能比一帧长,也可能比一帧短,具体看是上采样还是下采样了)并存储到AVFrame结构原创 2017-05-27 16:39:43 · 2935 阅读 · 3 评论 -
利用ffmpeg解码h264裸流并存储成YUV420
此处用的ffmpeg版本为3.2.2。 例子是在linux下所写的,大致流程如下:初始化ffmpeg库创建YUV文件,用于存储解码后的YUV数据初始化H264解码器给解码器的一些结构变量赋值打开解码器打开H264裸流文件读取一定数据的h264数据(因为不知道一帧到底有多大)调用ffmpeg函数,循环分析读取到的数据,每循环一次得到一帧数据,然后调用解码器解码,并存储成YUV420文原创 2017-07-04 10:18:42 · 3518 阅读 · 3 评论 -
ffmpeg命令行接收rtmp的问题
在使用ffmpeg的命令行接收rtmp流的过程中发现无法正常接收,出现如下问题:topsluo@localhost:~/workspace/ffmpeg-3.2.2$ ./ffmpeg -live 1 -i rtmp://192.168.10.230:1935/live/test test.ts ffmpeg version 3.2.2 Copyright (c) 2000-2016...原创 2018-04-03 17:40:46 · 5106 阅读 · 2 评论 -
avcodec_copy_context函数引发的问题
在FFmpeg库中,有一个旧的API函数:avcodec_copy_context,主要的功能就是编码参数上下文的拷贝,函数原型如下:int avcodec_copy_context(AVCodecContext *dest, const AVCodecContext *src);原创 2018-04-28 09:58:07 · 3000 阅读 · 0 评论 -
C++实现base64编解码
将昨天的php代码改造成C++/*base_64.h文件*/#ifndef BASE_64_H#define BASE_64_H/** * Base64 编码/解码 * @author liruixing */class Base64{private: std::string _base64_table; static const char base64_pad ...转载 2018-10-17 11:20:37 · 1236 阅读 · 1 评论