更改USB摄像头的比特率

Nic*_*Saw 3 video ffmpeg gstreamer raspberry-pi usb-camera

我使用带有 h264 编解码器输出的 ELP USB 摄像头。

ffmpeg-获取视频流的命令:

ffmpeg -i /dev/video1 -c:v copy output.ts
Run Code Online (Sandbox Code Playgroud)

结果我有一个 4Mb 比特率的视频 - 这个值对于我的任务来说太高了。

我使用GSTreamer时也出现同样的情况:

gst-launch-1.0 v4l2src device=/dev/video1 ! video/x-h264,width=1280,height=720,framerate=30/1 ! mpegtsmux ! filesink location=output.ts
Run Code Online (Sandbox Code Playgroud)

我知道如果我们首先解码 h264 流,然后再次将其编码为 h264,则可以更改比特率。此操作对我的 NanoPI 设备的 CPU 资源要求过高。

主要问题是: 是否可以在不解码的情况下更改 USB 相机的比特率?

提前致谢!

Nic*_*Saw 5

一些USB相机支持UVC协议,它允许您调整比v4l2-ctl更广泛的功能。

例如,要更改比特率而不解码:

gst-launch-1.0 uvch264src initial-bitrate=1500000 average-bitrate=1500000 iframe-period=1000 device=/dev/video0 name=src auto-start=true src.vidsrc ! video/x-h264,width=1280,height=720,framerate=30/1,profile=constrained-baseline ! h264parse ! mpegtsmux ! filesink location=output.ts
Run Code Online (Sandbox Code Playgroud)

重要的!ELP USB 摄像头不支持该协议。但是众所周知的罗技C920-是的,并且该命令是通过该相机进行测试的。

如果有人知道支持 h.264 编解码器和 UVC 协议的高清 USB 摄像机,请写信给我,我将非常感激。