Skip to content
Back to the journal

Share your story

Eight video files: why an ended timeline did not prove a picture

An original reproducible export and browser test with every file, two complete runs, a controlled MP4 metadata pair and a deliberately damaged input.

The short answer

In this local Chrome test, six file cases reported a picture and reached the end. A ProRes case also reached the end but reported zero video dimensions, zero video frames and no frame callback. A deliberately truncated MP4 failed despite a “maybe” container prediction. Check actual picture, sound and destination processing separately; the extension, prediction and ended event were not a complete video check.

What you’ll take away

  • One constructed source became eight related cases, not eight independent creator videos.
  • A finished media timeline can conceal missing picture evidence.
  • Moving MP4 metadata changed startup observations without changing the saved packet payloads.

The question: what does a successful local playback check establish?

A workflow can accept a file, read its metadata and finish a playback timeline while still missing the result a viewer needs. We tested those narrower stages with original synthetic material so that no private video, account or paid provider was needed. We did not upload any case to LinkedIn or measure human understanding.

The source is four seconds of a moving test pattern and a 440 Hz tone, 480 × 270 pixels at 24 frames per second. Eight fixed cases cover a trailing-index H.264/AAC MP4, its stream-copy faststart pair, H.264 4:4:4, HEVC 10-bit, VP9, AV1, ProRes and one deliberately first-half-truncated MP4. The damaged case is a challenge input, not a valid codec comparison.

Freeze the cases, retain the tooling failure, run the whole matrix

The case list, source recipe and original runner were hashed before the first encoding attempt. That attempt generated all eight files but could not start Puppeteer’s absent default Chrome binary. We preserved the incomplete attempt, then froze a v1.1 tooling amendment using the already installed Chrome. Cases, encoding arguments and deadlines did not change. Neither browser nor dependency was downloaded.

Both complete corrected runs used Node 24.21.0, FFmpeg 9.0.2, Puppeteer 25.15.0 and Chrome 156.0.8078.74 on macOS/arm64. Each file received a fresh isolated browser context and muted playback. The second run reversed attempt order. Each matrix contains eight ordinary loopback attempts and two additional throttled MP4-pair attempts: ten per run, twenty total. Repeats are not twenty devices or independent samples.

In both runs, six cases report picture evidence and end. One ends without video dimensions, frames or a frame callback. One damaged case reports media error. This is not a quality ranking.
Original local test: one synthetic source, eight related cases, two complete runs. Every observation and the incomplete first tooling attempt remain in the archive. No LinkedIn processing or human viewing/listening assessment.

All eight cases, with both ordinary attempts

“Picture evidence” refers to recorded dimensions, the first-frame callback, frame counter and end. This describes measurements, not a human quality judgment. P08 is deliberately damaged and is not intended for publication. Four additional throttled pair attempts remain in the CSV/archive.

Original fileContainer predictionDimensions in each runReported framesOutcome in both runs
P01 · H.264 / AAC, MP4, trailing indexmaybe / maybe480 × 270 / 480 × 27096 / 96Picture evidence and end
P02 · Same packet payloads, MP4 faststartmaybe / maybe480 × 270 / 480 × 27096 / 96Picture evidence and end
P03 · H.264 4:4:4 / AAC, MP4maybe / maybe480 × 270 / 480 × 27096 / 96Picture evidence and end
P04 · HEVC 10-bit / AAC, MP4maybe / maybe480 × 270 / 480 × 27096 / 96Picture evidence and end
P05 · VP9 / Opus, WebMmaybe / maybe480 × 270 / 480 × 27096 / 96Picture evidence and end
P06 · AV1 / Opus, WebMmaybe / maybe480 × 270 / 480 × 27096 / 96Picture evidence and end
P07 · ProRes 422 / PCM, MOVempty / empty0 × 0 / 0 × 00 / 0End without picture evidence
P08 · Deliberately truncated MP4 (first half)maybe / maybe0 × 0 / 0 × 00 / 0Media error
P02 to inspect yourself: four seconds of a moving synthetic test pattern and a 440 Hz tone, with no speech or account data. Muted by default, with no autoplay. The explanation and every measured result are provided as text alongside it.
Download the same inspected P02 fixture

Read the picture signals alongside the end event

