跳到主要内容

搭配 ROCK 4D 使用

ROCK 4D 的 4-lane MIPI CSI 接口可以连接瑞莎 4K HDMI IN 转 MIPI CSI-2 转接板采集 HDMI 视频,转接板的 I2S 接口可以从 HDMI 信号中提取并输出数字音频。

  • 视频:通过 ROCK 4D 的 4-lane MIPI CSI 采集
  • 音频:通过 ROCK 4D 的 SAI2_M0(I2S)采集

硬件连接​

可以根据需要采集 HDMI 视频或音频。

采集 HDMI 视频​

将 HDMI 输出设备(例如 PC 的 HDMI 输出口)连接到转接板的 HDMI IN 接口,再使用 FPC 排线(AC006,31P 0.3 mm 转 31P 0.3 mm,异面)把转接板的 4-lane MIPI CSI 接口连接到主板的 MIPI CSI 接口。

采集 HDMI 音频​

使用杜邦线连接主板和转接板的 I2S 接口。

说明

主板与转接板之间的排线已经共地,因此采集 HDMI 音频时不需要额外连接 GND。

软件使能​

更新 Radxa OS 自带的 Rsetup 工具,并启用转接板相关的 Overlays。

更新系统​

进入 System → System Update,按提示完成更新。更新内容可能包含新的内核、RK628 驱动和 Overlay。

radxa@rock-4d$
sudo rsetup

启用设备​

进入 Overlays → Manage overlays,勾选对应的选项:

  • 采集 HDMI 视频:Enable Radxa 4K HDMI IN to MIPI CSI-2 Adapter on 4-lane CSI
  • 采集 HDMI 音频:Enable SAI2-M0 capture-only dummy sound card
说明
  • 只采集视频时可以只启用视频项;需要音频时必须同时启用两项。
  • 不要同时启用其他占用同一个 MIPI CSI 接口或 SAI2_M0 引脚的 Overlay。

保存设置后重启系统:

radxa@rock-4d$
sudo reboot

检查设备​

使用以下命令确认 RK628 是否被正确识别:

radxa@rock-4d$
sudo dmesg | grep -i rk628

正确识别时会输出类似信息,出现 rk628-csi-v4l2 found 和 New format 后即可继续测试:

RK628 I2C driver version: 00.01.00
rk628 version is: RK628F/H (20230321)
rk628-csi-v4l2 found @ 0xa0 (rk3x-i2c)
rk628_csi_format_change: New format: 1920x1080p60.00 (2200x1125)
分辨率说明

转接板的 MIPI CSI 输出分辨率由驱动内置的 EDID 与 HDMI 信号源协商决定:默认 EDID 已集成若干常见分辨率,Radxa OS 当前不提供在系统侧手动设置输出分辨率的方法。dmesg 中的 New format 即当前协商出的分辨率,采集命令中的 width / height 需要与之一致。

如需修改默认 EDID(例如固定输出某个分辨率),需要修改驱动,或由驱动提供接口动态加载 EDID,请联系瑞莎技术支持确认。

采集 HDMI 音视频​

采集 HDMI 视频​

在主板的图形桌面终端运行以下命令:

gst-launch-1.0 -e -v \
  v4l2src device=/dev/video0 do-timestamp=true ! \
    video/x-raw,format=NV16,width=1920,height=1080,framerate=30/1 ! \
    queue ! videoconvert ! glimagesink sync=true

正常情况下桌面会出现 HDMI 预览画面,按 Ctrl+C 停止运行。

如果画面出现花屏等现象,可以关闭主板电源,重新检查硬件连接后再次测试。

录制 HDMI 音频​

确认主板已连接耳机或音箱,并且 HDMI 输出设备的音频已经输出到 HDMI。

以下为单行命令,可直接复制执行:在后台保持约 8 秒视频取流,同时录制 5 秒 WAV 文件。由于 RK628 的音频输出需要视频采集链路保持运行,录制期间不能停止视频取流。

bash -c 'v4l2-ctl -d /dev/video0 --set-fmt-video=width=1920,height=1080,pixelformat=NV12 --stream-mmap=3 --stream-poll --stream-count=480 --stream-to=/dev/null >/dev/null 2>&1 & video_pid=$!; sleep 1; arecord -D hw:CARD=sai2capture,DEV=0 -f S16_LE -r 48000 -c 2 -d 5 -t wav rk628-audio.wav; wait "$video_pid"'

