Raspberry Pi视频捕获与显示设置指南
1. Raspivid视频捕获工具
1.1 Raspivid简单使用
Raspivid是搭配树莓派相机模块的视频捕获命令行工具。当相机模块已连接并启用时,可使用以下命令录制视频:
raspivid -o vid.h264
若有需要,可像使用
raspistill
一样,使用
-hf
和
-vf
参数来翻转图像。此命令会将一段5秒的视频保存到指定路径下的
vid.h264
文件中(默认时长)。
1.2 指定视频长度
通过传递
-t
参数并附带毫秒数,可确定录制视频的时长。例如:
raspivid -o video.h264 -t 10000
该命令将录制一段时长为10秒的视频。
1.3 更多选项
若要查看所有可能的选项,可直接运行
raspivid
命令,或者将该命令的输出通过管道传递给
less
,然后滚动查看:
raspivid 2>&1 | less
使用箭头键滚动,输入
q
退出查看。
1.4 转换为MP4格式
树莓派捕获的视频是原始的H264视频流,许多媒体播放器可能无法播放,或者播放速度不正确,除非将其“封装”在如MP4这样合适的容器格式中。使用
MP4Box
是将Raspivid捕获的视频转换为MP4文件的最佳方法。
可使用以下命令下载
MP4Box
:
sudo apt -y install gpac
以下是捕获原始视频并将其封装为MP4容器的步骤:
1. 录制30秒分辨率为640x480、比特率为150kB/s的原始视频,并保存为
pivideo.h264
文件:
raspivid -t 30000 -w 640 -h 480 -fps 25 -b 1200000 -p 0,0,640,480 -o pivideo.h264
- 将原始视频封装到MP4容器中:
MP4Box -add pivideo.h264 pivideo.mp4
-
删除原始文件,只保留可播放的
pivideo.mp4文件:
rm pivideo.h264
2. HDMI显示设置
2.1 复合视频模式选项
2.1.1 sdtv模式
sdtv
模式命令用于指定复合视频输出所使用的电视标准。在初代树莓派上,RCA接口输出复合视频;除Pi Zero和Compute Module外,其他树莓派的4极TRRS(耳机)接口会同时输出复合视频和声音;Pi Zero上有一个未焊接的“TV”接口可输出复合视频;Compute Module可通过TVDAC引脚访问复合视频。
sdtv
模式的默认值为0。
sdtv
模式的取值及含义如下表所示:
| 值 | 模式 |
| ---- | ---- |
| 0 | NTSC NORMAL |
| 1 | NTSC Japanese edition - no pedestal |
| 2 | Regular Friend |
| 3 | Brazilian PAL version - 525/60 rather than 625/50, various subcarriers |
| 16 | NTSC Progressive Scan |
| 18 | PAL’s Progressive Scan |
2.1.2 sdtv宽高比
sdtv aspect
命令用于确定复合视频输出的宽高比,默认值为1。
sdtv aspect
的取值及对应的宽高比如下表所示:
| 值 | 宽高比 |
| ---- | ---- |
| 1 | 4:3 |
| 2 | 14:9 |
| 3 | 16:9 |
2.1.3 禁用彩色突发信号
将
sdtv disable colourburst
设置为1,可在复合视频输出时禁用彩色突发信号。图像将以单色显示,但可能会更清晰。
2.1.4 启用复合输出(仅适用于Pi 4B)
由于树莓派4内部时钟的相互关联和分配方式,复合视频输出默认是禁用的。因为复合视频需要特定的时钟,将树莓派4的时钟设置为所需速度会对其他相关时钟产生不利影响,导致整个设备略微变慢。为避免设备性能下降,设计上默认禁用了复合视频输出。
可使用
enable tvout=1
选项来启用复合输出,但这会在一定程度上影响性能。
2.2 HDMI模式选项
2.2.1 端口说明
树莓派4B有两个HDMI端口,部分HDMI命令可应用于任意一个端口。可使用
<命令>:<端口>
的表示法来指定设置应用的端口,端口号为0或1。若未指定端口,则默认使用端口0。若为不需要端口号的命令指定了端口号,该端口号将被忽略。
2.2.2 HDMI安全模式
将
hdmi_safe
设置为1,可尝试以完全HDMI兼容模式启动,这相当于设置以下参数:
hdmi_force_hotplug=1
hdmi_ignore_edid=0xa5000080
config_hdmi_boost=4
hdmi_group=2
hdmi_mode=4
disable_overscan=0
overscan_left=24
overscan_right=24
overscan_top=24
overscan_bottom=24
2.2.3 忽略EDID数据
若显示器没有准确的EDID信息,将
hdmi_ignore_edid
设置为
0xa5000080
,可忽略EDID/显示数据。为避免意外激活,需要使用这个特殊值。
2.2.4 从文件读取EDID数据
将
hdmi_edid_file
设置为1,GPU将从启动分区中的
edid.dat
文件读取EDID数据。
2.2.5 指定EDID文件名(仅适用于树莓派4B)
可使用
hdmi_edid_filename
命令指定要使用的EDID文件的文件名,以及该文件应用的端口。同时,需要将
hdmi_edid_file
设置为1。例如:
hdmi_edid_file=1
hdmi_edid_filename:0 = FileForPortZero.edid
hdmi_edid_filename:1 = FileForPortOne.edid
2.2.6 强制音频支持
将
hdmi_force_edid_audio
设置为1,可让显示器假装支持所有音频格式,即使显示器未记录支持DTS/AC3音频透传,也能实现该功能。
2.2.7 忽略音频支持
将
hdmi_ignore_edid_audio
设置为1,可让显示器假装不支持所有音频格式,这意味着模拟音频(耳机)插孔将切换到ALSA。
2.2.8 强制3D支持
将
hdmi_force_edid_3d
设置为1,即使EDID未表明支持3D,也能让所有CEA模式假装支持3D。
2.2.9 忽略CEC初始化
在启动时,将
hdmi_ignore_cec_init
设置为1,可避免发送初始活动源消息,防止在重启支持CEC的电视时,树莓派从待机状态唤醒并切换频道。
2.2.10 忽略CEC功能
将
hdmi_ignore_cec
设置为1,可让电视假装完全不支持CEC,即不支持任何CEC功能。
2.2.11 设置CEC显示名称
cec_osd_name
命令用于设置设备的初始CEC名称,默认名称为“Raspberry Pi”。
2.2.12 像素编码模式
hdmi_pixel_encoding
命令用于强制设置像素编码模式。默认情况下,将使用EDID请求的模式,通常无需更改。
hdmi_pixel_encoding
的取值及含义如下表所示:
| 值 | 编码模式 |
| ---- | ---- |
| 0 | Default (RGB for CEA minimal, RGB for DMT full) |
| 1 | Minimal RGB (16 - 235) |
| 2 | Total RGB (0 - 255) |
| 3 | Minimal YCbCr (16 - 235) |
| 4 | Absolute YCbCr (0 - 255) |
2.2.13 HDMI空白模式
hdmi_blanking
命令用于控制当操作系统使用DPMS(显示电源管理信号)要求显示器进入待机模式以节省电源时的操作。若未设置该选项或设置为0,HDMI输出将被置为空白但不会关闭;若将该选项设置为1,可模仿其他计算机的操作,关闭HDMI输出,使连接的显示器进入低功耗待机模式。
在树莓派4上,将
hdmi_blanking
设置为1不会关闭HDMI输出,因为该功能尚未实现。需要注意的是,在使用不使用帧缓冲的应用程序(如
omxplayer
)时,此功能可能会导致问题。
hdmi_blanking
的取值及含义如下表所示:
| 值 | 结果 |
| ---- | ---- |
| 0 | The HDMI output is blanked out |
| 1 | You can turn off and blank the HDMI output |
2.2.14 HDMI驱动模式
hdmi_drive
命令可让你在HDMI和DVI的性能模式之间进行选择。
hdmi_drive
的取值及含义如下表所示:
| 值 | 模式 |
| ---- | ---- |
| 1 | Normal mode for DVI (no sound) |
| 2 | Normal HDMI mode (if supported and allowed, sound will be sent) |
2.2.15 HDMI信号增强
config_hdmi_boost
用于配置HDMI接口的信号功率,取值范围为0到11。初代Model B和A的默认值为2,Model B+及后续版本的默认值为5。
若出现HDMI问题(如斑点、干扰),可尝试将其设置为7。设置为11可能需要非常长的HDMI电缆,除非绝对必要,否则不应使用这么高的值。在树莓派4上,该选项会被忽略。
2.2.16 HDMI输出组
hdmi_group
命令用于指定HDMI输出组,可选择CEA(消费电子协会,通常用于电视的标准)或DMT(显示监视器时序,通常用于显示器的标准)。该设置可与
hdmi_mode
配合使用。
综上所述,通过合理使用Raspivid工具和各种HDMI显示设置选项,能够充分发挥树莓派在视频捕获和显示方面的功能。在实际应用中,可根据具体需求灵活调整各项参数,以获得最佳的使用体验。
3. 操作流程总结与流程图
3.1 Raspivid视频录制及转换为MP4流程
以下是使用Raspivid录制视频并将其转换为MP4格式的详细操作流程:
1.
安装MP4Box
:若尚未安装
MP4Box
,使用以下命令进行安装:
sudo apt -y install gpac
-
录制原始视频
:根据需求设置视频的时长、分辨率、帧率、比特率等参数,使用
raspivid命令录制视频。例如,录制30秒分辨率为640x480、比特率为150kB/s的视频:
raspivid -t 30000 -w 640 -h 480 -fps 25 -b 1200000 -p 0,0,640,480 -o pivideo.h264
-
封装为MP4格式
:使用
MP4Box将原始的H264视频文件封装为MP4格式:
MP4Box -add pivideo.h264 pivideo.mp4
- 删除原始文件 :封装完成后,删除原始的H264文件,只保留MP4文件:
rm pivideo.h264
下面是该流程的mermaid格式流程图:
graph LR
A[安装MP4Box] --> B[录制原始视频]
B --> C[封装为MP4格式]
C --> D[删除原始文件]
3.2 树莓派4B启用复合输出流程
树莓派4B默认禁用复合视频输出,若需要启用,可按照以下流程操作:
1.
了解性能影响
:由于复合视频需要特定时钟,启用复合输出会对其他相关时钟产生不利影响,导致设备性能略有下降。
2.
启用复合输出
:使用
enable tvout=1
选项启用复合输出。在配置文件(如
config.txt
)中添加或修改该选项:
enable tvout=1
- 保存并重启 :保存配置文件后,重启树莓派使设置生效。
对应的mermaid格式流程图如下:
graph LR
A[了解性能影响] --> B[启用复合输出]
B --> C[保存并重启]
4. 常见问题及解决方法
4.1 Raspivid相关问题
4.1.1 视频无法正常录制
-
问题表现
:执行
raspivid命令后,没有生成视频文件或录制过程中出现错误。 - 可能原因 :相机模块未正确连接或未启用;命令参数设置错误。
-
解决方法
:检查相机模块的连接是否稳固,确保相机模块已在树莓派配置中启用;仔细检查
raspivid命令的参数,确保参数设置正确。
4.1.2 视频格式不兼容
- 问题表现 :使用媒体播放器无法播放Raspivid录制的视频文件。
- 可能原因 :树莓派捕获的是原始H264视频流,未封装在合适的容器格式中。
-
解决方法
:按照前文介绍的方法,使用
MP4Box将原始H264视频文件封装为MP4格式。
4.2 HDMI显示相关问题
4.2.1 HDMI无信号输出
- 问题表现 :连接HDMI设备后,显示器无信号显示。
- 可能原因 :HDMI电缆连接松动;HDMI接口损坏;HDMI设置参数不正确。
-
解决方法
:检查HDMI电缆的连接是否牢固,尝试更换HDMI电缆;若怀疑HDMI接口损坏,可更换其他HDMI端口或设备进行测试;检查HDMI设置参数,如
hdmi_group、hdmi_mode等,确保设置正确。
4.2.2 显示画面出现干扰或斑点
- 问题表现 :HDMI显示的画面出现干扰线条或斑点。
- 可能原因 :HDMI信号强度不足;HDMI电缆过长或质量不佳。
-
解决方法
:尝试调整
config_hdmi_boost参数,提高HDMI信号功率;若使用的HDMI电缆过长或质量不佳,可考虑更换为质量更好的短电缆。
5. 总结与建议
5.1 总结
本文详细介绍了Raspivid视频捕获工具的使用方法,包括简单录制、指定视频长度、查看更多选项以及将视频转换为MP4格式的操作步骤。同时,对树莓派的HDMI显示设置进行了全面阐述,涵盖复合视频模式选项和HDMI模式选项的各个参数设置。此外,还总结了操作流程、绘制了流程图,并针对常见问题提供了相应的解决方法。
5.2 建议
- 在使用Raspivid录制视频时,根据实际需求合理设置视频的时长、分辨率、帧率和比特率等参数,以获得最佳的视频质量。
- 在进行HDMI显示设置时,先了解各个参数的含义和作用,再根据连接的显示设备进行适当调整。若遇到问题,可参考常见问题及解决方法进行排查。
- 对于树莓派4B,在启用复合输出时要充分考虑其对设备性能的影响,根据实际使用场景决定是否启用。
通过本文的介绍,相信读者能够更好地掌握树莓派在视频捕获和显示方面的功能,在实际应用中灵活运用各项设置,获得满意的效果。
超级会员免费看
890

被折叠的 条评论
为什么被折叠?



