ready unexecuted · 0 accepted current-protocol results

Jellyfin 1080p Mini PC Transcode Benchmark

The planned reproducible fixture, required manifests, raw artifacts, repetitions, and publication gate for the Jellyfin 1080p transcode benchmark.

record type
benchmark

record at a glance

protocol status
ready-unexecuted
protocol version
1.0.0
fixture selected
yes
accepted scoped results
0
best attached evidence
grade B
accepted grade A runs
0

purpose and claim boundary

Test whether one declared exact configuration can sustain one repeatable 1080p H.264 to 720p H.264 Jellyfin hardware transcode without thermal, playback, or operational failure.

The protocol defines a future Grade-A test. It contains no result and does not verify any configuration.

download the public machine-readable protocol JSON

reproducibility identity

protocol ID
protocol-jellyfin-1080p-h264-to-720p-h264-v1
protocol SHA-256
sha256:968366ca2b2265f0f41bf9ede1e0312b3ec3534d60797244ffc9426e817d0b74
workload ID
workload-jellyfin-1080p-transcode
application scope
Jellyfin Server 10.11.x · >=10.11.0 <10.12.0
deployment method
Jellyfin Docker container in a Debian KVM virtual machine
runtime chain
KVM virtual machine → Docker Engine on 64-bit Linux

A result belongs to this protocol revision only when its accepted manifest pins this exact hash. A matching title or version label is insufficient.

fixture gate

status
selected-hash-pinned
stable URL
https://repo.jellyfin.org/test-videos/SDR/AVC/Test%20Jellyfin%201080p%20AVC%203M.mp4
SHA-256
30f19d65b19f606f5352deb956843692cb6cee9a5bcfb43fce549f94e3bd29ce
fixture ID
fixture-jellyfin-1080p-avc-3m
exact bytes
11302222
license
CC BY-SA 4.0
accepted result possible
not in the current protocol state

The selected fixture is accepted only when its exact byte count and SHA-256 match before the run; no title-only substitution is allowed.

Test video courtesy of Gnattu, distributed by the Jellyfin Project under CC BY-SA 4.0.

controlled inputs

target
720p H.264
concurrent streams
1
warm-up
10 minutes
measurement window
30 minutes
repetitions
3
sample interval
2 seconds

Return to within 2 C of the recorded pre-run idle package temperature before the next repetition.

ordered test procedure

The order below is part of protocol version 1.0.0. Reordering, omitting, or silently changing a step requires a new protocol revision before a run can be accepted.

  1. Identify the exact specimen and software chain. Record the configuration, lab asset, firmware, operating system, runtime, Jellyfin, FFmpeg, graphics driver, media runtime, storage, network, and instrument identities in manifest.json.
    required output: A complete secret-free manifest whose configuration and version fields match the intended run plan.
  2. Verify the controlled media fixture. Download or select the declared fixture, record its byte count, and calculate SHA-256 before any repetition.
    required output: fixture.sha256 matches 30f19d65b19f606f5352deb956843692cb6cee9a5bcfb43fce549f94e3bd29ce and the file is exactly 11302222 bytes.
  3. Normalize the environment. Disable undeclared background load, confirm wired links and storage topology, record ambient temperature, and return the machine to the declared clean pre-run state.
    required output: The manifest and instrument notes record the environment and confirm no undeclared workload is active.
  4. Confirm hardware acceleration. Start Jellyfin, request the declared conversion, and inspect the playback and transcode diagnostics for active hardware acceleration instead of inferring it from the GPU model.
    required output: jellyfin-diagnostics.txt identifies the active hardware decode and encode path for the declared request.
  5. Run the fixed warm-up. Run the declared 720p H.264 conversion for 10 minutes while instrumentation is active; do not include the warm-up interval in the principal measurement.
    required output: Timestamped diagnostics and metrics cover the warm-up and identify the measurement-window boundary.
  6. Measure one controlled transcode. Continue one concurrent 1080p H.264 to 720p H.264 transcode for 30 minutes, sampling every required series at two-second intervals.
    required output: metrics.csv and Jellyfin diagnostics cover the entire measurement window with synchronized timestamps.
  7. Cool down and repeat. Stop the workload, preserve every failed or excluded repetition, return package temperature to within 2 C of pre-run idle, and repeat until at least three completed repetitions exist.
    required output: At least three separately identified repetition records plus disclosed failed or excluded attempts.
  8. Derive and cross-check the summary. Generate run-summary.json from raw series and logs, calculate the declared principal statistics and variance, and cross-check playback, thermal, application, and kernel failures.
    required output: A generated summary that agrees with raw artifacts and discloses variance, failures, exclusions, and limitations.
  9. Apply the human acceptance gate. A human reviews the manifest, fixture identity, raw artifacts, generated summary, privacy redactions, acceptance checks, and exact claim scope.
    required output: An explicit human decision; automatic Grade-A promotion remains forbidden.

