ffmpeg - 如何从 HEVC 比特流中删除帧?

标签 ffmpeg decoding codec hevc bitstream

我有一个 HEVC 编码的比特流(.bin 和等效的 .mp4 文件)。我想从比特流中删除一些帧,以查看在丢失特定帧时解码器(或媒体播放器)的行为。
enter image description here
如何从比特流中删除帧(或 NAL 单元)?可以使用哪些工具?
谢谢

最佳答案

使用 ffmpeg,您可以使用 noise 的 drop 选项比特流过滤器。

ffmpeg -i IN -c copy -bsf:v noise=drop=between(n\,20\,30) OUT
这将从视频流中丢弃数据包 #20-30。此 bsf 与编解码器无关。
对于一些编解码器(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 或类似参数的编解码器标准文档。

关于ffmpeg - 如何从 HEVC 比特流中删除帧?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71029418/

相关文章:

python - 对于 Base64 编码,更喜欢 str.encode ('base64_codec' ) 或 base64.b64encode(str)?

ffmpeg - 如何在ffmpeg中为字幕设置背景?

ffmpeg不改变持续时间

node.js - 如何在 digitalocean 上的 dokku 容器中正确安装 ffmpeg?

string - 解码包含编码模式的字符串

python - 将 Base 64 字符串解码为文件

ffmpeg - 使用 FFmpeg 检索和保存媒体元数据

image - Node.js Base64 图像解码和写入文件

iOS:使用音频单元的 iLBC 编解码器

video - Android : mp4 output file not fully playable 上没有预览的 Camera2 视频录制