video - 更改 USB 摄像头的比特率

标签 video ffmpeg raspberry-pi gstreamer usb-camera

我使用带有 h264-codec 输出的 ELP USB 摄像头。

ffmpeg-command to take the video stream:

ffmpeg -i /dev/video1 -c:v copy output.ts

结果我有一个 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

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

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

提前致谢!

最佳答案

一些 USB 相机支持 UVC 协议(protocol),它允许您调整比 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-cam 不支持此协议(protocol)。但是大名鼎鼎的罗技C920——是的,而且命令都是用这个摄像头测试的。

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

关于video - 更改 USB 摄像头的比特率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53557337/

相关文章:

node.js - nodejs中的异步覆盆子pi gpio事件

c++ - avcodec_open2 错误 -542398533 : "Generic error in an external library"

python - GCC 不使用安装到虚拟环境的库进行编译

video - ffmpeg 可以从文件中的特定位置解析吗?

python - 用动态语言编码视频的好库?

带有控制按钮的视频播放器的 CSS 样式

php - clipbucket 视频脚本中的 ffmpeg -movflags +faststart

ffmpeg - 使用 Ffmpeg 从特定目录写入另一个特定目录

c++ - 如何通过cmake链接ffmpeg库?

python - pyOpenCv 无法在树莓派上运行