Video streaming 使用raspivid和cvlc以及低帧率和全视野
我有一个覆盆子圆周率与OV5647相机模块,我用它来流视频Video streaming 使用raspivid和cvlc以及低帧率和全视野,video-streaming,frame-rate,Video Streaming,Frame Rate,我有一个覆盆子圆周率与OV5647相机模块,我用它来流视频 raspivid接受一个名为--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
raspivid
接受一个名为--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
我宁愿有一个低帧率和良好的图像质量,而不是高FPS
对于高质量的视频,我希望以全高清1920x1080流媒体,但是相机的模式1
只提供了部分视场,这大大减少了拍摄区域,我真的需要全视场
我想选择模式2
,这样我就可以以15 FPS的速度以全高清播放缩小的视频
然而,我不得不使用mode4
,因为它给我的帧速率是25fps
问题如下:
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,并记录了大量的警告
[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)
开头还有一条信息性消息,声称
[73b12410] main decoder debug: using packetizer module "h264"
[73e00568] main input debug: switching to sync mode
[73b088b8] h26x demux debug: using 25.00 fps
因此,我假设我得到了那些延迟缓冲区
警告,因为raspivid发送到的fps很少,编码器没有足够的数据。视频大约每10秒冻结一次,真的让它无法使用。当它移动时,它会加速
我如何告诉h264编码器它应该以15 FPS的输入输出速度而不是25 FPS的输出速度工作?您可以通过将
--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 Zero上,您必须将force_turbo=1
添加到\boot\config.txt
,但不设置过电压
和arm_freq
,因为这将使保修无效。如果没有force_turbo=1
,设备将在流媒体播放数小时后冻结