Bekijken op YouTube · Interactief dashboard openen · Bronrepository
Dit project vergelijkt drie manieren om video te encoderen: FFmpeg/libx264 op Raspberry Pi 5, FFmpeg/libx264 op de Seeed reComputer RK3588 Devkit en GStreamer met Rockchip MPP-hardware-encoding op RK3588. Beide boards hebben 16 GB RAM.
De bronrepository bevat reproductiescripts, CSV-gegevens van elke uitvoering en een zelfstandig HTML-dashboard in het Engels en Chinees. Hiermee kunt u de afwegingen tussen verwerkingssnelheid, CPU-gebruik van het proces en uitvoerkwaliteit voor deze specifieke test bekijken.
Meetresultaten
De onderstaande waarden komen uit het samenvattende CSV-bestand van de repository. Elke encodeermethode is drie keer uitgevoerd met dezelfde invoer van 300 frames, geladen in RAM.
| Maatstaf | Raspberry Pi 5: libx264 | RK3588: libx264 | RK3588: MPP H.264 |
|---|---|---|---|
| Mediane verstreken tijd | 24.64 s | 20.04 s | 10.37 s |
| Verwerkingssnelheid (300 / mediane verstreken tijd) | 12.18 fps | 14.97 fps | 28.93 fps |
| Mediaan CPU-gebruik van het proces | 327% | 357% | 54% |
| SSIM All ten opzichte van de ongecomprimeerde bron | 0.995376 | 0.995378 | 0.991389 |
| Representatieve uitvoerbitrate | 10.21 Mbps | 10.21 Mbps | 9.70 Mbps |
In deze opstelling behaalde RK3588 MPP ongeveer 2.38 keer de verwerkingssnelheid van libx264 op Pi 5. De afzonderlijke MPP-uitvoeringen duurden 10.93, 10.37 en 9.86 seconden: twee van de drie duurden langer dan de invoerclip van 10 seconden.
Testomstandigheden
| Onderdeel | Configuratie |
|---|---|
| Raspberry Pi 5 | 16 GB; Debian 13 Trixie; FFmpeg 7.1.5 |
| reComputer RK3588 Devkit | 16 GB; Armbian 26.8.7 (Ubuntu 26.04); kernel van de leverancier 6.1.172; Rockchip MPP 1.5.0-1 plug-in |
| Invoer | Big Buck Bunny Sunflower; 3840 × 2160; 30 fps; 300 frames; NV12 |
| Clipselectie | 10 seconden vanaf 00:01:00 |
| Invoerlocatie voor de tijdmeting | /dev/shm/rkpi_real_4k_10s.nv12 |
| Doelinstellingen voor encoding | H.264; 10 Mbps; GOP 60 |
| libx264-instellingen | -preset veryfast -threads 4 -maxrate 10M -bufsize 20M |
| MPP-instellingen | mpph264enc rc-mode=cbr bps=10000000 gop=60 |
MPP is de Rockchip-specifieke encodeermethode en wordt alleen op RK3588 gebruikt. De Pi 5-methode gebruikt hier software-encoding.
De benchmark reproduceren
Vereisten
Gebruik een Debian/Ubuntu-achtige Linux-omgeving met git, bash, wget, unzip, sha256sum, ffmpeg, ffprobe en /usr/bin/time. Het voorbereidingsscript gebruikt ook standaardhulpmiddelen zoals stat, df en cp. FFmpeg moet de libx264-encoder en het SSIM-filter bevatten.
Installeer voor hardware-encoding op RK3588 de juiste Rockchip/Seeed GStreamer-omgeving met gst-launch-1.0, het element mpph264enc en werkende MPP-stuurprogramma’s. Het meegeleverde MPP-script gebruikt sudo; de geteste systeemimage vereiste verhoogde rechten voor toegang tot /dev/mpp_service.
De ruwe invoer neemt 3,732,480,000 bytes (3.48 GiB) in beslag, met een extra kopie in RAM. Het oorspronkelijke project raadt 16 GB RAM en ongeveer 4 GB vrije ruimte in /dev/shm aan. Reserveer ook schijfruimte voor het bron-ZIP-bestand, de uitgepakte MP4, de ruwe invoer en de gecodeerde uitvoer.
Identieke invoer voorbereiden op beide boards
Voer de opdrachten op elk apparaat uit vanuit een afzonderlijk uitgecheckte kopie van de repository. De vastgezette revisie komt overeen met de hierboven gedocumenteerde resultaten.
git clone https://github.com/Seeed-Projects/raspberrypi-rockchip_benchmark_lab.git
cd raspberrypi-rockchip_benchmark_lab
git checkout b7758d37bdc2b20b1cdf85acc25a94c349d9fc13
bash scripts/00_prepare_input.shHet voorbereidingsscript downloadt het bron-ZIP-bestand van Blender, extraheert de clip, controleert het aantal bytes en de SHA-256 en kopieert de geverifieerde NV12-invoer naar /dev/shm. De verwachte SHA-256 van de ruwe invoer is:
d1e3403d6886a5472c7261dfe07a4149b941d1d7bdfa92d46f181dff381f5fd7Stop als de verificatie mislukt. Het extraheren van de bron is voorbereiding en mag niet als encodeertijd worden meegeteld.
De juiste encodeermethode uitvoeren
Op Raspberry Pi 5:
bash scripts/01_cpu_encode.sh pi5
bash scripts/03_measure_quality.sh output/cpu_pi5_run2.mp4Op RK3588:
bash scripts/01_cpu_encode.sh rk3588
bash scripts/02_rk3588_mpp.sh
bash scripts/03_measure_quality.sh output/cpu_rk3588_run2.mp4
bash scripts/03_measure_quality.sh output/mpp_rk3588_run2.mp4Elk encodeerscript voert drie metingen uit. De uitvoer wordt opgeslagen in output/, en de tijd- en kwaliteitslogboeken in logs/. Controleer de afsluitstatus en het aantal uitvoerframes; elke uitvoer moet 300 frames bevatten. Het kwaliteitsscript rapporteert SSIM, bitrate en het aantal gedecodeerde frames ten opzichte van de geverifieerde ruwe invoer.
Vermijd schermopnamen of gelijktijdige monitoring tijdens tijdmetingen: deze kunnen de meetwaarden beïnvloeden. Voeg gedownload beeldmateriaal en gegenereerde ruwe bestanden niet toe aan Git.
Het dashboard en de gegevens bekijken
Download website/index.html via de raw-bestandsdownload van GitHub, of open het vanuit uw lokale kopie in een desktopbrowser. Het dashboard werkt offline, kan tussen Engels en Chinees schakelen en bevat een 16:9-presentatiemodus. De raceanimatie speelt de gemeten mediane tijden na en voert geen live-encoding uit.
Beperkingen en naamsvermelding
Deze resultaten van drie uitvoeringen hebben betrekking op één animatieclip. Ze bepalen niet de prestaties voor camerabeelden, bewakingsworkloads, video-opname, HEVC-decodering of AV1, of het stroomverbruik van het hele apparaat. CPU-frequentie, koeling, firmware, kernel en softwareversies kunnen de reproductie beïnvloeden. SSIM is een berekende gelijkenismaat en geen menselijke visuele beoordeling.
De testbron is Big Buck Bunny, Blender Foundation (2008), de Sunflower 4K-heruitgave, verspreid onder CC BY 3.0. Het voorbereidingsscript downloadt het oorspronkelijke Blender-ZIP-bestand; de film staat niet in de benchmarkrepository. Behoud de naamsvermelding van de film bij het maken van afgeleide presentaties of video’s.