我使用带有h264编解码器输出的ELP USB相机。
获取视频流的Ffmpeg命令:
ffmpeg -i /dev/video1 -c:v copy output.ts
因此,我有一个4Mb比特率的视频-这个值对于我的任务来说太高了。
当我使用GSReamer时也有同样的情况:
gst-launch-1.0 v4l2src device=/dev/video1 ! video/x-h264,width=1280,height=720,framerate=30/1 ! mpegtsmux ! filesink location=output.ts
我知道,如果我们首先对流进行h264解码,然后再次将其编码为h264,则可以更改比特率。此操作需要我的NanoPI设备的CPU功率太大。
主要问题是:是否可以在不解码的情况下更改USB摄像头的比特率
提前感谢!
一些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
重要!ELP USB摄像头不支持此协议。但著名的罗技C920是的,并且该命令是通过这个相机测试的。
如果有人知道支持h.264编解码器和UVC协议的高清USB相机,请写信给我,我将不胜感激。