在安卓中使用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 可以根据需求灵活配置,一切以实际为准,值越大视频就越大,找一个合适的值即可。

🆗,就这些雷,我替大家踩了,下班。

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-12 07:10:03       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-12 07:10:03       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-12 07:10:03       58 阅读
  4. Python语言-面向对象

    2024-07-12 07:10:03       69 阅读

热门阅读

  1. 路由器概述以及静态路由配置

    2024-07-12 07:10:03       25 阅读
  2. hnust 1963: 邻接矩阵表示法

    2024-07-12 07:10:03       23 阅读
  3. 在Linux系统,高效管理Python数据采集程序!

    2024-07-12 07:10:03       29 阅读
  4. 【Vue】vue3中使用swipe竖直方向上滚动

    2024-07-12 07:10:03       20 阅读
  5. C语言从头学30——字符串

    2024-07-12 07:10:03       18 阅读
  6. Git使用简介及相关命令

    2024-07-12 07:10:03       26 阅读
  7. 基于深度学习的视频内容分析

    2024-07-12 07:10:03       27 阅读