我想要视频的总帧数,以便我使用以下 ffprobe 命令:
ffprobe -v error -select_streams v:0 -show_entries stream=nb_frames -of default=noprint_wrappers=1 100P.mp4
Run Code Online (Sandbox Code Playgroud)
我在下面得到输出
在上面的输出中我得到 559 frames
然后我使用相同的视频在其上添加水印,并使用以下命令:
ffmpeg -i 100P.mp4 -i mt.png -filter_complex "overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2" -codec:a copy -preset ultrafast output.mp4
Run Code Online (Sandbox Code Playgroud)
我得到这样的输出:
在上图中,添加水印后我得到 605 frames
所以我的问题是为什么我在 ffmpeg 和 ffprobe 中得到不同的帧数?
Gya*_*yan 23
默认情况下,FFmpeg 为 MP4 输出设置恒定帧速率模式。当输入流为 VFR 时,ffmpeg 会复制或丢帧生成 CFR 流。在输出统计信息中,在 的右侧frame=605,您可以看到dup=46,这表明 ffmpeg 添加了 46 个重复帧。简短的版本是当两个输入帧相距超过1/FPS秒时会发生这种情况,其中 FPS 表示输出帧速率。tbr如果用户未明确设置,则输出帧率将设置为检测到的输入帧率(值)。
添加-vsync vfr以防止帧重复。
| 归档时间: |
|
| 查看次数: |
5134 次 |
| 最近记录: |