在 Raspberry Pi 官網上面看到 Raspberry Pi 4 Model B 規格寫說支援 H264 (1080p60 decode, 1080p30 encode),想試試看能不能擷取 HDMI 訊號、推送 1080p30 串流作直播。
先上一下這次的執行環境資訊:
pi@raspberrypi:~ $ uname -a
Linux raspberrypi 5.10.17-v7l+ #1403 SMP Mon Feb 22 11:33:35 GMT 2021 armv7l GNU/Linux
pi@raspberrypi:~ $ ffmpeg -hide_banner -version
ffmpeg version 4.1.6-1~deb10u1+rpt1 Copyright (c) 2000-2020 the FFmpeg developers
built with gcc 8 (Raspbian 8.3.0-6+rpi1)
用 FFmpeg 直播的原理大致上如下
- 透過 v4l2 獲得 HDMI 擷取卡的影像訊號
- 透過 alsa 獲得 HDMI 擷取卡的聲音訊號
- 將影像訊號透過 OpenMAX 以硬體加速編碼成 h264 格式
- 將聲音訊號編碼成 aac 格式
- 以 flv 作為 muxer,將影像訊號和聲音訊號包在一起,推送 rtmp 串流到 YouTube 進行直播