草庐IT

MediaMuxer

全部标签

android - 使用 MediaMuxer 创建的不可流式传输的视频文件

我正在使用MediaCodec对视频进行编码。帧通过相机预览回调传到MediaCodec实例(未使用Surface)。我正在使用JCodecmuxing库,我能够流式传输制作的视频(视频播放器显示正确的持续时间,我能够使用搜索栏更改视频位置)。今天我尝试使用MediaMuxer而不是JCodec我得到的视频看起来仍然不错,但持续时间绝对不正确(几个小时而不是一分钟),搜索栏根本不起作用。mediaMuxer=newMediaMuxer("/path/to/video.mp4",MediaMuxer.OutputFormat.MUXER_OUTPUT_MPEG_4);当我收到MediaC

android - 如何使用 MediaCodec 和 MediaMuxer 录制视频和音频

我能够在MediaCodec和MediaMuxer的帮助下录制(编码)视频。接下来,我需要在MediaCodec和MediaMuxer的帮助下处理音频部分并将音频与视频混合。我面临两个问题:如何使用MediaCodec对音频进行编码。我需要编码音频和单独线程中的视频?如何将音频和视频数据传递给MediaMuxer(如writeSampleData()方法一次只接受一种类型的数据)?我提到了MediaMuxerTest但它正在使用MediaExtractor。我需要使用MediaCodec,因为视频编码是使用MediaCodec完成的。如果我错了,请纠正我。任何建议或忠告都将非常有帮助,

android - 使用 ffmpeg 或 MediaMuxer for android 在来自 sd 卡的视频文件上添加图像资源

我被困在这个我根本不舒服的领域。这是我到目前为止所做的:制作了一台UbuntuVirtualBox机器已下载最新的ffmpeg版本2.3.3将ffmpeg编译为与armv7-a兼容,所以最后我得到两个文件夹:include和lib。在include中我有标题,在libs中有*.so文件(就像在http://www.roman10.net/how-to-build-ffmpeg-with-ndk-r9/中一样)我已经创建了一个新的android项目并制作了一个jni文件夹,这就是我走了多远......即便如此,所有的努力都是linux的新手,编译花了我将近一周的时间才完成。在ffmpeg

android - MediaMuxer 视频文件大小减小(重新压缩,降低分辨率)

我正在寻找减少视频重量的有效方法(作为File,用于上传),显而易见的答案是:让我们降低分辨率!(不需要全高清或4K,简单的高清对我来说就足够了)我已经尝试了很多应该通过很多API(需要10个)工作的方法,最好的方法是使用android-ffmpeg-java,但是......在我相当快的几乎当前的旗舰设备上,整个过程持续了大约length_of_video*4秒,而且这个lib重量是9Mb,这个数量增加了我的应用程序大小......不!(12Mb到1Mb是不错的结果,但仍然有太多缺陷)所以我决定使用nativeAndroid方式来执行此操作,MediaMuxer和MediaCodec

android - MediaMuxer 无法制作可流式传输的 MP4

我在Android上使用MediaExtractor来编辑MP4以获取音频和视频轨道,然后使用MediaMuxer创建一个新文件。它工作正常。我可以在手机(和其他播放器)上播放新的MP4,但无法在网络上播放文件。当我停止MediaMuxer时,它会生成一条日志消息"Themp4filewillnotbestreamable."我查看了底层native代码(MPEG4Writer.cpp),作者似乎无法计算所需的moov框大小。如果未将比特率作为参数提供给编写器,它会尝试使用一些启发式进行猜测。问题是MediaMuxer不提供设置MPEG4Writer参数的能力。我是否遗漏了什么或者我是

android - MediaMuxer 错误 "Failed to stop the muxer"

我正在使用mime类型为“video/avc”的MediaCodec对Camera预览数据进行编码,并将编码后的数据(仅视频,无音频)传递给MediaMuxer。混合器似乎运行良好并创建了一个合理大小的输出文件(即,我记录的时间越长,输出文件越大)。但是,当我尝试停止muxer时,出现“无法停止muxer”错误:10-2110:39:40.755:E/AndroidRuntime(2166):Causedby:java.lang.IllegalStateException:Failedtostopthemuxer在停止失败之前有一些可疑的MPEG4Writer日志消息:10-2110:

android - 使用 Android 的 MediaCodec 和 MediaMuxer 混合 AAC 音频

我正在修改AndroidFrameworkexample将MediaCodec生成的基本AAC流打包到一个独立的.mp4文件中。我正在使用单个MediaMuxer包含由MediaCodec生成的一个AAC轨道的实例实例。但是,我最终总是在调用mMediaMuxer.writeSampleData(trackIndex,encodedData,bufferInfo)时收到错误消息:E/MPEG4Writer﹕timestampUs0当我在mCodec.queueInputBuffer(...)中排队原始输入数据时我根据框架示例提供0作为时间戳值(我也尝试使用单调递增的时间戳值并获得相同的

android - 使用 MediaCodec 和 MediaMuxer 将图像转换为视频

我有一堆保存为jpeg文件的本地镜像。我的图像是使用CameraPreview捕获的,PreviewFormat是默认的:NV21。我想从固定数量的图像中生成一个小视频。我不会使用FFMpeg,因为它需要NDK并且会引入兼容性问题。MediaCodec和MediaMuxer似乎可行,但网络上没有一种可行的解决方案。有一些引用指向我当前的解决方案。1.EncodeAndMuxTest:http://bigflake.com/mediacodec/EncodeAndMuxTest.java.txt这个是fadden写的。它非常适合我的需要,只是他使用的是createInputSurface

android - 在android : 4. 3的MediaMuxer或ffmpeg中的视频上添加水印位图

这是我的场景:从网络下载avi电影打开位图资源将此位图叠加在影片底部的所有背景帧上将视频保存在外部存储中视频长度通常为15秒这可以使用MediaMuxer来实现吗?很高兴收到有关此事的任何信息我一直在寻找http://bigflake.com/mediacodec/#DecodeEditEncodeTest(感谢@fadden),上面写着:"DecodingtheframeandcopyingitintoaByteBufferwithglReadPixels()takesabout8msontheNexus5,easilyfastenoughtokeeppacewith30fpsinp

android - 使用 MediaCodec 和 MediaMuxer 编码和混合视频

我正在开发一个应用程序,我在其中解码视频并替换某些帧并使用MediaMuxer和MediaCodec重新编码。如果我不替换任何帧(我在下面解释的1080p视频除外),该应用程序可以正常工作,但是当我这样做时,替换后的帧会像素化并且视频不连贯。另外,当我尝试使用1920x1080视频的应用时,我得到一个奇怪的输出,视频没有显示任何内容,直到我滚动到视频的开头,然后视频开始显示(但同样的问题之前提到过编辑后的像素化。这是我如何配置我的编码器:Video_format.setInteger(MediaFormat.KEY_I_FRAME_INTERVAL,interval);Video_fo