在移动应用开辟中,偶尔必要利用设备的摄像头录制视频,并且希望在录制过程中能够正确控制视频的质量、格式和时长。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 可以根据需求机动配置,一切以实际为准,值越大视频就越大,找一个符合的值即可。
|