
ffmpeg库
yyfzy
专注信息安全技术与开发。
展开
-
Ubuntu下,在Eclipse中使用JNI调用ffmpeg
Android的应用层开发大部分还是采用JAVA,如果想使用ffmpeg库,就必须利用JNI,使得Java可以调用C/C++的库。JNI其实就是定义的一个转接接口,可以让Java的代码调用C/C++的库,我的理解有点像C#中调用C/C++的DLL需要一个proxy工程一样。编译好的ffmpeg库文件名为:libffmpeg.so,它是一个普通的C/C++动态链接库。下面以libffmpeg.l原创 2013-09-16 16:37:49 · 3936 阅读 · 0 评论 -
Ubuntu(linux) 下编译ffmpeg
ffmpeg是基于Linux开发的,所以在linux系统(Ubuntu)上编译ffmpeg其实很简单。下面介绍如何在Ubuntu上编译基本的ffmpeg库(不带其他扩展的解码编码库)。1、准备ffmpeg源代码方法很多,就不多说了,我现在用的是ffmpeg-0.8.7。最好把源代码文件夹更名为ffmpeg,然后放到自己的工作目录下。2、配置ffmpegffmpeg很原创 2013-10-14 14:03:13 · 3440 阅读 · 0 评论 -
使用ffmpeg解码音频文件到PCM格式
最近忙于使用ffmpeg播放音乐文件的项目,现将开发经验总结如下:一、解码音乐文件的大致流程如下:1,打开音乐文件,调用av_open_input_file()2,查找audio stream,调用av_find_stream_info()3,查找对应的decoder,调用avcodec_find_decoder()4,打开decoder,调用avcodec_open()5原创 2013-10-18 15:46:12 · 8177 阅读 · 2 评论 -
ffmpeg解码audio文件的时候,实现seek功能(即解码指定时间位置的数据)
ffmpeg解码的时候,往往需要seek功能,直接跳到所关心的时间位置进行解码。比如制作播放器的时候,可以seek到任意位置播放。我们可以通过ffmpeg API av_seek_frame()来定位解码的位置,该函数能根据设定的时间,定位到该时间对应的帧位置。随后我们继续使用API av_read_frame()/avcodec_decode_audio3()读取帧、并解码。需要注意的是原创 2013-10-18 16:00:05 · 7455 阅读 · 1 评论 -
ffmpeg解码音频数据时,进行重采样(即改变文件原有的采样率)
我们使用ffmpeg解码音频的时候,往往需要改变原音频的采样率,即需要重采样。比如一音乐文件的采样率22050,而播放端往往是固定的采样率,比如44100。在这种情况下,如果把解码出来的数据直接播放,会产生快进的效果。这个时候就需要对解码出来的数据作一次重采样,将数据转化为44100采样率下的数据,才能正确播放。ffmpeg提供了一组用来重采样的API,主要如下:/** * In原创 2013-10-18 16:27:35 · 12853 阅读 · 1 评论