required manifest

  • configuration identity and specimen ID
  • BIOS or firmware version and relevant settings
  • memory module and storage-device identities
  • operating system, kernel, container or VM runtime
  • Jellyfin and FFmpeg versions
  • graphics driver and media runtime versions
  • Jellyfin hardware-acceleration settings
  • fixture URL and SHA-256
  • ambient temperature and measurement instruments
  • network topology
  • command or request used to start the workload

raw series and artifacts

required time series

  • wall power W
  • CPU package temperature C
  • CPU utilization percent
  • GPU or media-engine utilization percent when exposed
  • memory used bytes
  • transcode speed multiplier
  • dropped or skipped frames
  • client buffer or playback errors

required files

  • manifest.json
  • fixture.sha256
  • commands.txt
  • jellyfin-diagnostics.txt
  • metrics.csv
  • run-summary.json
  • instrument-notes.md

acceptance gate

At least 3 completed repetitions are required. A human must approve the record, and automatic promotion to Grade A is forbidden.

  1. each repetition completes the measurement window
  2. hardware acceleration is confirmed rather than inferred
  3. transcode speed remains at or above 1.0x
  4. the client reports no playback stall attributable to the server
  5. no thermal shutdown, application crash, or kernel error occurs
  6. raw series and logs agree with the human-readable summary
  7. variance and every excluded run are disclosed

privacy and change control

  • Real personal media is forbidden.
  • Machine names must be pseudonymous.
  • Secrets and private network addresses must be redacted.
  • A material fixture, target, concurrency, duration, threshold, or instrumentation change creates a new protocol version.

Current protocol outcome: 0 accepted results. The protocol remains a useful, inspectable promise about how a future result must be produced—not evidence that this revision has run.

accepted scoped results

No accepted result is attached. A counter, modeled prerequisite, or draft protocol is not a benchmark.

receipts

3 sources · 0 accepted grade A runs · best evidence grade B · reviewed 2026-07-26

record identity, publication and review

record id
workload-jellyfin-1080p-transcode
canonical path
/benchmarks/jellyfin-1080p-transcode/
publication
preview · noindex
reviewed
2026-07-26
review again by
2026-08-25

evidence boundary

Grade A count: 0. A Grade B source can establish a documented specification or requirement. Grade D records are modeling inputs. Neither is proof of measured throughput, thermals, power, reliability, or physical fit.

4 attached evidence records

a grade describes how well attested a statement is, not how good the hardware is. grade a is a lab run we reproduced with a published method. grade d is a model, a reasoned inference, or a single unverified report.

  1. evidence grade b · official sourcesupports

    Jellyfin recommends 8 GB RAM, SSD storage for application data and transcode cache, wired gigabit networking, and properly configured hardware acceleration for transcoding.

    source: Jellyfin hardware selection guidechecked 2026-07-26claim: claim-jellyfin-hardware-requirements

  2. evidence grade b · official sourcesupports

    Jellyfin publishes an official Debian-based container image and documents 10.11 tags, but does not establish the pilot's additional KVM guest layer.

    source: Jellyfin container installationchecked 2026-07-26claim: claim-jellyfin-container-deployment

  3. evidence grade b · official sourcesupports

    Jellyfin 10.11 is a documented stable server release line and requires a 64-bit operating system on ARM.

    source: Jellyfin 10.11.0 release noteschecked 2026-07-26claim: claim-jellyfin-10-11-release

1 further grade b record · official source
  1. evidence grade b · official sourcesupports

    Jellyfin says Intel 7th through 10th generation integrated graphics remain capable for existing owners, but are no longer recommended for a new purchase because Intel deprecated the relevant toolkit.

    source: Jellyfin hardware selection guidechecked 2026-07-26claim: claim-jellyfin-legacy-intel-guidance

source ledger

Official facts and first-party modeling are shown separately. Source prose, tables, and diagrams are not republished.

  • 3 sources
  • 3 with a public link
  • 2 official application documentation
  • 1 official release notes
official application documentation · 2 sources
  1. Jellyfin hardware selection guideJellyfin Project · official application documentation · checked 2026-07-26
  2. Jellyfin container installationJellyfin Project · official application documentation · checked 2026-07-26
official release notes · 1 source
  1. Jellyfin 10.11.0 release notesJellyfin Project · official release notes · checked 2026-07-26

record and source history

This projection is generated from homelab graph version 0.1.0. The generated lifecycle index exposes only history events that are explicitly present in the structured record. It does not invent an earlier revision when the graph contains only its creation baseline.

  1. — current preview record reviewed against the attached evidence set.
  2. — next required review under the monthly pilot-record review interval.
  3. — created: Initial bounded workload recipe created.

inspect the complete generated lifecycle and change-history index