在安卓中使用FFmpeg录制摄像头的视频并保存到本地MP4文件
在移动应用开发中,有时需要利用设备的摄像头录制视频,并且希望在录制过程中能够精确控制视频的质量、格式和时长。FFmpeg作为一个强大的多媒体处理工具,提供了广泛的功能和选项,能够帮助我们实现这样的需求。
添加依赖
在安卓平台上,可以使用 com.arthenica:mobile-ffmpeg-full
库来实现这一目标。
implementation 'com.arthenica:mobile-ffmpeg-full:4.4'
仓库地址:https://github.com/tanersener/mobile-ffmpeg
更多 ffmpeg 的其他用法,参考上述地址文档示例
使用FFmpeg录制视频的命令
FFmpeg.execute("-f android_camera -video_size 1280x720 -i 0:0 -r 25 -b:v 1.5M -pixel_format yuv420p -t 00:01:00 /sdcard/recorded_video.mp4");
参数的含义和作用:
-
-f android_camera
:指定输入的格式为android_camera,告诉FFmpeg从Android设备的摄像头获取视频流。 -
-video_size 1280x720
:设置视频输入的分辨率为1280x720像素。取决于你的摄像头支持的分辨率,按需求来。 -
-i 0:0
:指定输入文件或设备。在这里,0:0表示FFmpeg将从Android系统默认的摄像头获取视频输入。0代表设备号(通常是摄像头),0代表输入流索引(通常是视频流)。 -
-r 25
:设置输出视频的帧率为25帧每秒(fps)。决定了视频每秒显示多少帧画面。 -
-b:v 1.5M
:设置视频的视频比特率为1.5 Mbps(1.5兆比特每秒)。比特率决定了视频的质量和文件大小,较高的比特率通常意味着更高的视频质量和更大的文件大小。 -
-pixel_format yuv420p
:设置像素格式为YUV420P。YUV420P是一种广泛用于视频编码和传输的像素格式,其中Y表示亮度分量(Luma),U和V表示色度分量(Chroma)。 -
-t 00:01:00
:设置录制的视频时长为1分钟(00:01:00)。FFmpeg会在达到指定的时间后停止录制。 -
/sdcard/recorded_video.mp4
:指定输出文件的路径和文件名。在这里,视频将被保存为MP4格式的文件,路径是/sdcard/recorded_video.mp4。实际路径按你需求写即可,确保有权限读写就行。
注意
在FFmpeg中 各参数的顺序不要随意更改,否则就会导致参数设置无效,导致使用默认参数,比如 -video_size 1280x720
如果放在-i 0:0
的后面的话,就会不起作用,切记切记!
-t 00:01:00
是录制一分钟,到时间自动结束,当然你要想一直录制就把这个参数去掉就行,想要结束的时候调用 FFmpeg.cancel
即可
-b:v 1.5M
可以根据需求灵活配置,一切以实际为准,值越大视频就越大,找一个合适的值即可。
🆗,就这些雷,我替大家踩了,下班。
相关文章:
![](https://www.ngui.cc/images/no-images.jpg)
在安卓中使用FFmpeg录制摄像头的视频并保存到本地MP4文件
在移动应用开发中,有时需要利用设备的摄像头录制视频,并且希望在录制过程中能够精确控制视频的质量、格式和时长。FFmpeg作为一个强大的多媒体处理工具,提供了广泛的功能和选项,能够帮助我们实现这样的需求。 添加依赖 在安卓平台…...
![](https://i-blog.csdnimg.cn/direct/c5da5fff2816463981af4698a2cb53ad.gif)
Vue从零到实战第一天
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 非常期待和您一起在这个小…...
![](https://img-blog.csdnimg.cn/direct/3a3173fc7c7646fb962d29ef4163637c.png)
BUUCTF - Basic
文章目录 1. Linux Labs 【SSH连接漏洞】2. BUU LFI COURSE【文件包含漏洞】3. BUU BRUTE【暴力破解用户名密码】4. BUU SQL COURSE【SQL注入-当前数据库】5. Upload-Labs-Linux 1【文件上传漏洞】7. Buu Upload Course 1【文件上传包含漏洞】8. sqli-labs 1【SQL注入-服务器上…...
![](https://www.ngui.cc/images/no-images.jpg)
如何理解Node.js?NPM?Yarn?Vue?React?
一、背景 对后端技术栈更熟悉,对前端技术栈不了解,希望通过前后端的技术栈进行对比,可以更直观地了解前端技术栈。 二、Node.js Node.js 是一个基于 Chrome V8 JavaScript 引擎的 JavaScript 运行环境。它使得 JavaScript 可以在服务器端运…...
![](https://img-blog.csdnimg.cn/img_convert/b24da1bb2028a048bd669714bad6c435.jpeg)
苹果入局,AI手机或将实现“真智能”?
【潮汐商业评论/原创】 “AI应用智能手机不就是现在的AI手机。” 当被问到现阶段对AI手机的看法时,John如是说。“术业有专攻,那么多APP在做AI功能,下载用就是了,也用不着现在换个AI手机啊。” 对于AI手机,或许大多…...
![](https://i-blog.csdnimg.cn/direct/33c6feb29ad040c2843413d4791964f4.png)
AI网络爬虫019:搜狗图片的时间戳反爬虫应对策略
文章目录 一、介绍二、输入内容三、输出内容一、介绍 如何批量爬取下载搜狗图片搜索结果页面的图片?以孙允珠这个关键词的搜索结果为例: https://pic.sogou.com/pics? 翻页规律如下: https://pic.sogou.com/napi/pc/searchList?mode=2&start=384&xml_len=48&am…...
Windows 网络重置及重置网络可能出现的问题( WIFI 没有了 / WLAN 图标消失)
当 Windows 网络出现本机故障时,一般从以下两个方面解决:网络栈和使用网络栈的组件或程序。 1、Winsock 组件问题 以管理身份运行 cmd,输入以下命令 netsh winsock reset重置 Winsock 组件以修复网络连接问题。 Winsock 是 Windows 操作系…...
![](https://img-blog.csdnimg.cn/direct/ab386bb77e46451aa8e7ac96752a60b9.jpeg)
100 个网络基础知识普及,看完成半个网络高手!
1)什么是链接? 链接是指两个设备之间的连接。它包括用于一个设备能够与另一个设备通信的电缆类型和协议。 2)OSI 参考模型的层次是什么? 有 7 个 OSI 层:物理层,数据链路层,网络层࿰…...
![](https://csdnimg.cn/release/blog_editor_html/release2.3.6/ckeditor/plugins/CsdnLink/icons/icon-default.png?t=N7T8)
高盛开源的量化金融 Python 库
GS Quant GS Quant是用于量化金融的Python工具包,建立在世界上最强大的风险转移平台之一之上。旨在加速量化交易策略和风险管理解决方案的开发,凭借25年的全球市场经验精心打造。 它由高盛的定量开发人员(定量)创建和维护&#…...
![](https://www.ngui.cc/images/no-images.jpg)
【Linux】docker和docker-compose 区别是什么
Docker 和 Docker Compose 是用于容器化应用的工具,它们在开发、部署和管理容器化应用程序时有不同的作用。以下是对它们的简要介绍和功能描述: Docker 定义: Docker 是一个开源的平台,允许开发者自动化地部署、扩展和管理应用程序容器。容器是一种轻量级、可移植、独立的软…...
![](https://i-blog.csdnimg.cn/direct/98b90c7697764deda22b571b501e1071.gif)
Qt图片缩放显示
在Qt中,如果你想显示图片的像素或者对图片进行缩放显示,可以使用 QImage 类来处理图片数据,并使用 QLabel 或自定义的 QWidget 来显示图片,但是很难通过鼠标进行缩放显示 QGraphicsView可以实现此功能 在Qt中,QGraphi…...
![](https://i-blog.csdnimg.cn/direct/fcc14d8ee26549d78ccaac71da8f6f14.png)
47、lvs之DR
1、DR模式: 1.1、lvs三种模式: nat 地址转换 DR 直接路由模式 tun 隧道模式 1.2、DR模式的特点: 调度器在整个lvs集群当中是最重要的,在nat模式下,即负载接收请求,同时根据负载均衡的算法转发流量&…...
![](https://i-blog.csdnimg.cn/direct/7d20ccf7ea6842a0a3a58a798bac8b8e.png)
分布式技术栈、微服务架构 区分
1.分布式技术栈 这些技术栈都是为了更好的开发分布式架构的项目。 (大营销平台的系统框架如下图,扩展的分布式技术栈) (1)Dubbo——分布式技术栈 DubboNacos注册中心是应用可以分布式部署,并且提供RPC接…...
![](https://i-blog.csdnimg.cn/direct/490586dfd90644b8bdda7b9dd4c058b3.png#pic_center#pic_center)
【JavaEE精炼宝库】文件操作(2)——文件内容读写 | IO流
文章目录 一、输入流1.1 InputStream 概述:1.2 read 方法详解:1.3 close 方法:1.4 利用 Scanner 进行读操作:1.5 Reader: 二、输出流2.1 OutputStream 概述:2.2 write 方法详解:2.3 利用 PrintW…...
![](https://www.ngui.cc/images/no-images.jpg)
C++ 指针变量做参数传递时的情况分析
前言 指针变量作为参数传递时,很容易混淆指针本身和指针指向的内容,实际应用中可能会导致无法预料的问题,所以做一下详细分析。 注意,在测试过程中为了看测试效果,有些指针变量分配了空间,但是未做回收&am…...
![](https://i-blog.csdnimg.cn/direct/32579eed840845d9bedc6f91708d6a1e.png)
Linux环境下Oracle 11g的离线安装与配置历程
在成功体验了 Windows 版本的Oracle 11g 后,这几天心血来潮,决定再挑战一下Linux 环境下的安装,特别是在考虑到部门内部虚拟机无法联网的情况下,我选择了在CentOS 7上进行离线安装。这次安装之旅,主要参考了下面大佬的…...
![](https://i-blog.csdnimg.cn/direct/00042dac9e7747d1a618791ae52286f4.png)
上位机图像处理和嵌入式模块部署(mcu项目2:串口日志记录器)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 淘宝上面有一个商品蛮好玩的,那就是日志记录器。说是记录器,其实就是一个模块,这个模块的输入是一个ttl串口&am…...
![](https://i-blog.csdnimg.cn/direct/192882a287474e92a5c0704278b970fc.png)
容器是线程不安全的,如果多线程下不加锁直接使用容器会发什么
可能存在的问题 数据竞争 当两个或多个线程同时读写同一个容器且至少有一个线程在写时,会导致数据竞争。这种情况下,容器的内部状态可能会被破坏,从而导致未定义行为。这些未定义的行为包括数据损坏,程序崩溃,以及无…...
![](https://i-blog.csdnimg.cn/direct/bcfa366086234530ac0f3d194d428cdc.png)
配置光源——笔记
一、灯光的类型 (一)Directional Light(定向光) 1、只改变方向变化,不记录位置变化 2、相当于太阳光 3、室外一般使用 (二)Spot 聚光灯:昏暗(凌晨或傍晚),有一个光斑…...
![](https://i-blog.csdnimg.cn/direct/713e71309cfd44e2a463c84f568af313.png)
Java---SpringBoot详解一
人性本善亦本恶, 喜怒哀乐显真情。 寒冬暖夏皆有道, 善恶终归一念间。 善念慈悲天下广, 恶行自缚梦难安。 人心如镜自省照, 善恶分明照乾坤。 目录 一,入门程序 ①,创建springboot工程&#…...
![](https://img-blog.csdnimg.cn/img_convert/4a95a436263aa85aa3fdd88ad6f52862.png)
MFC扩展库BCGControlBar Pro v35.0 - 可视化管理主题等全新升级
BCGControlBar库拥有500多个经过全面设计、测试和充分记录的MFC扩展类。 我们的组件可以轻松地集成到您的应用程序中,并为您节省数百个开发和调试时间。 BCGControlBar专业版 v35.0已全新发布了,这个版本改进类Visual Studio 2022的视觉主题、增强对多个…...
![](https://www.ngui.cc/images/no-images.jpg)
Springboot 配置 log4j2 时的注意事项
感谢博主 https://www.cnblogs.com/fishlittle/p/17950944 依赖 SpringBoot 的 spring-boot-starter/ spring-boot-starter-web 自带的是 logback 日志,若要使用 log4j2 日志,需要引入对应依赖。logback 日志和 log4j2 日志都是对 slf4j 门面的实现&am…...
![](https://i-blog.csdnimg.cn/direct/82578b378b544c038a050b94f4724329.png)
微服务-初级篇
微服务-初级篇 认识微服务1.1 单体架构1.2 分布式架构1.3 微服务 SpringCloud2.1 了解2.2 服务拆分原则2.3 服务拆分效果 Nacos注册中心3.1 认识和安装Nacos3.1.1 Nacos下载3.1.2 Nacos安装 3.2 服务注册到Nacos Feign远程调用4.1 Feign引入4.2 Feign配置 认识微服务 1.1 单体…...
![](https://i-blog.csdnimg.cn/direct/bf7a66810a4145edbe3fb146c5a4af99.png)
批量制作word表格
问题背景 将excel表中的成绩内容制作为成绩单,每页对应一个学员的成绩,方便打印 代码实现 ## 导入包 import pandas as pd from docx import Document from docx.enum.text import WD_ALIGN_PARAGRAPH,WD_LINE_SPACING# 读取 Excel 内容 df pd.read_e…...
![](https://www.ngui.cc/images/no-images.jpg)
代码随想录算法训练营:27/60
非科班学习算法day27 | LeetCode455:分发饼干 ,Leetcode376:摆动序列 ,Leetcode53:最大子数组和 介绍 包含LC的两道题目,还有相应概念的补充。 相关图解和更多版本: 代码随想录 (programmercarl.com)https://programmercarl.c…...
![](https://i-blog.csdnimg.cn/direct/60f41d1c2b8b49119df2aa699befa217.png#pic_center)
Redis 中String类型操作命令(命令演示,时间复杂度,返回值,注意事项)
String 类型 文章目录 String 类型set 命令get 命令mset 命令mget 命令get 和 mget 的区别incr 命令incrby 命令decr 命令decrby 命令incrbyfloat 命令append 命令getrange 命令setrange 命令 字符串类型是 Redis 中最基础的数据类型,在讲解命令之前,我们…...
![](https://i-blog.csdnimg.cn/direct/e60408480b724d939f9fd05da40dd91e.png)
2024亚太杯中文赛B题洪水灾害的数据分析与预测原创论文分享
大家好,从昨天肝到现在,终于完成了2024年第十四届 APMCM 亚太地区大学生数学建模竞赛B题洪水灾害的数据分析与预测的完整论文啦。 实在精力有限,具体的讲解大家可以去讲解视频: 2024亚太杯中文赛B题洪水灾害预测原创论文保姆级教…...
![](https://i-blog.csdnimg.cn/direct/af2fee1afa6f4c6d861f1346fa7d4b1f.png)
Oracle 19c 统一审计表清理
zabbix 收到SYSAUX表空间告警超过90%告警,最后面给出的清理方法只适合ORACLE 统一审计表的清理,传统审计表的清理SYS.AUD$不适合,请注意。 SQL> Col tablespace_name for a30 Col used_pct for a10 Set line 120 pages 120 select total.…...
![](https://i-blog.csdnimg.cn/direct/27304c33afbd48acadc4212b0178c8d2.png)
PostgreSQL(二十二)缓冲区管理器
目录 一、缓冲区概述 1、缓冲区结构 2、buffer_tag结构 3、Backend进程读取操作 4、写脏块 二、缓冲区管理器结构 1、第一层:Buffer Table layer(缓冲区表层) 2、第二层:Buffer Descriptor Layer(缓冲区描述层…...
![](https://img-blog.csdnimg.cn/img_convert/0760eb3ddae6665375780131ab7cc643.png)
流程制造业与离散制造业有何差异?流程行业智能制造关注什么?
在当今快速发展的工业领域,智能制造已经成为推动制造业转型升级的关键力量。随着“工业4.0”概念的提出,智能制造的理念和技术被广泛应用于各个制造行业,包括离散制造业和流程制造业。尽管智能制造的起源和发展在很大程度上受到了离散制造业的…...
![](/images/no-images.jpg)
手机制作网站的软件/定制网站
今天nowcoder上笔试做了一道字符移动的题目,大概意思就是把类似 *ab*cd***ef 的字符串移动为 *****abcdef ,开始用String做的,提交后提示50%的case过了,其他的case超时了。然后换成用StringBuilder就全部通过了,amazin…...
![](https://www.oschina.net/img/hot3.png)
富平做网站/推广什么app佣金高
2019独角兽企业重金招聘Python工程师标准>>> 死循环的时候 ctrlc 暂停程序 thread apply all bt 查看多线程堆栈 如果线程多需要多敲几下回车 输入c 继续运行程序 thread apply all bt 查看多线程堆栈 对比前后两次堆栈内容 有变化的线程可能是死循环的线程 转载于:…...
![](/images/no-images.jpg)
阳春市建设局网站/品牌活动策划
20 scala 学习笔记 更多干货 分布式实战(干货)spring cloud 实战(干货)mybatis 实战(干货)spring boot 实战(干货)React 入门实战(干货)构建中小型互联网企业…...
![](https://img-blog.csdnimg.cn/20200629182251721.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0NTRE4yNDk3MjQyMDQx,size_16,color_FFFFFF,t_70)
沈阳 网站建设/网站网页设计
前言:打脸了,前脚刚说过要跟Servlet正式告别。结果最近的面试被问到了同一个Servlet可不可以被映射到多个URL上,也就是如何用一个Servlet实现多个功能。 前置知识: Servlet容器如何处理请求资源路径? 1、这个地址 ht…...
![](https://img-blog.csdnimg.cn/2021071014561074.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTEwNjY0NzA=,size_16,color_FFFFFF,t_70)
wordpress tob8.0/手机百度电脑版入口
一 问题描述 问题描述前,请允许我,吐槽一下,这个问题困扰了一天,下面在业务层下的代码中,cache注解标注了value的名称,但是没有设置key,且传递的参数为 CrawlRecordParamVo crawlRecordParamV…...
![](https://img-blog.csdnimg.cn/img_convert/637c06e21c5ed56faaa121ade8e5fa13.png)
东莞微联建站/商业计划书
媒体报道的消息显示,金立前总裁卢伟冰加入小米,同时小米宣布旗下品牌红米改名为Redmi并独立运营,有分析认为卢伟冰可能将负责红米品牌,并巩固红米品牌在国际市场的竞争优势,而小米品牌则专注于高端手机市场。小米这一做…...