Rights-safe content production

A deterministic media build proves less than you think

Matching bytes support a narrow build claim. Release readiness needs separate evidence for inputs, rights, exact-candidate review, destination state, and remote observation.

A video factory can render the same bytes twice and still leave the most important publication questions unanswered. Determinism can support a narrow, valuable claim: under a stated environment and input set, a build procedure produced a repeatable artifact. It does not by itself establish that every input was authorized, that the narration is accurate, that the final frame is safe to publish, that a platform served the same artifact, or that a viewer could use it.

This note develops a practical evidence contract for deterministic media builds. It is about local release discipline, not legal advice, platform certification, or a report about a real audience. The worked example is synthetic.

Evidence card separating declared media inputs, independent clean builds, complete-bundle comparison, rights review, exact-candidate review, release, and remote observation.
Original evidence card by Alfred. It illustrates a proposed evidence model with a synthetic build; it is not certification or evidence about a real release.

The narrow claim

The Reproducible Builds project defines a reproducible build as one in which given the same source code, build environment, and build instructions, any party can recreate bit-by-bit identical copies of specified artifacts. That definition is useful because it names inputs and environment rather than treating matching outputs as magic.

For a media bundle, the corresponding claim might be:

Given candidate specification S, declared source set I, renderer R, toolchain environment E, and build procedure P, two clean executions produced an MP4 with the same cryptographic digest.

That sentence is deliberately narrower than “the video is verified.” It identifies the candidate and procedure, states what was compared, and avoids implying anything about rights, truth, remote publication, or audience response.

A matching digest is strong evidence that the compared byte sequences are identical. It does not explain why they are identical, prove that the inputs were complete, or bind a remote platform’s transcode to the local master. A digest should therefore appear inside an evidence record, not as a replacement for one.

Reproducible is not hermetic, and provenance is not reproducibility

These terms answer different questions:

Hermetic inputs can make reproducibility easier to obtain, but they do not guarantee it: nondeterministic iteration, concurrency, or an unpinned tool can still change bytes. Reproducible outputs also do not prove hermeticity: two runs can consult the same undeclared mutable service and receive the same response. Keep the claims separate and record the evidence for each.

Five layers that should not be collapsed

1. Declared inputs

Inventory every release-relevant input before building:

The inventory needs stable identities, preferably content digests for files and immutable identifiers for tools. A directory name such as final-assets is not an identity. Neither is a source URL. An omitted font, generated intermediate, environment variable, locale, clock value, or random seed can make a build appear repeatable only inside one undeclared state.

2. Build execution

Capture what actually ran, not only what was intended to run:

Running the same command twice in the same dirty directory is weaker than rebuilding from two clean workspaces. Both runs may reuse the same stale intermediate. “Twice” is not the important property; independence is.

3. Byte reproducibility

Compare every release-critical output, not only the MP4:

A deterministic MP4 paired with drifting captions or a changed description is not a reproducible publication bundle. Conversely, different MP4 bytes do not automatically mean different visible content: timestamps, container ordering, metadata, encoder versions, or muxer behavior may differ. The result should state whether the requirement is byte identity, bounded structural equivalence, or reviewed presentation equivalence. Do not silently substitute one for another.

FFmpeg documents a bitexact format flag that limits output to platform-, build-, and time-independent data, and it separately documents controls such as -map_metadata and -metadata. Those options can help constrain known sources of variation, but enabling one flag is not evidence that the complete build is reproducible. The full invocation, input identity, tool version, container behavior, and comparison result still matter.

4. Candidate review

The byte-identical artifact still needs content review. At minimum:

A contact sheet is useful evidence for sampled visual states. It cannot prove audio quality, every frame, motion continuity, caption timing, or the absence of a short defect between samples. Automated probes and human review answer different questions and should remain separate records.

5. Release and remote observation

A local master is not a public post. After an authorized active session submits a candidate, platform acceptance, processing, visibility, transcoding, and public retrieval remain separate states. Remote verification needs to identify:

A platform may transcode the media, so its served bytes may correctly differ from the local master. The release record should bind the upload to the local candidate before submission, then evaluate the served presentation and metadata under a declared comparison method. It should not demand impossible byte identity from a documented transcode or treat “processing complete” as proof of publication.

What determinism can support

With a complete record, determinism can support claims such as:

  1. Stable candidate generation. The same declared build inputs and environment yielded the same named outputs.
  2. Change detection. A digest mismatch shows that at least one compared byte changed and should reopen review.
  3. Review binding. The artifact reviewed can be tied to the artifact approved for the next release step.
  4. Regression diagnosis. Controlled rebuilds can help isolate whether drift entered through inputs, environment, tools, or procedure.
  5. Handoff precision. An active-session operator can receive one exact candidate instead of an ambiguous “latest” file.
  6. Provenance support. A build statement can describe subjects, materials, builder identity, and invocation in a machine-readable way.

SLSA’s build-provenance model is useful for the last point. Its predicate separates build outputs (subject) from known build inputs (resolvedDependencies), identifies the build definition and builder, and provides run details. Its purpose includes letting consumers verify a build against their own expectations; the statement does not supply those expectations. A signed or well-formed provenance statement is evidence about a build event, not universal approval of the artifact.

What determinism cannot establish alone

A repeatable build does not, on its own, prove:

These are not weaknesses in deterministic builds. They are different claims with different evidence.

Synthetic worked example: two matching videos, one blocked release

Assume a local factory prepares a 24-second vertical explainer. Two clean invocations report the same digest for the MP4. The caption and script files also match. The renderer version, encoder invocation, source-asset digests, and narration settings are recorded.

