是否可以在一次调用 ffmpeg 中调整视频的帧速率并绘制包括*新*帧号在内的文本?

是否可以在一次调用 ffmpeg 中调整视频的帧速率并绘制包括*新*帧号在内的文本?

-r fps我正在尝试调整视频的帧速率,并绘制包含以下内容的文本:新的帧号-vf drawtext=text='frame %{frame_num} %{pts}'。只需调用一次就可以实现吗ffmpeg

例如,如果我尝试使用以下方式处理视频 -

ffmpeg -i original.mp4 -r 25 -vf "drawtext=text='frame %{frame_num} %{pts}':x=10:y=10" output.mp4

当我玩游戏时output.mp4,我看到指示的帧速率Input #0 25 fps是正确的,但是文本frame 3000是在 100 秒处绘制的,这表明原始帧速率为 30 fps。

我可以修改上面的单个调用来ffmpeg更正结果吗?或者我必须将任务拆分为两个单独的调用,例如ffmpeg-

ffmpeg -i original.mp4 -r 25 temp.mp4

其次是

ffmpeg -i temp.mp4 -vf "drawtext=text='frame %{frame_num} %{pts}':x=10:y=10" output.mp4

答案1

是的,但是使用 fps 过滤器,而不是选项-r

ffmpeg -i original.mp4 -vf "fps=25,drawtext=text='frame %{frame_num} %{pts}':x=10:y=10" output.mp4

相关内容