处男鉴黄师 发表于 2022-9-13 01:57

为什么有的视频一半的帧是重复的?

遇到过几次了,AVC编码,视频信息显示59.94帧但播放起来每一帧都要重复一次,也就是说实际上只有29.97帧。这么做有什么好处吗?有什么办法可以去掉那些重复帧?

CamphorLife 发表于 2022-9-13 02:09

处男鉴黄师 发表于 2022-9-13 02:22

CamphorLife 发表于 2022-9-13 02:09
视频帧率与显示器刷新率不匹配,当然要重复啊…不然你把显示器调成30/29.97Hz,这样就不重复了

—— 来自...

你这说法挺神奇的
30/29.7帧甚至24帧的视频逐帧播放也不会有重复帧啊

玩玩而已 发表于 2022-9-13 02:31

有的垃圾采集卡为了宣称自己是60帧会这么搞,实际只有30帧

CamphorLife 发表于 2022-9-13 03:32

计算机组成原理 发表于 2022-9-13 04:50

要去掉只能重编码,可以用FFMPEG强制指定帧率

两个路人 发表于 2022-9-13 13:36

处男鉴黄师 发表于 2022-9-13 13:39

两个路人 发表于 2022-9-13 13:36
那这要先看是逐行还是隔行,还是可变帧(包括dummy帧)。

这要怎么看啊

Ichthy 发表于 2022-9-13 14:12

Ichthy 发表于 2022-9-13 14:12

处男鉴黄师 发表于 2022-9-13 14:44

Ichthy 发表于 2022-9-13 14:12
下个mediainfo

试了下这个软件可以显示编码的设置,但大部分设置项都看不懂

encoding settings: cabac=1 / ref=5 / deblock=1:0:0 / analyse=0x3:0x113 / me=hex / subme=8 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=1 / me_range=16 / chroma_me=1 / trellis=2 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=-2 / threads=8 / lookahead_threads=1 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=3 / b_pyramid=2 / b_adapt=1 / b_bias=0 / direct=3 / weightb=1 / open_gop=0 / weightp=2 / keyint=240 / keyint_min=121 / scenecut=0 / intra_refresh=0 / rc_lookahead=50 / rc=crf / mbtree=1 / crf=18.0 / qcomp=0.60 / qpmin=10 / qpmax=69 / qpstep=4 / vbv_maxrate=32000 / vbv_bufsize=32000 / crf_max=0.0 / nal_hrd=none / filler=0 / ip_ratio=1.41 / aq=1:1.00

Ichthy 发表于 2022-9-13 16:59

Sunyata 发表于 2022-9-13 20:01

本帖最后由 Sunyata 于 2022-9-13 20:06 编辑

处男鉴黄师 发表于 2022-9-13 14:44
试了下这个软件可以显示编码的设置,但大部分设置项都看不懂

encoding settings: cabac=1 / ref= ...
这是x264的编码参数,跟你这个问题无干,你用mediainfo看也就看看frame rate和scan type这些,但也就是个参考
我比较奇怪你是怎么看出来每一帧重复一次的,真是29.97的ABCD处理成59.94的AABBCCDD,正常播放你应该也看不出来,如果你是逐帧检查的,那对逐行隔行什么的应该有基本概念了吧
4#说的假60fps可能性很大,用vapoursynth之类抽帧还原就是了

应该不是反交错的问题,过带出来是5烂2,不是你说的每帧重复;24转30倒也有每5帧重复1帧的做法,但也不是每帧重复。具体还是要逐帧看看情况

处男鉴黄师 发表于 2022-9-13 20:11

试了几种方法重编码效果都不太行
单纯指定帧数重编码 -r 29.97: 看上去还正常但很多地方出现丢帧和重复帧,视频跳跃和卡顿
单纯指定删除重复帧 -vf mpdecimate,setpts=N/FRAME_RATE/TB: 帧数还是59.97帧,视频速度翻倍,音频速度不变,视频后半部分都结束了声音还在原速度播放
指定帧数重编码+指定删除重复帧: 帧数是29.97但不知为什么视频速度还是翻倍,情况和上面类似

以前遇到这种情况只能把每一帧都导出为图片,删掉全部偶数帧或奇数帧以后再用图片转回视频。这次视频太大了不好这么操作。ffmpeg有什么命令可以删除奇数帧或者偶数帧吗

lwa190212 发表于 2022-9-13 20:58

处男鉴黄师 发表于 2022-9-13 20:11
试了几种方法重编码效果都不太行
单纯指定帧数重编码 -r 29.97: 看上去还正常但很多地方出现丢帧和 ...

-vf select="mod(n-1\,2)"

处男鉴黄师 发表于 2022-9-13 23:41

lwa190212 发表于 2022-9-13 20:58
-vf select="mod(n-1\,2)"

终于搞定了,多谢
页: [1]
查看完整版本: 为什么有的视频一半的帧是重复的?