jjzjj

MediaMuxer

全部标签

Android音视频开发(三)——MediaExtractor和MediaMuxer的使用

了解了音视频的编解码过程,我们接下来使用一下经常跟MediaCodec一起搭配的MediaExtractor和MediaMuxer。最后会使用一个简单的demo来了解具体了解这两个工具类的使用过程。这一节我们就先不讲MediaCodec了,放到下节的demo。一、MediaExtractorAndroid提供了一个MediaExtractor类,可以用来分离容器中的视频track和音频track。主要API介绍:setDataSource(Stringpath):即可以设置本地文件又可以设置网络文件getTrackCount():得到源文件通道数 getTrackFormat(intindex

MediaExtractor MediaMuxer 实现视频的解封装与合成

目录1、MediaExtractor MediaMuxer 能做什么,有什么实际应用1.1视频解封装和合成的API以及流程介绍1.1.1MediaExtractor:视频轨道提取器(解封装)1.1.2  MediaMuxer:合成(封装)1.2 实践(以及ffmpeg的实现)1.2.1. 提取视频分离出纯音频和纯视频文件*1.2.2. 把纯音频文件和纯视频文件(封装)合成为视频文件1.2.3. 替换背景音乐,合成新的视频文件1.2.4遇到的问题1、MediaExtractor MediaMuxer 能做什么,有什么实际应用在我们日常使用短视频软件的时候,对视频的裁剪,拼凑,加入背景是很常用的操

在 Android 上使用 MediaExtractor 和 MediaMuxer 提取视频\提取音频\转封装\添加音频等操作

文章目录前言一、MediaExtractor基本介绍与使用二、MediaMuxer基本介绍与使用示例提取视频提取音频混合视频与音频文件总结参考前言之前我们介绍了FFmpeg并利用它解封装、编解码的能力完成了一款简易的视频播放器。FFmpeg是由C实现的,集成至Android等移动端平台需要一定的代价:额外的so文件。你需要将多个so文件集成至你的app中,使得app整体体积增加。额外的复杂性。这里的复杂性包括多个方面:集成的复杂性。为了引入ffmpeg,你在编译脚本需要额外对这些库进行维护;此外,通常你不需要FFmpeg的全部能力,因此在编译FFmpeg库时你需要对其进行裁剪,这部分也需要额外

android - 从 GLSurfaceView 录制视频和音频并将其导出到 .mp4

我是OpenGL的新手。我想从GLSurfaceView录制视频和音频并将其导出为.mp4(或其他格式)。我有一个GlsurfaceView实现了Renderer我尝试使用bigflake.com中的fadden示例像EncodeAndMuxTest.java,或RecordFBOActivity.java在google/grafika但没有成功,因为我不知道如何实现。是否有任何用于记录GLSurfaceView的示例或“操作方法”? 最佳答案 您可以尝试使用INDEMediaforMobile:https://software.i

android - 如何使用 MediaMuxer 合并音频和视频?

我正在开发一个带有mp3音频文件和mp4视频文件(无声音)的Android应用。现在我想混合它们并创建一个新的mp4视频文件(带声音)。从Android4.3开始,Google建议使用MediaMuxer类来混合流式音频和视频。我试了很多次都没有成功。代码如下:privatevoidmuxing(){StringoutputFile="";try{Filefile=newFile(Environment.getExternalStorageDirectory()+"/final2.mp4");file.createNewFile();outputFile=file.getAbsolut

Android MediaCodec dequeueInputBuffer 总是返回 -1

我正在尝试从AudioRecord对象中获取原始数据,并使用MediaMuxer和MediaCodec将其保存在一个文件中。我启动编解码器,启动多路复用器,将数据加载到输入缓冲区,但没有这样的运气。通过调试调查,我发现问题出在对dequeueInputBuffer()的调用中。看起来前几block数据成功了,但最终dequeueInputBuffer()只是不断地返回-1。有什么明显的我遗漏的东西吗?这似乎是我正在填满输入缓冲区,但编解码器永远不会释放它们。相关代码fragment:intnumChunks=input.length/CHUNKSIZE;mAudioEncoder.st

Android MediaMuxer 将表面附加到编解码器输入

好的,我已经查看了Fadden'sexample实现AndroidMediaMux。我不确定如何让我的场景进入MP4多路编解码器的表面输入。我正在研究一个音频处理器,它会占用音频和视频I/O,因此MediaRecord会失败,但MediaMux听起来是一个可行的解决方案。从编解码器创建一个inputSurface:videoInputSurface=codec.createInputSurface();我已经实现了openGLSurfaceView。我可以简单地通过调用从View中获取表面:myGLSurface=myGLView.getHolder().getSurface();但这

android - 如何在 android 中以编程方式将音频 .mp3 转换为 .m4a

我不想使用ffmpeg。目前我能够将m4a音频与mp4视频混合。我还想添加mp3音频,这需要mp3到m4a的转换。我可以使用以下代码将wav转换为m4a,但不能将mp3转换为m4a这是我的代码。privatevoidconvertAudio(Stringfilename)throwsIOException{Stringoutputpath=Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC).getPath()+"/converted.m4a";//SetupMediaExtractorto

android - 使用 MediaMuxer 混合相机预览 h264 编码的基本流

我正在研究AndroidTestCases之一的实现关于使用Android4.3的新MediaCodec和MediaMuxerAPI录制预览纹理。通过将recordingHint设置为相机参数,我设法以大约30fps的帧速率录制了预览流。但是,我遇到了延迟/滞后问题,并且真的不知道如何解决。当使用相当标准的质量设置(1280x720,比特率约为8.000.000)录制相机预览时,预览和编码Material偶尔会出现延迟。更具体地说:这种滞后大约每2-3秒发生一次,大约需要300-600毫秒。通过跟踪延迟,我能够找出延迟来自“drainEncoder”方法中的以下代码行:mMuxer.w

java - 如何将 MediaMuxer/MediaCodec InputSurface 与 GLSurfaceView 一起使用?

在BigFlake之后例如,有一条评论指出://Acquireanewframeofinput,andrenderittotheSurface.Ifwehada//GLSurfaceViewwecouldswitchEGLcontextsandcalldrawImage()asecond//timetorenderitonscreen.Thetexturecanbesharedbetweencontextsby//passingtheGLSurfaceView'sEGLContextaseglCreateContext()'sshare_context//argument.我使用EGL