FFmpeg解码opus音频文件

本文介绍了如何利用FFmpeg库在iOS平台上对opus格式的音频进行解码,由于iOS原生播放器不支持opus,因此解码是播放这种格式音频的关键步骤。主要涉及导入ffmpeg库和运用audioqueue进行解码。
摘要由CSDN通过智能技术生成

FFmpeg库对于音视频的编解码都做了相应的处理,使用起来相当方便,iOS的原生播放器并不支持opus格式的音频,因此需要对opus格式进行解码。

下面是对opus解码的主要步骤:

导入ffmpeg相关库:

#include "libavformat/avformat.h"
#include "libswscale/swscale.h"
#include "libavcodec/avcodec.h"
#include "libavformat/avio.h"
#include "libswresample/swresample.h"
#include "libavutil/avutil.h"
定义相关的属性及变量:
{
    
    AVFormatContext *pFormatCtx;  //文件格式
    AVCodecContext  *pCodecCtx;
    AVFrame *pFrame;
    char *_audioBuffer;
    NSUInteger _audioBufferSize;
    AVPacket _packet, _currentPacket;

}


/* Initialize with movie at moviePath. Output dimensions are set to source dimensions. */
-(id)initWithAudio:(NSString *)moviePath;

-(void)closeAudio;

@property (nonatomic, retain) NSMutableArray *audioPacketQueue;
@property (nonatomic, assign) AVCodecContext *_audioCodecContext;  //编码格式
@property (nonatomic, assign) AudioQueueBufferRef emptyAudioBuffer;  //音频缓存
@property (nonatomic, assign) int audioPacketQueueSize;
@property (nonatomic, assign) AVStream *_audioStream;
解码的实现及重采样、播放得引入位置

-(id)initWithAudio:(NSString *)moviePath {
    
    
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值