首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用raspivid和cvlc,同时使用低框架和全FOV

使用raspivid和cvlc,同时使用低框架和全FOV
EN

Stack Overflow用户
提问于 2018-11-13 11:57:28
回答 1查看 1.4K关注 0票数 3

我有一个树莓Pi与一个OV5647相机模块,我使用的视频流。

raspivid接受一个名为--mode, -md的命令行参数,它提供了相机可以设置使用的几种模式。

代码语言:javascript
复制
Mode  Size      AR Frame rates    FOV    Binning
0   automatic
    selection
1   1920x1080  16:9     1-30fps  Partial None
2   2592x1944   4:3     1-15fps  Full    None
3   2592x1944   4:3 0.1666-1fps  Full    None
4   1296x972    4:3     1-42fps  Full    2x2
5   1296x730   16:9     1-49fps  Full    2x2
6    640x480    4:3  42.1-60fps  Full    2x2 plus skip
7    640x480    4:3  60.1-90fps  Full    2x2 plus skip

我宁愿有一个低框架和良好的图像质量,而不是高的FPS。

对于一个高质量的视频,我想在全高清1920x1080,但模式1的相机只给它一个部分视场,这大大减少了胶片面积,我真的需要全视场。

我想选择模式2,以便我可以在15 FPS的全高清压缩视频流。

然而,我被迫使用模式4,因为它给我的框架25个FPS。

问题如下:

代码语言:javascript
复制
raspivid -o - \
         -t 0 \
         -n \
         -hf -vf \
         -g 25 \
         -pf high \
         -md 4 \
         -fps 25 \
         -b 10000000 \
| cvlc -vvv \
    stream:///dev/stdin \
    --no-audio \
    --sout '#standard{access=http,mux=ts,dst=:8090}' \
    :demux=h264

这个命令起作用了。它将摄像机设置为4模式,使用25的fps并将视频导入clvc

当我将模式设置为2并将fps降为15时,这将不再起作用。

出于某种原因,cvlc似乎期望框架为25,记录了许多类似于

代码语言:javascript
复制
[73b02cf8] main mux warning: late buffer for mux input (17958)
[73b02cf8] main mux warning: late buffer for mux input (2025)
[73b02cf8] main mux warning: late buffer for mux input (14107)
[73b02cf8] main mux warning: late buffer for mux input (2890)
[73b02cf8] main mux warning: late buffer for mux input (20115)

在开始的时候也有一条信息表明

代码语言:javascript
复制
[73b12410] main decoder debug: using packetizer module "h264"
[73e00568] main input debug: switching to sync mode
[73b088b8] h26x demux debug: using 25.00 fps

所以我假设我收到了那些late buffer警告,因为raspivid发送给了几个fps,而且它对编码器来说是不够的。这段视频每隔10秒就会结冰一次,确实使它无法使用。当它移动时,它会加速。

我如何告诉h264编码器,它应该工作在15 FPS,而不是25 FPS?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-27 10:29:17

您可以通过将--h264-fps=15添加到cvlc来做到这一点。

代码语言:javascript
复制
raspivid -o - \
         -t 0 \
         -n \
         -hf -vf \
         -g 15 \
         -pf high \
         -md 2 \
         -fps 15 \
         -br 55 \
         -ISO 800 \
         -ae 32,0x00,0x8080FF \
         -a 4 \
         -a "%Y-%m-%d %X" \
         -b 10000000 \
| cvlc -vvv \
    stream:///dev/stdin \
    --no-audio \
    --demux=h264 \
    --h264-fps=15 \
    --sout '#standard{access=http,mux=ts,dst=:8090}'

在一个树莓Pi零,你必须添加force_turbo=1\boot\config.txt,但不设置over_voltagearm_freq,因为这将取消保修。在没有force_turbo=1的情况下,该设备将在流媒体后冻结几个小时。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53280550

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档