在 ffmpeg 中以固定速率播放每帧一次

问题描述 投票:0回答:1

我有一堆不同帧速率的视频,其中一些具有可变帧速率。

  1. 首先,我希望每帧仅以 24 fps 播放一次,无一例外。我不想要任何额外的帧或丢帧。我知道播放长度可能会改变,音频并不重要。

  2. 接下来,我希望在扔掉所有重复的帧后执行上述操作。

这是我在 Windows 批处理文件中使用的内容。它几乎总是有效,但对于某些视频,我发现它丢帧了:

for %%i in (*.mp4) do ffmpeg -y -i "%%i" -an -c copy -f h264 "%%i.h264"

for %%i in (*.h264) do ffmpeg -y -r 24 -i "%%i" -c copy "%%i.R.mp4"

for %%i in (*.R.mp4) do ffmpeg -y -i "%%i"  -b:v 40M -vf mpdecimate,setpts=N/24/TB "MPD%%i.mp4"

我做错了什么?

编辑:丢失的帧与之前的帧有很大不同,因此它不仅仅是 mpdecimate 在工作。

video ffmpeg codec
1个回答
0
投票

mpdecimate 过滤器会丢弃与前一帧没有太大差异的帧,这可能是帧丢失的原因。

© www.soinside.com 2019 - 2024. All rights reserved.