频道栏目
首页 > 程序开发 > 综合编程 > 其他综合 > 正文
swr_convert函数介绍
2017-01-02 09:39:00           
收藏   我要投稿

由于ffmpeg最新版本(从2.1开始貌似)使用avcodec_decode_audio4函数来解码音频,但解码得到的数据类型为float 4bit,而播放器播放的格式一般为S16(signed 16bit),就需要对解码得到的数据进行转换,然而,ffmpeg已经帮我们做好了,只需调用API就可以了,这个函数就是:swr_convert

以下为从ffmpeg官网的复制:

原型:int swr_convert(structSwrContext*s, uint8_t**out, intout_count, constuint8_t**in, intin_count)

Convert audio.

in and in_count can be set to 0 to flush the last few samples out at the end.

If more input is provided than output space then the input will be buffered. You can avoid this buffering by providing more output space than input.

Convertion will run directly without copying whenever possible.

in和in_count可设置为0,把最后几个样本冲洗出来。

如果提供更多的输入比输出空间,则输入将被缓冲。您可以通过提供比输入更多的输出空间来避免这种缓冲.

转换将直接运行尽可能不复制。

sallocated Swr context, with parameters set

outoutput buffers, only the first one need be set in case of packed audio

out_countamount of space available for output in samples per channel

ininput buffers, only the first one need to be set in case of packed audio

in_countnumber of input samples available in one channel

Parameters

S:分配的Swr context结构体(里面有参数的设置)

out :输出缓冲区,只有第一个需要设置的情况下,包装音频

out_count :每通道可用输出样本的数量

in:输入缓冲区,只有第一个需要设置的情况下,包装音频

解码后原始数据(对视频来说是YUV,RGB,对音频来说是PCM)

in_count :每通道可用输入样本的数量(音频的一个AVFrame中可能包含多个音频帧,在此标记包含了几个)

Returns

number of samples output per channel, negative value on error

每个通道输出的样本数,负值是错误的

用时注意,第一个参数初始化后还需要将解码环境中的一部分参数赋给它。

点击复制链接 与好友分享!回本站首页
上一篇:MAVEN XML文件注释
下一篇:基于Springboot的微信公众号接入、通过网页授权机制获取用户信息
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站