首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用FFmpeg的视频压缩在Android10上不起作用

FFmpeg 是一个开源的多媒体框架,能够解码、编码、转码、封装、解封装、流媒体、滤镜和播放几乎所有的多媒体格式。在 Android 平台上使用 FFmpeg 进行视频压缩时,可能会遇到各种问题,以下是一些基础概念以及解决问题的步骤:

基础概念

  • FFmpeg: 一个命令行工具,也提供了编程库,用于处理多媒体文件。
  • 视频压缩: 减少视频文件的大小,同时尽量保持视频质量的过程。
  • Android 10: Google 发布的操作系统版本,对某些 API 进行了更改,可能影响第三方库的使用。

优势

  • 灵活性: FFmpeg 支持多种编码器和格式,可以根据需要选择合适的压缩参数。
  • 跨平台: 可以在多种操作系统上运行,包括 Android。
  • 开源: 社区活跃,有大量的文档和资源可供参考。

类型

  • 有损压缩: 通过牺牲一些视频质量来减少文件大小。
  • 无损压缩: 不会丢失原始数据,但压缩比通常较低。

应用场景

  • 网络直播: 减少传输带宽需求。
  • 移动存储: 节省设备的存储空间。
  • 视频分享: 便于上传和分享。

可能遇到的问题及原因

  1. 权限问题: Android 10 引入了更严格的存储访问权限。
  2. 兼容性问题: FFmpeg 版本与 Android 10 的某些 API 不兼容。
  3. 编译问题: 在 Android 平台上编译 FFmpeg 可能会遇到困难。
  4. 运行时错误: 可能由于缺少某些库或依赖项导致。

解决步骤

  1. 检查权限: 确保应用有读写外部存储的权限。
  2. 检查权限: 确保应用有读写外部存储的权限。
  3. 更新 FFmpeg: 使用支持 Android 10 的 FFmpeg 版本,并确保所有依赖项都已正确配置。
  4. 编译 FFmpeg: 如果是自己编译,确保使用正确的 NDK 版本和配置脚本。
  5. 编译 FFmpeg: 如果是自己编译,确保使用正确的 NDK 版本和配置脚本。
  6. 运行时检查: 在代码中添加日志输出,检查具体是哪一步出错。
  7. 运行时检查: 在代码中添加日志输出,检查具体是哪一步出错。
  8. 使用封装库: 如 ffmpeg-kit,它提供了更方便的 Android API 来调用 FFmpeg。
  9. 使用封装库: 如 ffmpeg-kit,它提供了更方便的 Android API 来调用 FFmpeg。

示例代码

以下是一个简单的示例,展示如何在 Android 中使用 FFmpeg 进行视频压缩:

代码语言:txt
复制
String inputPath = "/path/to/input.mp4";
String outputPath = "/path/to/output.mp4";
String[] cmd = {"-i", inputPath, "-vcodec", "libx264", "-crf", "23", outputPath};

FFmpeg.executeAsync(cmd, new ExecuteCallback() {
    @Override
    public void apply(long executionId, int returnCode) {
        if (returnCode == RETURN_CODE_SUCCESS) {
            Log.d("FFmpeg", "Compression successful");
        } else {
            Log.e("FFmpeg", "Compression failed");
        }
    }
});

确保在实际应用中处理好线程管理和异常捕获。

通过以上步骤,通常可以解决在 Android 10 上使用 FFmpeg 进行视频压缩时遇到的问题。如果问题依然存在,建议查看详细的错误日志,以便进一步诊断。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

视频压缩工具ffmpeg的使用

这篇文章中的视频压缩非常适用于教学视频的压缩,因为教学视频中很多帧数的内容都是相同的。 本文作者的CPU是E5-2670,8核16线程。视频压缩工具ffmpeg可以充分利用多线程性能。...原文件大小:1.45GB 与视频压缩软件格式工厂对比,对比情况如下表所示: 压缩后大小 压缩时间 视频质量 格式工厂 478MB 20分 1280*720 ffmpeg 119MB 3分 1280*...如果你电脑的操作系统是其他版本Linux、macOS、Win32等,官网下载链接:https://ffmpeg.org/download.html 2.添加环境变量 下面内容是作者在64位Win10系统下的操作步骤...3.开始压缩视频 测试文件下载链接: https://pan.baidu.com/s/177bh7V0k-zwu_ItvfR6K6w 密码: seab 在桌面新建文件夹视频压缩测试,并将下载的测试文件放入其中...image.png 在新打开的cmd窗口中,输入命令:ffmpeg -i "七月算法 概率面试题精讲.flv" -r 10 -b:a 32k 1.mp4 命令参数解释: -i "七月算法 概率面试题精讲