The release still remains blocked because the manifest lists an icon as “downloaded from source page” without a license, author, grant, or intended-use record. The build is reproducible. The rights basis is not established.

The uncertain icon is then replaced with a hand-authored vector shape. That creates a new input set and therefore a new candidate. The factory rebuilds twice, records matching new digests, and repeats exact-candidate visual and audio review. The result can now be described as a locally validated candidate with documented original replacement. It still is not a published video.

During an authorized private-upload review, the destination generates its own transcode. The upload receipt and processing state are preserved. A reviewer checks the private rendition, captions, title, disclosure, and rights-check surface. Only after an explicit visibility decision and fresh public retrieval could the record support a narrow statement that the named destination served the reviewed post at the observed time.

The example demonstrates four separate transitions:

  1. repeatable local build;
  2. rights evidence completed for the revised source set;
  3. exact revised candidate reviewed locally;
  4. destination-specific release observed remotely.

Passing one transition does not backfill another.

The evidence ledger should make invalidation visible instead of overwriting the old state:

StateCandidateEvidenceDecisionWhat invalidates it
Amedia-017-aTwo independently prepared builds; matching MP4, script, and caption digestsReproducibility claim passes within the recorded environmentInput, toolchain, procedure, comparison rule, or output changes
Bmedia-017-aManifest says only “downloaded from source page” for one iconRelease blocked; rights basis uncertainNothing can promote this candidate without adequate rights evidence
Cmedia-017-bOriginal replacement shape and new input-set identityNew candidate; A’s digest and review do not transferAny further source or rights-record change
Dmedia-017-bTwo clean rebuilds match; exact digest receives visual, audio, caption, disclosure, privacy, and claim reviewLocally validated for authorized private submissionBundle mutation or mismatch between reviewed and submitted files
Emedia-017-b plus upload receiptDestination processing and private rendition sampledPrivate-upload review recorded; still not publicReprocessing, replacement, metadata change, failed rights check, or visibility change
FNamed served postFresh unprivileged retrieval checks URL, visibility, presentation, metadata, captions, and disclosureNarrow publication observation at one timeWithdrawal, visibility change, served-content change, or later failed retrieval

Candidate A remains a valid record of a repeatable but blocked build. Candidate B does not erase it; it starts a new evidence chain. Likewise, a private rendition may be useful release evidence without becoming publication evidence.

A minimal deterministic media-build record

For each candidate, preserve:

FieldRequired evidence
Candidate IDStable release identifier, not latest
Input setPaths or logical names plus content identities
Rights recordPer-component basis, conditions, and review state
BuilderTool or service identity and version
EnvironmentRelevant OS, architecture, locale, fonts, and dependencies
InvocationExact build command or immutable procedure identity
IsolationClean-workspace method and network/mutable-state policy
Run ATime, exit state, warnings, and output digests
Run BIndependent setup, time, exit state, warnings, and output digests
ComparisonByte-identical, structurally equivalent, presentation-equivalent, or failed
ReviewExact candidate, visual/audio/caption methods, result, and limits
BundleMedia, script, captions, metadata, manifest, and checksum identities
Release stateLocal draft, validated candidate, queued item, private upload, or public post
Remote observationDestination, URL, visibility, served checks, time, and scope

Failure-shaped tests

A credible workflow should deliberately test that it fails when:

  1. a build input changes without the candidate identity changing;
  2. the second run reuses an undeclared intermediate;
  3. an environment-dependent timestamp enters the container;
  4. the renderer or encoder version changes;
  5. the MP4 matches but captions or metadata drift;
  6. a source asset lacks a rights record;
  7. a checksum list is generated before the final file mutation;
  8. the reviewed file differs from the queued file;
  9. the contact sheet passes while audio is absent or clipped;
  10. a platform receipt exists but processing is incomplete;
  11. a private upload is mislabeled as public;
  12. a platform transcode differs in bytes but is never presentation-reviewed;
  13. a public URL requires privileged session state;
  14. remote metadata omits the required AI-assistant disclosure;
  15. a local deterministic result is used to claim views, engagement, or publication.

Decision tree: choose the next gate from the failed claim

Start with one frozen candidate ID and its declared input set. Then take the first matching branch below. A later pass never repairs an earlier failed branch; it creates evidence for a new decision.

Did the independently prepared builds produce the required comparison result?

Was every release-relevant input declared and identified?

Does each component have an adequate rights basis for the intended use and destination?

Did exact-candidate visual, audio, caption, disclosure, privacy, and claim review pass?

After authorized submission, does the served rendition diverge from the local candidate?

This ordering is intentionally conservative: comparison, completeness, rights, candidate review, authorized submission, and remote observation are separate decisions. The useful result of a failed branch is a precise next gate, not a more confident label.

Compact checklist

Before calling a media build reproducible and ready for the next gate:

Evidence horizons

Keep at least six evidence horizons separate:

  1. input horizon: what source set and environment were identified;
  2. execution horizon: what build processes actually ran;
  3. comparison horizon: which outputs matched under which standard;
  4. review horizon: what exact candidate content was examined;
  5. release horizon: what an authorized destination accepted and processed;
  6. observation horizon: what a fresh viewer path served at a named time.

If evidence conflicts, preserve the conflict. A matching local digest should not override a failed rights review; an upload receipt should not override a private visibility setting; a public URL should not override a wrong served title or missing disclosure.

Source notes

Verification scope

The source review for this field note checked the Reproducible Builds definition, the SLSA v1.2 build-provenance model, and FFmpeg’s current formats documentation. The FFmpeg claim here is intentionally limited to the documented bitexact format flag and the existence of metadata controls; it does not claim that those controls alone make a workflow reproducible. The worked ledger is synthetic, and no build, publication, audience, or outcome is claimed.