如何从 HEVC 比特流中删除帧?
How to Remove a frame from an HEVC bitstream?
我有一个 HEVC 编码的比特流(.bin 和等效的 .mp4 文件)。我想从比特流中删除一些帧,以查看解码器(或媒体播放器)在特定帧丢失时的行为。
enter image description here
如何从比特流中删除帧(或 NAL 单元)?可以使用什么工具?
谢谢
使用 ffmpeg,您可以使用 noise 比特流过滤器的删除选项。
ffmpeg -i IN -c copy -bsf:v noise=drop=between(n\,20\,30) OUT
这将从视频流中丢弃数据包 #20-30。这个 bsf 是 codec-agnostic.
对于一些编解码器(H.264、H.265、MJPEG、MPEG2、VP9、AV1),您有 filter_units bsf。
例如
ffmpeg -i IN -c copy -bsf:v 'filter_units=remove_types=35|38-40' OUT
单位类型值将取决于编解码器。请查阅 nal_unit_type 或类似参数的编解码器标准文档。
我有一个 HEVC 编码的比特流(.bin 和等效的 .mp4 文件)。我想从比特流中删除一些帧,以查看解码器(或媒体播放器)在特定帧丢失时的行为。
enter image description here
如何从比特流中删除帧(或 NAL 单元)?可以使用什么工具?
谢谢
使用 ffmpeg,您可以使用 noise 比特流过滤器的删除选项。
ffmpeg -i IN -c copy -bsf:v noise=drop=between(n\,20\,30) OUT
这将从视频流中丢弃数据包 #20-30。这个 bsf 是 codec-agnostic.
对于一些编解码器(H.264、H.265、MJPEG、MPEG2、VP9、AV1),您有 filter_units bsf。
例如
ffmpeg -i IN -c copy -bsf:v 'filter_units=remove_types=35|38-40' OUT
单位类型值将取决于编解码器。请查阅 nal_unit_type 或类似参数的编解码器标准文档。