5.3K51

英特尔QSV技术在FFmpeg中的实现与使用

在分享中张华介绍了英特尔GPU硬件架构,并详细解析了英特尔QSV技术在FFmpeg中的具体实现与使用。...GPU架构以及Quick Sync Video技术在FFmpeg 中的实现与使用。...这是因为进行了额外的内存拷贝过程,一旦优化不足则会极大影响性能。具体进行内存分配时我们使用了hwcontext,这是FFmpeg在3.0之后增加的一个功能。...而目前,FFmpeg+QSV已存在2个开发好的Filter,并且在Filter中集成了MSS 支持的所有功能,并提供更加简单的选项进行配置,这些功能对用户而言都是方便使用的。...5)处理流程上,MSS的用户在使用MSS模块之前必须自己开发Mux/Demux或其他必要的模块;而FFmpeg+QSV 由于是基于 MSS 实现并添加了特殊的逻辑, 每个模块都可与 FFmpeg 的其他模块一起工作

2.5K20
  • SpringCloud-使用FFmpeg对视频压缩处理

    本文将通过Java代码示例,向您展示如何使用FFmpeg进行视频压缩,并介绍相关参数的设置。一、FFmpeg简介FFmpeg是一个可以用来录制、转换和流传输音视频的开源工具。...在Linux系统中安装FFmpeg在Linux系统中,您可以使用包管理工具来安装FFmpeg。...打开命令提示符(CMD),输入以下命令以确认安装成功:ffmpeg -version 如果显示FFmpeg的版本信息,则说明安装成功-三、Java代码实现FFmpeg视频压缩代码示例:以下代码片段展示了如何使用...-threads 2:使用多线程进行处理,以减少处理时间。四、提高压缩效率的技巧在进行视频压缩时,CPU的使用率和压缩时间是两个需要关注的点。...五、总结本文介绍了如何使用Java代码结合FFmpeg工具来对视频进行压缩,详细说明了每一个参数的作用及其对压缩效果的影响。

    6422

    FFmpeg 音视频压缩详解:轻松掌握音视频文件压缩

    视频压缩就是为了解决这些问题的利器。FFmpeg 是一个强大的开源多媒体处理工具,不仅可以进行格式转换,还能够帮助我们压缩视频文件,在不牺牲太多画质的情况下大幅减少文件大小。...本文将详细介绍如何使用 FFmpeg 进行视频压缩,教你掌握视频压缩的核心技巧。什么是视频压缩?视频压缩,顾名思义,就是通过某种技术手段将视频文件体积变小。...降低帧率也是一种常见的视频压缩手段。使用 FFmpeg 进行视频压缩FFmpeg 提供了多种方式来压缩视频,包括调整码率、分辨率、帧率、编码器等。...使用 Quick Sync 加速视频压缩ffmpeg -i input.mp4 -vcodec h264_qsv -b:v 1000k output_qsv.mp4这个命令使用 Intel 的 Quick...无论是上传社交媒体、嵌入网页,还是保存高质量的档案视频,FFmpeg 都能为你提供解决方案。本文详细介绍了如何使用 FFmpeg 进行视频压缩,希望你现在对视频压缩的原理和操作有了更清晰的了解。

    70900

    FFmpeg简介与安装指南

    流媒体处理:FFmpeg支持实时流媒体传输,适用于直播或录播场景,在搭建直播系统和实时传输系统中有重要作用。...FFmpeg的安装方法 在开始使用FFmpeg之前,用户需要在本地系统上完成安装。以下将根据不同的操作系统介绍FFmpeg的具体安装方法。...使用libavfilter,用户可以对视频进行调整画面效果、添加滤镜等处理操作,如模糊、锐化、色彩调整等。该库在FFmpeg中承担视频后期处理功能,是提升视频质量和效果的重要模块。...此库主要用于调整视频的分辨率以适应不同屏幕设备,并支持多种像素格式转换。libswscale在视频压缩和分辨率调节中起到了关键作用。...虽然该库在日常处理中的使用率较低,但在高质量视频输出需求中其作用不可替代,能够大幅提升视频的细节效果。 5.

    51010

    FFmpeg 视频压缩与 Python 调用方法

    FFmpeg 是操作视频的开源工具,本文记录 Python 操作 FFmpeg 进行视频压缩的方法。 简介 FFmpeg 是一个完整的,跨平台的解决方案,记录,转换和流音频和视频。...官网:https://ffmpeg.org/ 下载安装 下载链接:https://ffmpeg.org/download.html#build-linux Ubuntu 可以使用 apt 安装: 1...sudo apt install ffmpeg Windows 可以下载安装包,需要配置环境变量 视频压缩 下面是ffmpeg压缩视频的命令: 将视频压缩指定大小 1 ffmpeg -i...-b:v 1M Desktop/output.mp4 -b:v : 指定视频的码率 -b:a : 指定音频的码率 1M:码率的值 1M 表示 1Mb/s 设置视频的分辨率 1 ffmpeg...1 ffmpeg -i Desktop/input.mp4 -s 1920x1080 -b:v 1M -r 20 Desktop/output.mp4 Python 调用 在 Python

    1.3K30

    音视频书籍推荐!

    一:音视频编解码 《深入理解视频编解码技术:基于H.264标准及参考模型》 《新一代视频压缩编码标准-H.264_AVC(第二版)》 《基于H.264的视频编/解码与控制技术》 《FFmpeg从入门到精通...》 《WebRTC权威指南》 《现代电视原理》《数字电视广播原理与应用》 《FFmpeg从入门到精通 FFMPEG视音频编解码基础书籍 》《ffmpeg基础库编程开发》 《音视频开发进阶指南:基于Android...与iOS平台的实践》 《视频编解码技术原理》 《新一代视频压缩编码标准H.264(毕厚杰)》,《h264和mpeg-4视频压缩:新一代多媒体的视频编码技术》,《H264标准中文版》。...以及他的63页的论文,《Perceptual Coding of Digital Audio》。 其他可看的书籍包括:MP3之父——K....Digital Audio Signal Processing》 《High-Fidelity Multichannel Audio Coding》 《Speech Coding Algorithms》 最近我在微信读书上看的两本免费的书籍推荐给大家

    3.5K20

    如何将视频大小压缩90%?

    前阵子,有一款视频压缩工具在网络上火了。这个工具叫做 tools.rotato.app,只需要在网页上传视频,就能给你几乎无损地压缩到原视频的10%左右大小。...你在电脑上安装一下ffmpeg,也可以用一行命令实现类似效果: ffmpeg -i "input.mp4" -c:v libx264 -tag:v avc1 -movflags faststart -crf...30 -preset superfast "output.mp4" 而如果你希望通过Python代码进行视频压缩,则可以使用ffmpeg-python库来实现: import ffmpeg def compress_video...另一方面是对不同帧之间内容的压缩,比如一段连续的场景,背景都是相同的,只有少部分区域在变化,就可以只记录变化的部分。 那既然视频可以很容易地压到这么小,为什么我们不直接用压缩好的视频呢?...因此视频压缩在这个问题上已经不单单是一个技术问题。

    18620

    如何使用FFmpeg将AVI转换为MP4(有损转换和无损转换)

    作为红利,我们还将学习FFmpeg在Ubuntu、Mac和Windows上的安装,并使用FFmpeg将AVI无损转换为MP4。 视频爱好者在网上最常问的问题就是:“如何将AVI转换为MP4?”...这种压缩是在考虑音频和视频质量的前提下完成的。更多关于视频压缩的介绍,请阅读:视频编码完全指南。...因为视频并没有重新编码,所以你可以认为这种从AVI到MP4的转换是无损转换。然而,如果我是你,我会在距离我三米之内的视频压缩工程师面前谨慎使用无损视频压缩这个词。...在Mac上,你可以使用brew指令安装FFmpeg,brew是Mac系统中一个非常好用的包管理器。...下面是在Mac上安装FFmpeg的命令行(在Cataline v 10.15.5上测试和使用): brew install ffmpeg 3、如何在Ubuntu上安装FFmpeg?

    8.9K50

    关于ffmpeg height not divisible by 2的错误

    在我们线上视频生产过程中,我们用ffmpeg对视频做了resize,讲原有的分辨率resize到1280p,使用了参数 -vf "scale=1280:-1",作用是将原始视频宽度缩放成1280,-...1175,而奇数分辨率对部分视频编码而言是一个非法参数 ,原因主要如下: FFmpeg 默认不允许生成视频的分辨率宽度或高度为奇数主要与视频压缩标准和编解码过程中的某些算法要求有关。...**   解决方案当然很简单,那就是将分辨率强行指定成偶数即可,在当我思索难道要放弃-1这个好用的自适应参数,在指定宽为1280时,自己去计算出一个高来的时候。突然发现了-2这个参数。...在ffmpeg的scale 参数中,可以使用 -1 和 -2 这样来等比例缩放视频大小,但二者略有差异,建议使用-2而不是-1,之前我们就是使用了-1才出现的问题,二者的具体差异如下: -1 在 scale...ffmpeg -i input.mp4 -vf "scale=1280:-1" output.mp4 -2 的作用与 -1 类似,也是用于自动计算另一个尺寸,同时保持宽高比。

    16510

    一文简述FFmpeg

    审校者注: FFmpeg项目由 Fabrice Bellard在2000年创立,到目前为止,经历了21年的演化。FFmpeg社区和其他多媒体项目互动频繁,这也是它成功的原因之一。...在创立之初,有很多开发者同时活跃在Mplayer项目,到目前为止,FFmpeg项目的开发者仍然与VLC、MPV、dav1d、x264等多媒体开源项目有着广泛的重叠。.../ FFmpeg有什么用途? 这是一个很棒的问题,但是也非常难回答。因为FFmpeg在不停添加新的用例、工具和特性,这可以将FFmpeg扩展出无数个用途。...使用FFmpeg来堆叠视频 视频压缩 FFmpeg对视频压缩的支持非常棒,很多流媒体公司的视频生产系统都在使用FFmpeg,这是一个公开的秘密。因为它真的非常稳定!...在大部分Linux发行版本的仓库中都可以找到FFmpeg,并且主流桌面操作系统都可以进行安装。FFmpeg旨在帮助用户以最省力的方式来处理最广泛的媒体格式。

    78730

    深入浅出FFmpeg:一款强大的多媒体处理工具

    引言:在如今多媒体时代,我们经常接触到各种图片、音频和视频文件。而FFmpeg作为一款功能强大的开源多媒体处理工具,为我们提供了丰富的功能和灵活的应用方式。...它最初是一个用于处理视频和音频的命令行工具,但随着时间的推移,它发展成为了一个完整的跨平台解决方案。FFmpeg使用C语言编写,支持多种操作系统,包括Windows、Mac和Linux。...使用FFplay可以轻松地预览和调试音视频文件,非常方便。 FFprobe:FFprobe是一个用于分析多媒体文件信息的工具。...通过FFprobe,您可以获取音视频文件的详细信息,包括编解码器、比特率、分辨率、帧率等。这对于了解媒体文件的属性和特征非常有帮助,并且在后续处理中起到指导作用。...MKV格式的视频文件,同时使用libx264编码器进行视频压缩,采用慢速预设,并设置CRF值为22,保证输出视频质量。

    76610

    音视频的那几个关键参数

    因此,在音视频处理中,了解这些参数的含义和作用至关重要。 本文在通过FFmpeg接口打印某视频文件基本信息的基础上,对部分关键参数进行说明。 1....FFmpeg 打印文件信息 FFmpeg 提供了一些强大的接口来打开和读取媒体文件,通过这些接口,我们可以轻松地获取音视频文件的各种信息。...由于我使用的是7.0.2版本的FFmpeg,所以没有调用av_register_all()函数,此处按需调用。不过我建议大家使用第三方库时,使用次新版本的开源库。...常见的格式有 `YUV420p`、`YUV422p`、`RGB` 等。`YUV420p` 主要用于视频压缩,因为它能够在保持视觉质量的同时减少带宽需求。...编码器:编码器是视频压缩和解压的核心部分,它决定了视频文件的压缩效率和质量。常见的视频编码器有 H.264、H.265/HEVC、VP9 等。

    12210

    使用FFmpeg来无损压缩它!

    咱们平时如果经常拍视频的话,都会遇到一个困境:视频文件太大了,存储的时候需要占用很多的空间。如果直接使用视频压缩工具来压缩码率的话,又会担心损失了视频的画质,这该怎么办呢?...这个时候,我们就可以使用ffmpeg的hevc编码功能来实现无损的压缩! 什么是FFmpeg? 图片 FFmpeg是业内有名的开源图像视频处理程序。...它被广泛的使用,在许多视频剪辑软件、图像处理软件中,都使用的FFmpeg,还有比如OBS这样的导播软件里面也使用了FFmpeg 啥是HEVC编码?...然后在新的这个文件夹中打开控制台(windows下需要使用cd命令进去对应的文件夹)。 接着,我们在文件夹下面新建一个新的文件夹,叫做output,待会我们输出的视频就存在这个文件夹里面。...的功能十分强大,远不止视频压缩的功能。

    5.8K31

    视频压缩原理入门

    码率(Bit Rate):视频文件在单位时间内使用的数据流量,决定视频的质量和大小,单位是 kb/s 或者 Mb/s。 一般来说同样分辨率下,视频文件的码流越大,压缩比就越小,画面质量就越高。...编码格式 视频编码是对采用视频压缩算法将一种视频格式转换成另一种视频格式的描述,音频编码同理。...其中"Y"表示明亮度(Lumina nce 或 Luma),也就是灰阶值;而"U"和"V"表示的则是色度(Chrominance 或 Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。...视频压缩分为下面两种类型: 1. 帧内压缩 也叫空间压缩,类似于图像压缩,属于有损压缩算法,达不到很高的压缩比。 2....音频压缩原理 音频压缩是在保证信号在听觉方面不产生失真的前提下,对音频数据信号进行尽可能大的压缩, 去除冗余信息。 冗余信号包含人耳听觉范围外的音频信号以及被掩蔽掉的音频信号等。

    4.2K32

    Ffmpeg 配置输出日志到指定文件

    Ffmpeg 配置输出日志到指定文件云函数(SCF) 一个主要场景就是跑视频任务,比如视频转码、推流等,常用方法就是基于 ffmpeg 来执行。...接下来,介绍下如何将 ffmpeg 的输出日志落盘到指定文件。...添加文件系统网络配置开启私有网络并设置页面路径:函数设置 -> 高级设置 -> 网络配置图片文件系统开启文件系统,选择期望的 cfs 文件系统,并正确设置远程目录和挂载点(本地目录,例如/mnt)图片输出日志的配置推荐使用环境变量...level 指定日志级别,file 指定输出日志的落盘文件名,其中,/mnt/ 为 cfs 文件系统的挂载点目录。...具体示例接下来以视频转码为例说明下(语言环境是python3.6):# ffmpeg命令# 视频压缩video_press = 'FFREPORT="level=48:file=/mnt/ffmpeg-

    2.4K31

    解决库存扣减及订单创建时防止并发死锁的问题

    我们在使用fswebcam时,增加了几个参数,下面介绍这几个参数的作用: 参数 作用 -r 1920*1080 拍摄图片分辨率 --delay 3 延时3s后拍摄(给摄像头自动对焦的时间,否则会模糊,这个经常拍照的可以理解吧...当然直接用linux fdisk命令格式化成 ext2/3/4 也是可以的,但是后续在windows环境下读写又是新问题,如果硬盘不是准备永久挂载在linux系统下使用,还是建议用FAT32格式使用。...我们用 ffmpeg 软件将图片合成为视频。 首先下载 ffmpeg 软件的 exe 版本(windows),linux上可直接下载linux版。...下载下来的图片我们是默认使用时间戳来命名图片的,因为ffmpeg只能从 0 - n 顺序识别图片,无法识别时间戳这种命名,因此,我这里自己编写了一个工具将图片名称替换成了 0 - n.jpg。...ffmpeg -r 10 -f image2 -i %d.jpg -vcodec libx264 -pix_fmt yuv420p out.mp4 同样我们介绍下使用的几个参数: 参数 作用 -r 10

    1.4K40

    Python Moviepy 视频编辑踩坑实录01:谁动了我的音频比特率

    一些常用的编解码器如下: ‘libx264’:视频压缩效果好的一款编解码器,MP4的缺省编解码器,视频质量通过bitrate参数调节 ‘mpeg4’:一种可选的MP4编解码器,可以替代’libx264...libvorbis’:是一种完全开放、免费的编解码器,有不错的视频格式,但是要不广,对应视频文件为’.ogv’ ‘libvpx’:一种很适合在HTML5中使用的网络视频轻量级编开源解码器,对应视频文件为...:这个参数目前没有作用,估计是为了兼容以前的版本  remove_temp:是否删除临时文件  write_logfile:如果为True,将为音频和视频输出记录日志文件。...日志文件将以“.log”结尾,包含输出文件的名称  verbose:已经废弃使用,留下来是为了兼容性,以前用于打开/关闭消息。现在使用logger=None。  ...threads:用于ffmpeg的线程数,可以加快多核计算机上视频输出的速度  ffmpeg_params:需额外传递的其他ffmpeg参数,用列表传递,形如:[’-option1’,‘value1’,

    39300
    领券