在安卓中利用FFmpeg录制摄像头的视频并生存到当地MP4文件 ...

锦通  金牌会员 | 2024-7-14 22:26:48 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 555|帖子 555|积分 1665

在移动应用开辟中,偶尔必要利用设备的摄像头录制视频,并且希望在录制过程中能够正确控制视频的质量、格式和时长。FFmpeg作为一个强盛的多媒体处理惩罚工具,提供了广泛的功能和选项,能够帮助我们实现这样的需求。
  添加依赖

在安卓平台上,可以利用 com.arthenica:mobile-ffmpeg-full 库来实现这一目标。
  1. implementation 'com.arthenica:mobile-ffmpeg-full:4.4'
复制代码
堆栈地址:https://github.com/tanersener/mobile-ffmpeg
更多 ffmpeg 的其他用法,参考上述地址文档示例
利用FFmpeg录制视频的命令

  1. 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 可以根据需求机动配置,一切以实际为准,值越大视频就越大,找一个符合的值即可。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

锦通

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表