使用raspivid和cvlc以及低帧率和完整FOV

时间:2018-11-13 11:57:28

标签: video-streaming frame-rate

我有一个带有OV5647摄像头模块的Raspberry Pi,可用来从中传输视频。

--mode, -md使用一个名为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 的命令行参数,该参数提供了可以设置相机使用的几种模式。

1

我宁愿帧率低,图像质量好,而不是FPS高。

对于高质量视频,我想以全高清1920x1080进行流式传输,但是相机的模式2仅提供了部分FOV,这会大大减小拍摄区域,我真的需要完整的FOV。 / p>

我想选择模式4,以便我能以15 FPS的速率以全高清流式传输缩小的视频。

但是我被迫使用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 模式,因为它给了我25 FPS的帧率。

问题如下:

4

此命令有效。它将相机设置为25模式,使用clvc的fps并将视频传输到2

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

出于某种原因,[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) 似乎期望帧速率为25,并沿

的行记录了很多警告
[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

因此,我假设我正在收到这些account警告,因为raspivid发送的帧速仅为几fps,并且编码器的数据不足。该视频大约每10秒停顿一次,实际上使它无法使用。当它移动时,它加快了速度。

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

1 个答案:

答案 0 :(得分:0)

您可以通过将--h264-fps=15添加到cvlc来实现。

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}'

在Raspberry Pi 上,您必须将force_turbo=1添加到\boot\config.txt,但无需设置over_voltagearm_freq,因为那样会使保修无效。如果没有force_turbo=1,设备将在流式传输几个小时后冻结。