1

我对 avconv(或 ffmpeg)的使用有疑问。

我的目标是从网络摄像头捕获视频并将其保存到文件中。另外,我不想使用过多的 CPU 处理。(我不希望 avconv 缩放或重新编码流)

因此,我正在考虑使用来自网络摄像头的压缩 mjpeg 视频流并将其直接保存到文件中。

我的网络摄像头是 Microsoft LifeCam HD 3000,它的功能是:

ffmpeg -f v4l2 -list_formats all -i /dev/video0

Raw: yuyv422 : YUV 4:2:2 (YUYV) : 640x480 1280x720 960x544 800x448 640x360 424x240 352x288 320x240 800x600 176x144 160x120 1280x800

Compressed: mjpeg : MJPEG : 640x480 1280x720 960x544 800x448 640x360 800x600 416x240 352x288 176x144 320x240 160x120

什么是 avconv 命令可以直接保存压缩流而无需 avconv 进行缩放或重新编码。

现在,我正在使用这个命令:

avconv -f video4linux2 -r 30 -s 320x240 -i /dev/video0 test.avi

我不确定这个命令是否具有 CPU 效率,因为我没有告诉任何地方使用网络摄像头的 mjpeg 压缩功能。

avconv 是否在开始记录文件之前负责网络摄像头设置的配置?它总是在原始流上工作并对原始流进行缩放和编码吗?

感谢您的回答

4

1 回答 1

6

阅读实际文档™ 是您在现实生活中获得的最接近魔法的东西:

视频4linux2,v4l2

输入格式

设置首选像素格式(用于原始视频)或编解码器名称。当有几种输入格式可用时,此选项允许一个人选择输入格式。

视频大小

设置视频帧大小。参数必须是 WIDTHxHEIGHT 形式的字符串或有效的大小缩写。

该命令用于-c:v copy仅复制接收到的编码而不触及它,从而实现最低的资源使用:

ffmpeg -f video4linux2 -input_format mjpeg -video_size 640x480 -i /dev/video0 -c:v copy <output>
于 2015-09-10T08:40:00.260 回答