视频数据写入 /dev/null,不会生成视频文件。

播放录音​

aplay -D plughw:CARD=rockchipes8388,DEV=0 rk628-audio.wav

同时播放视频和声音​

确认主板已连接耳机或音箱,并且 HDMI 输出设备的音频已经输出到 HDMI,然后在主板的图形桌面终端运行:

gst-launch-1.0 -e -v \
  v4l2src device=/dev/video0 do-timestamp=true ! \
    video/x-raw,format=NV16,width=1920,height=1080,framerate=30/1 ! \
    queue ! videoconvert ! glimagesink sync=true \
  alsasrc device="hw:CARD=sai2capture,DEV=0" do-timestamp=true ! \
    audio/x-raw,format=S16LE,rate=48000,channels=2 ! \
    queue ! audioconvert ! audioresample ! \
    alsasink device="plughw:CARD=rockchipes8388,DEV=0" sync=true

正常情况下,桌面会显示 HDMI 画面,主板音频输出口会播放 HDMI 声音。

常见问题​

没有 RK628 日志?​

检查 Overlay 是否已经保存:

radxa@rock-4d$
grep fdtoverlays /boot/extlinux/extlinux.conf

音视频采集应该包含:

rk3576-sai2-2ch-m0-capture-only.dtbo
rock-4d-radxa-hdmi-in-4k-rk628.dtbo

如果没有 RK628 视频 Overlay,请返回 rsetup 重新启用,并检查硬件连接是否正确。

一直显示 no signal 或 lock failed?​

开机早期短暂出现这些日志不一定是故障。如果后续始终没有 New format,请检查:

  • HDMI 信号源是否已经开机并开始输出
  • HDMI 线是否可靠
  • FPC 排线是否正确连接

不确定 RK628 对应哪个视频节点?​

不同系统或 Overlay 配置下,视频节点编号可能变化,可以按以下步骤查找。

查找 RK628 所在的媒体设备:

radxa@rock-4d$
for m in /dev/media*; do media-ctl -p -d "$m" 2>/dev/null | grep -qi rk628 && echo "RK628 位于 $m"; done

查询主视频采集节点:

radxa@rock-4d$
media-ctl -d /dev/media0 -e 'stream_cif_mipi_id0'

如果输出的节点不是 /dev/video0,请把教程命令中的视频节点替换为实际节点。

采集 30 帧验证节点:

v4l2-ctl --verbose -d /dev/video0 --set-fmt-video=width=1920,height=1080,pixelformat=NV12 --stream-mmap=3 --stream-poll --stream-count=30 --stream-to=/dev/null

如果终端连续输出 cap dqbuf 帧信息并正常结束,说明视频节点选择正确。

不确定 HDMI 音频对应哪个设备?​

不同系统版本或硬件配置下,声卡编号可能不同,重启后也可能变化,可以按以下步骤查找。

查找 HDMI 音频采集设备:

radxa@rock-4d$
arecord -l

启用音频 Overlay 后,应该能找到包含 sai2capture 的设备:

  • 声卡名称:sai2capture
  • 设备编号:0
  • 录音命令应使用 hw:CARD=sai2capture,DEV=0
说明

arecord -l 显示的 card N 编号由系统临时分配,重启后可能改变,因此不建议在命令中固定写成 hw:N,0。

如果 arecord -l 中没有 sai2capture,请检查是否启用了音频 Overlay,并在保存后重启系统。

查找声音播放设备:

radxa@rock-4d$
aplay -l

应能找到包含 rockchipes8388 的设备,对应的播放设备为 plughw:CARD=rockchipes8388,DEV=0。

如果使用 USB 声卡或其他播放设备,请把教程命令中的播放设备替换为 aplay -l 显示的实际设备。只录制音频、不在主板上播放时,无需查找播放设备。

    您需要登录 GitHub 才能发表评论。如果您已登录,请忽略此消息。

    Radxa-docs © 2026 by Radxa Computer (Shenzhen) Co.,Ltd. is licensed under CC BY 4.0