我正在使用带有 h264 输出编解码器的 ELP USB 摄像头。
ffmpeg 命令获取流:
ffmpeg -i /dev/video1 -c:v copy output.ts
结果,我得到了比特率为 4Mbps 的视频,这对我的目的来说太多了。
使用 GSTreamer 时的类似情况:
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 太多的处理能力。
是否可以在不解码流的情况下更改 USB 摄像头比特率?
@nick_n_a 部分帮助解决了这个问题,提示了 UVC 协议的想法。部分 USB 摄像头支持 UVC 协议,这使得调整比 v4l2-ctl 更广泛的功能成为可能。
例如,您可以更改比特率而不进行转码,如下所示:
重要的!ELP 相机不支持这种美妙的协议。但是众所周知的罗技 C920 - 是的,这个命令已经过测试了。
如果有人知道支持 h.264 编解码器和 UVC 协议的高清 USB 摄像机,请写信,我将不胜感激。