A supposedly silent file fails because no audio stream is present.
Inspect only the required stream mapping. A silence waveform needs an actual track; choose the provided silent-track fixture to test that separate condition.
Hands-on recipe
Verify that a required audio stream exists and survives AAC conversion. Numerical decoding and RMS checks are not listening, intelligibility or sound-quality reviews.
Includes executed local fixtures, scripts and receipts. These checks do not represent a video-generation service run.
node run-recipe.mjs --out ./my-run
The script writes the tone and silence WAV headers and PCM samples directly with Node buffers. It muxes each with the original video into separate MKV fixtures. A present stream containing zeros is not the same as a file that lacks an audio stream.
Map 0:v:0 and 0:a:0 when creating aac-export.mp4, copying video and encoding audio with AAC at 64 kbit/s. The absent-audio fixture deliberately fails the required map instead of accepting an optional missing stream.
Decode AAC to mono 16-kHz signed 16-bit PCM. The actual run returned 16,384 samples and RMS 0.1391365 for the synthetic tone. The count accepts bounded AAC padding; it does not claim an exact presentation duration from raw padded samples.
The actual inspection log reports Audio: aac; all ten video frames decode, and the silent-track fixture decodes to PCM samples all valued zero. The initial run’s -shortest video truncation is retained as a failed receipt; the corrected script’s seven checks all pass.
Inspect only the required stream mapping. A silence waveform needs an actual track; choose the provided silent-track fixture to test that separate condition.
Keep the 16-kHz output rate fixed and compare the bounded AAC padding allowance. Do not label all decoded padded samples as exact display duration.
Remove only -shortest from the equal-duration fixture stream copy and verify all ten video frames again. The initial failed receipt records this observed issue.
Retain stream logs and measured samples as machine checks. Listen and review synchronization separately before making an editorial judgement about audio; this recipe did not perform either review.