FFmpeg 是一个非常强大的视频处理工具。大多数应用都会使用 FFmpeg 来处理视频。我的 Network RC 项目也使用了 FFmpeg 来处理视频。
Video4Linux2
Video4Linux2(v4l2) 是 Linux 上的一个视频采集框架,它提供了一套统一的接口,可以方便的接入视频设备的输入和输出。FFmpeg 也可以通过 Video4Linux2 接口来采集摄像头的视频。
v4l2-ctl
v4l2-ctl 是 Video4Linux2 的一个命令行工具,可以用来查看和设置视频设备的参数。
1 | # 查看视频输入设备 |
FFmpeg 使用 Video4Linux2 采集摄像头
输入设备
在 ffmpeg 命令中,使用 -f v4l2
或 -f video4linux2
指定视频输入接口为 Video4Linux2。
使用 -i /dev/video0
指定视频输入设备路径为。
1 | ffmpeg -f v4l2 -i /dev/video0 -c:v libx264 -preset ultrafast -f mp4 camera-test.mp4 |
采集格式
使用 -input_format
指定视频输入格式。
1 | ffmpeg -f v4l2 -i /dev/video0 -input_format yuyv422 -c:v libx264 -preset ultrafast -f mp4 camera-test.mp4 |
分辨率
使用 -video_size
指定视频分辨率。
1 | ffmpeg -f v4l2 -i /dev/video0 -video_size 1920x1080 -c:v libx264 -preset ultrafast -f mp4 camera-test.mp4 |
帧率
使用 -framerate
指定视频帧率。
1 | ffmpeg -f v4l2 -i /dev/video0 -framerate 30 -c:v libx264 -preset ultrafast -f mp4 camera-test.mp4 |