Android 使用自带的MediaCodec 框架进行本地视频压缩

这篇具有很好参考价值的文章主要介绍了Android 使用自带的MediaCodec 框架进行本地视频压缩。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

原文出自
这是之前的项目
因为找不到原文作者 只是找到了一个转载的文章 所以就把链接放了进来 这个项目个人亲测是可以用的 速度也比较快 但是有一点点小问题 简单的做了一个说明
1.我把项目重新Fock了一下适配到了Androidx
2.经个人测试 当视频文件放到/storage/emulated/0/Android/data/xxx/file/xxx的时候压缩是不成功的 具体原因个人猜测可能是因为系统对data文件夹有限制 而放到/storage/emulated/0/Download/xxx/storage/emulated/0/Android/media/xxx/xxx下项目可以正常压缩
至于具体的原理学艺不精确实说不太明白 只能说这个压缩还是比较快的 压缩率大概是50%左右 比FFmpeg的上手难度要小 毕竟不需要再去集成so文件
最主要的代码其实就是这一块

 VideoCompress.compressVideoMedium(tv_input.getText().toString(), destPath, new VideoCompress.CompressListener() {
                    @Override
                    public void onStart() {
                    //开始压缩      
                    }

                    @Override
                    public void onSuccess() {
                      //压缩成功
                    }

                    @Override
                    public void onFail() {
                        //应该是压缩失败 但是我没触发过
                    }

                    @Override
                    public void onProgress(float percent) {
                       //压缩的进度条
                    }
                });

使用方法 可以直接把项目里面的videocompress这个module拿出来复制到自己的项目里 剩下的看下demo就好了
新的Demo地址
如果哪里写的不对 希望大佬予以指正文章来源地址https://www.toymoban.com/news/detail-519569.html

到了这里,关于Android 使用自带的MediaCodec 框架进行本地视频压缩的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android 音视频入门 (四)- 记录一次MediaCodec ,天呐

    isEncoding = true //开始编码 mMediaCodec.start() //构建连接器。 mWorkerThread = HandlerThread(“WorkerThread-Encoder”) mWorkerThread.start() mHandler = Handler(mWorkerThread.looper) } 注意,我们并不在此处就开启Muxer,我们会在子线程中接受数据的时候的某个状态开始进行混合。 mCameraDevice.setPreviewCallback {

    2024年04月16日
    浏览(31)
  • FFmpeg 开发(14):Android FFmpeg + MediaCodec 实现视频硬解码

    FFmpeg 开发系列连载: FFmpeg 开发(01):FFmpeg 编译和集成 FFmpeg 开发(02):FFmpeg + ANativeWindow 实现视频解码播放 FFmpeg 开发(03):FFmpeg + OpenSLES 实现音频解码播放 FFmpeg 开发(04):FFmpeg + OpenGLES 实现音频可视化播放 FFmpeg 开发(05):FFmpeg + OpenGLES 实现视频解码播放和视频滤镜 FFmpeg 开发

    2024年02月09日
    浏览(22)
  • Android MediaCodec将h264实时视频流数据解码为yuv,并转换yuv的颜色格式为nv21

    初始化mediacodec 处理数据,解码h264数据为yuv格式 这里传入的是h264格式的实时视频流数据。 处理获取到的nv21颜色格式的yuv数据  yuv视频数据颜色格式转换 h264实时视频流的数据来源 写入h264视频流到sdcard中 rtsp获取h264实时视频流数据  编写C代码加载ffmpeg库 源码地址 https://gi

    2024年01月17日
    浏览(47)
  • 使用 MediaCodec 在 Android 上进行硬解码

    要使用 MediaCodec 在 Android 上进行硬解码,并获取 RGBA 数据,你可以按照以下步骤进行操作: 创建 MediaExtractor 对象并设置要解码的 MP4 文件路径: 根据需要选择音频或视频轨道: 创建 MediaCodec 对象并配置解码器: 循环解码并获取 RGBA 数据: 在上述代码中,你需要根据解码器

    2024年04月24日
    浏览(23)
  • Android MediaCodec 简明教程(五):使用 MediaCodec 编码 ByteBuffer 数据,并保存为 MP4 文件

    Android MediaCodec 简明教程(一):使用 MediaCodecList 查询 Codec 信息,并创建 MediaCodec 编解码器 Android MediaCodec 简明教程(二):使用 MediaCodecInfo.CodecCapabilities 查询 Codec 支持的宽高,颜色空间等能力 Android MediaCodec 简明教程(三):详解如何在同步与异步模式下,使用MediaCodec将视

    2024年04月13日
    浏览(30)
  • android项目实战之使用框架 集成多图片、视频的上传

    效果图  实现方式,本功能使用PictureSelector 第三方库  。作者项目地址:https://github.com/LuckSiege/PictureSelector 1. builder.gradle 增加 2. XML布局 3. 适配器,这里对GridImageAdapter进行了改进。 5. 点击增加弹框布局 6. 弹框页面初始化 7.  弹框页面监听初始化 8. 增加拍照回调,不加这

    2024年01月23日
    浏览(26)
  • Android 计时器Chronometer 使用及源码分析(1),android音视频框架

    @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_textview_chronometer);//加载布局文件 initView(); } private void initView() { btn_start = findViewById(R.id.btn_start); btn_stop = findViewById(R.id.btn_stop); btn_reset = findViewById(R.id.btn_reset); chronome

    2024年04月14日
    浏览(32)
  • 【Android入门到项目实战-- 11.4】—— ExoPlayer视频播放器框架的详细使用

    目录 什么是ExoPlayer 一、基本使用  1、添加依赖项  2、布局 3、Activity 二、自定义播放暂停 1、首先如何隐藏默认的开始暂停和快进? 2、自定义 三、控制视频画面旋转和比例调整 四、全屏放大和缩小 1、双击视频放大缩小 2、按钮放大缩小 五、完整的实现代码 XML Activity   

    2024年02月11日
    浏览(37)
  • Android MediaCodec解析

    MediaCodec是Android平台提供的一个底层的音视频编解码框架,它是安卓底层多媒体基础框架的重要组成部分。它经常和 MediaExtractor, MediaSync, MediaMuxer, MediaCrypto, MediaDrm, Image, Surface, AudioTrack 一起使用。 解码 的作用,就是将视频/音频压缩编码数据,解码成为非压缩的视频/音频原始

    2024年02月15日
    浏览(27)
  • android硬编解码MediaCodec

    一 mediacodec简介        MediaCodec 类可以用来访问底层媒体编解码器,即编码器/解码器的组件。 它是 Android 底层多媒体支持架构的一部分(通常与 MediaExtractor,MediaSync,MediaMuxer,MediaCrypto,MediaDrm,Image,Surface 和 AudioTrack 一起使用)。        编解码器可以处理三类数据:压

    2023年04月12日
    浏览(71)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包