Rock5/guide/hdmiin
ROCK 5 > Guide > How to use hdmi in
ROCK 5B has an HDMI-IN connector that supports the standard HDMI 2.0 protocol and can support video input up to 2160p@60Hz.
Contents
Requirement
- ROCK 5B
- Micro HDMI Cable
How to test HDMI-IN
HDMI-IN devices will be registered as video devices in the kernel, with the generated node /dev/video0, which can be used to get device information and capture frames with the v4l2-ctl command.
Check device info
$ v4l2-ctl -d /dev/video0 -D Driver Info: Driver name : rk_hdmirx Card type : rk_hdmirx Bus info : fdee0000.hdmirx-controller Driver version : 5.10.66 Capabilities : 0x84201000 Video Capture Multiplanar Streaming Extended Pix Format Device Capabilities Device Caps : 0x04201000 Video Capture Multiplanar Streaming Extended Pix Format
Confirm resolution and image format
$ v4l2-ctl -d /dev/video0 --get-fmt-video Format Video Capture Multiplanar: Width/Height : 3840/2160 Pixel Format : 'NV12' (Y/CbCr 4:2:0) Field : None Number of planes : 1 Flags : premultiplied-alpha, 0x000000fe Colorspace : SMPTE 170M Transfer Function : Default YCbCr/HSV Encoding: Unknown (0x000000ff) Quantization : Default Plane 0 : Bytes per Line : 3840 Size Image : 12441600
Get current timings
$ v4l2-ctl -d /dev/video0 --get-dv-timings DV timings: Active width: 3840 Active height: 2160 Total width: 4120 Total height: 2250 Frame format: progressive Polarities: -vsync -hsync Pixelclock: 297000000 Hz (32.04 frames per second) Horizontal frontporch: 88 Horizontal sync: 44 Horizontal backporch: 148 Vertical frontporch: 8 Vertical sync: 10 Vertical backporch: 72 Standards: Flags:
Capture image file with setting resolution and pixel format
Set HDMI2 to 4k display and connect to hdmiin.
$ v4l2-ctl --verbose -d /dev/video0 --set-fmt-video=width=3840,height=2160,pixelformat='NV12' --stream-mmap=4 --stream-skip=3 --stream-count=5 --stream-to=/home/rock/hdmiin4k.yuv --stream-poll
How to check image file
Use 7yuv tool on Window.
Use ffplay tool on linux.
$ ffplay -f rawvideo -video_size 3840x2160 -pixel_format nv12 /home/rock/hdmiin4k.yuv
How to check audio function
When your hdmiin has audio input, you can use arecord to get audio from hdmiin port and play it on headphones.
$ arecord -l **** List of CAPTURE Hardware Devices **** card 2: rockchipes8316 [rockchip-es8316], device 0: fe470000.i2s-ES8316 HiFi es8316.7-0011-0 [fe470000.i2s-ES8316 HiFi es8316.7-0011-0] Subdevices: 1/1 Subdevice #0: subdevice #0 card 3: rockchiphdmiin [rockchip,hdmiin], device 0: fddf8000.i2s-dummy_codec hdmiin-dc-0 [fddf8000.i2s-dummy_codec hdmiin-dc-0] Subdevices: 1/1 Subdevice #0: subdevice #0
As you can see, hdminrx (hdmiin) has a sound card number of 2. You can run the following command to record and play audio when HDMI-IN has audio input.
# get 5 seconds audio file $ arecord -Dhw:3,0 -d 5 -f cd -r 44100 -c 2 -t wav /tmp/hdmiin_audio.wav # play on headphone $ aplay -D plughw:2,0 /tmp/hdmiin_audio.wav