gpt4 book ai didi

video - 添加帧计数叠加,而不更改编解码器属性

转载 作者:行者123 更新时间:2023-12-04 23:19:08 25 4
gpt4 key购买 nike

我正在尝试使用 FFmpeg 在 hevc 视频上包含帧计数叠加。但是,视频会在 h.264 编解码器中重新编码。我想保留视频的所有编码属性(与以前相同)。
是否可以通过任何命令添加帧数而不改变视频编解码器和其他编码属性?
我使用了以下命令:
ffmpeg -i Video1.mp4 -filter_complex "drawtext=text='%{frame_num}': x=100 : y=50 : box=1"-y out1.mp4
输入#0,mov,mp4,m4a,3gp,3g2,mj2,来自“Video1.mp4”:
元数据:
主要品牌:isom
次要版本:512
compatible_brands:isomiso2mp41
编码器:Lavf58.76.100
持续时间:00:00:01.32,开始:0.000000,比特率:145 kb/s
流 #0:0(und):视频:hevc(主)(hev1/0x31766568)、yuv420p(tv)、416x240、138 kb/s、25 fps、25 tbr、1200k tbn、1200k tbc(默认)
元数据:
handler_name : 视频处理程序
供应商 ID:[0][0][0][0]
流映射:
流#0:0 (hevc) -> drawtext
drawtext -> 流 #0:0 (libx264)
我试过的另一个命令:
ffmpeg -i Video1.mp4 -filter_complex "drawtext=text='%{frame_num}': x=100 : y=50 : box=1"-vcodec hevc -y out1.mp4
但是,此命令也会导致视频的编码属性/参数发生变化。
PS-我正在使用 Windows cmd 行。
PS-是否可以对编码属性进行最小的更改?我想像以前一样保留所有切片 NAL 单元类型、所有配置文件和所有级别。但是,所有原始 NAL 单元都发生了变化。具体来说,例如将所有子层转换为基础层,将TSA图片转换为其他类型。
谢谢

最佳答案

简短的回答:没有重新编码就没有解决方案。
简化的长答案:视频比特流是像素内容的紧凑表示。为了使其紧凑(即压缩),以预测方式利用像素中存在的空间和时间冗余。当您更改某些像素(例如您的时间戳)时,编码器很可能会更改其预测方案,因为您新引入的像素现在代表不同的冗余模式。因此,需要使用新参数的新编码。
但是,如果您以某种方式强制施加相同的编码参数(即没有重新编码)怎么办:
在这种情况下,作为上述预测方面的结果,改变任何像素都会触发其他像素的一系列变化,称为误差漂移。为了给你这个链的顺序,我可以告诉你,根据像素的位置/重要性,有时改变一个像素会导致数百万像素的相应变化。在您的问题中,我们谈论的是应该在每一帧被烧毁的几个像素的时间戳。

关于video - 添加帧计数叠加,而不更改编解码器属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70573887/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com