以下是我自己写的小demo
#include <errno.h>
#include <android/log.h>
#include <libavutil/avutil.h>
#include <libavcodec/avcodec.h>
#include <libavformat/avformat.h>
AVFormatContext *fmt_ctx=NULL;
AVCodecContext *codec_ctx;
AVCodec *codec;
AVPacket packet;
AVFrame *frame;
int frame_ptr;
void mylog(const char * fmt, ...);
void Java_com_test_multi_MultiPlayerActivity_test(){
avcodec_register_all();
av_register_all();
if(avformat_open_input(&fmt_ctx,"/sdcard/wma",NULL,NULL)!=0)
{mylog("errno %d",errno);}
if(avformat_find_stream_info(fmt_ctx,NULL)<0)
{mylog("errno %d",errno);}
codec_ctx=fmt_ctx->streams[0]->codec;
codec = avcodec_find_decoder(codec_ctx->codec_id);
mylog("id=%d",codec->id);
if (avcodec_open2(codec_ctx, codec,NULL) < 0)
{mylog("errno %d",errno);}
while(av_read_frame(fmt_ctx,&packet)==0){
frame=avcodec_alloc_frame();
avcodec_decode_audio4(codec_ctx, frame, &frame_ptr,&packet);
mylog("frame_ptr %d",frame_ptr);
if(frame_ptr){
int data_size = av_samples_get_buffer_size(frame->linesize,codec_ctx->channels,frame->nb_samples,codec_ctx->sample_fmt, 0);
mylog("data count %d",data_size);
/*int i=0;
for(;i<data_size;++i){
mylog("data %d",(frame->data[0])[i]);
}*/
}
av_free_packet(&packet);
}
avformat_close_input(&fmt_ctx);
}
void mylog(const char* fmt,...){
va_list arg_ptr;
va_start(arg_ptr, fmt);
__android_log_vprint(ANDROID_LOG_ERROR, "multi",fmt, arg_ptr);
}
分享到:
相关推荐
如何用FFmpeg编写一个简单播放器详细步骤介绍 FFMPEG 是一个很好的库,可以用来创建视频应用或者生成特定的工具。FFMPEG 几乎为你把所有的繁重工作都做了,比 如解码、编码、复用和解复用。这使得 多媒体应用程序变...
通过ffmpeg AVFilter的使用,将png图片作为logo叠加到视频任意位置。代码中的步骤: 1、打开MP4文件,获取媒体信息,找到解码器; 2、创建、连接和配置movie和叠加相关滤镜; 3、创建SDL渲染窗口; 4、解码,获取到...
一个视频播放器、流音频播放器和流音频解码器,输出 pcm 或直接写入 Android/AudioTrack(基于 ) 为 Android Studio 构建和修改。 使用过的资源 主干 ffmpeg ( ) / 17.02.2014 v1.3.4 libvorbis ( ) v1.3.1 ...
音频修剪(剪切/裁剪/复制/粘贴/添加静音/撤消/重做),音频混合(混合四音频,改变速度(速度)/音高,具有所有DJ效果选项和滤波器),详细标签编辑,音频等功能合并,录音,音频格式转换器和更多功能.........
1.2.1 音频数据的编解码 11 1.2.2 视频数据的编解码 13 1.2.3 音视频编码的相关标准 13 1.3 音视频处理平台的选择 15 1.3.1 个人多媒体计算机 15 1.3.2 嵌入式处理器ARM 16 1.3.3 数字媒体处理器DSP 16 1.4 ...
1.2.1 音频数据的编解码 11 1.2.2 视频数据的编解码 13 1.2.3 音视频编码的相关标准 13 1.3 音视频处理平台的选择 15 1.3.1 个人多媒体计算机 15 1.3.2 嵌入式处理器ARM 16 1.3.3 数字媒体处理器DSP 16 1.4 ...
1.2.1 音频数据的编解码 11 1.2.2 视频数据的编解码 13 1.2.3 音视频编码的相关标准 13 1.3 音视频处理平台的选择 15 1.3.1 个人多媒体计算机 15 1.3.2 嵌入式处理器ARM 16 1.3.3 数字媒体处理器DSP 16 1.4 音视频...
1.2.1 音频数据的编解码 11 1.2.2 视频数据的编解码 13 1.2.3 音视频编码的相关标准 13 1.3 音视频处理平台的选择 15 1.3.1 个人多媒体计算机 15 1.3.2 嵌入式处理器ARM 16 1.3.3 数字媒体处理器DSP 16 1.4 音视频...
Ffmpeg是一个“工具箱”,任何一种编程语言都可以通过命令行使用它来对音频,视频和字幕文件进行数十种操作,包括转换视频(编解码器,分辨率,比特率)以及提取与之相关的任何信息(元数据)文件。 要获取ffmpeg:...
1.2.1 音频数据的编解码 11 1.2.2 视频数据的编解码 13 1.2.3 音视频编码的相关标准 13 1.3 音视频处理平台的选择 15 1.3.1 个人多媒体计算机 15 1.3.2 嵌入式处理器ARM 16 1.3.3 数字媒体处理器DSP 16 1.4 音视频...
1.2.1 音频数据的编解码 11 1.2.2 视频数据的编解码 13 1.2.3 音视频编码的相关标准 13 1.3 音视频处理平台的选择 15 1.3.1 个人多媒体计算机 15 1.3.2 嵌入式处理器ARM 16 1.3.3 数字媒体处理器DSP 16 1.4 音视频...
1.2.1 音频数据的编解码 11 1.2.2 视频数据的编解码 13 1.2.3 音视频编码的相关标准 13 1.3 音视频处理平台的选择 15 1.3.1 个人多媒体计算机 15 1.3.2 嵌入式处理器ARM 16 1.3.3 数字媒体处理器DSP 16 1.4 音视频...
1.2.1 音频数据的编解码 11 1.2.2 视频数据的编解码 13 1.2.3 音视频编码的相关标准 13 1.3 音视频处理平台的选择 15 1.3.1 个人多媒体计算机 15 1.3.2 嵌入式处理器ARM 16 1.3.3 数字媒体处理器DSP 16 1.4 音视频...
1.2.1 音频数据的编解码 11 1.2.2 视频数据的编解码 13 1.2.3 音视频编码的相关标准 13 1.3 音视频处理平台的选择 15 1.3.1 个人多媒体计算机 15 1.3.2 嵌入式处理器ARM 16 1.3.3 数字媒体处理器DSP 16 1.4 音视频...
PCM音频裸数据播放器,内含PCM元数据以及对应的mp3文件,还有详细的使用说明,读者按照步骤操作即可!