I have an HEVC encoded bitstream (.bin and equivalent .mp4 file). I want to remove some frames from the bitstream to see how a decoder (or media player) behaves when a particular frame is lost.
How I can remove a frame (or a NAL unit) from the bitstream? What tools can be used?
Thanks
With ffmpeg, you can use the drop option of the noise bitstream filter.
ffmpeg -i IN -c copy -bsf:v noise=drop=between(n\,20\,30) OUT
This will drop packets #20-30 from the video stream. This bsf is codec-agnostic.
For a few codecs (H.264, H.265, MJPEG, MPEG2, VP9, AV1), you have the filter_units bsf.
e.g.
ffmpeg -i IN -c copy -bsf:v 'filter_units=remove_types=35|38-40' OUT
The unit type values will depend on the codec. Consult the codec standard document for nal_unit_type or a similar parameter.