P01–P06 reached the end in both ordinary attempts, reported 480 × 270 dimensions and 96 video frames, and produced a first-frame callback. P07 ProRes reached four seconds and an ended event but reported 0 × 0 video dimensions, 0 video frames and no callback in both runs. Muted playback means we did not audibly review it. Calling that result successful video playback would overstate the evidence.

Independently, FFmpeg decoded 96 video frames from each of the seven undamaged files, including ProRes. That narrows the finding: the source contained decodable video, while this browser’s recorded path did not report a picture for that case. The descriptive label in the table combines recorded signals; it is not a perceptual quality score or proof about every browser, device or platform.

Distinct cases, both runs retainedActual ordinary-attempt evidenceInterpretation
P01–P06: six casesEnd, dimensions, 96 reported frames and first-frame callbackPicture evidence in this environment
P07: one ProRes caseEnd at 4 s; 0 × 0; 0 frames; no callbackEnded without verified picture evidence
P08: one damaged MP4Media error 4; no loaded pictureDamaged challenge retained, not silently removed

A container prediction did not validate the actual bytes

The browser was asked canPlayType using the container MIME type alone, without a codec string. MP4 cases returned “maybe,” including the deliberately truncated file. That file then reported media error 4 and never loaded a picture. The prediction had not examined or validated a complete usable file.

The QuickTime MIME prediction was empty for the ProRes case, and its timeline still advanced without recorded picture evidence. Do not collapse type prediction, metadata availability, a playing event, a picture callback and an ended event into one green status. Their actual values are retained in the CSV and raw event records, including missing values.

A controlled metadata pair changed startup, not the packet contents

P01 and P02 are each 287,147 bytes. Their saved audio/video packet-payload sequence hashes match, as do their independent decoded-frame hashes. The MP4 moov index starts at byte 283,043 in the trailing-index file and byte 32 in the faststart copy. Both produced 96 decoded video frames. This is a metadata-placement pair, not a comparison between two differently tuned encoders.

Under the nominal 64 KiB/s fixture, loadeddata was 972.5/990.8 ms for the trailing index and 534.3/621.8 ms for faststart across the two runs. The server requested 4 KiB writes every 62.5 ms and supported byte ranges. These are local observations, not calibrated internet speeds or a universal percentage improvement. Decoder startup, scheduling, caching outside the isolated context and range behavior can matter.

Controlled propertyTrailing index P01Faststart P02
File bytes287,147287,147
moov offset283,04332
Packet payload sequenceSaved hashMatching hash
Nominal slow loadeddata, run 1972.5 ms534.3 ms
Nominal slow loadeddata, run 2990.8 ms621.8 ms

Keep the limits that stop an export test becoming a platform claim

All eight output byte hashes matched across the two full encoding runs. Playback timings did not: the first ordinary P01 observation was 160 ms to loadeddata versus 14.4 ms in the second run. Keep both instead of selecting the faster observation. The small loopback files, synthetic pattern, different codec settings and one machine cannot rank real-world compression efficiency or perceptual quality.

Server byte checkpoints mean bytes offered when the loadeddata notification reached the controller, not exact bytes received by a viewer at the frame’s instant. Overlapping range requests can make offered totals exceed file size. No frame callback is a review of every pixel or of speech meaning. LinkedIn’s own help separately warns that ProRes may upload but fail processing; this study did not test that platform step.

Use the complete evidence to build a better preflight

Preserve the original, identify the actual streams and inspect a complete local playback. Confirm picture dimensions and visible content as well as timeline progress, then review sound, captions and the ending. If a re-export is needed, record the changed setting and verify the resulting file. After a real publication, inspect the processed post as a separate stage.

The archive includes every original input/output through a content-addressed blob map, both complete reports, commands, diagnostics, packet/frame hashes, source and the incomplete tooling attempt. Byte-identical duplicates are deduplicated, not failed results. Follow the versioned reproduction instructions and expect environment-dependent playback observations. This is original file evidence, not reader preference, accessibility certification or customer value.

Sources & product references

Product details reflect the publication date. External features and interfaces may change.

WRAPPED.LI

Your year has a story. Find yours.

Explore your available activity, see the people behind it, and choose what to share.

Create my recapStart with a free profile preview. Premium is optional.
Wrapped.li editorial

Product guidance from Wrapped.li. Numerical examples are illustrative, not customer results. LinkedIn is a separate company.