ffmpeg 获取当前帧的时间
时间: 2023-06-29 07:12:29
浏览: 310
您可以使用下面的命令来获取当前帧的时间:
ffmpeg -i input.mp4 -vf "select=gte(n\,100)*printf('time=%{pts\\:hms}\n', PTS)" -vframes 1 -f null -
这个命令会输出[视频](https://geek.csdn.net/educolumn/237e06506d30a4cfa9904992fb4f696f?spm=1055.2569.3001.10083)文件 `input.mp4` 的第 100 帧的时间。其中:
- `-vf "select=gte(n\,100)*printf('time=%{pts\\:hms}\n', PTS)"` 表示使用 `select` 滤镜[选择](https://geek.csdn.net/educolumn/1702526fead21a13fe2bdd53c9e98b89?spm=1055.2569.3001.10083)第 100 帧,并使用 `printf` [[函数](https://geek.csdn.net/educolumn/2319d2a62911adc34b96ea572d8225a2?spm=1055.2569.3001.10083)](https://geek.csdn.net/educolumn/ba94496e6cfa8630df5d047358ad9719?dp_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6NDQ0MDg2MiwiZXhwIjoxNzA3MzcxOTM4LCJpYXQiOjE3MDY3NjcxMzgsInVzZXJuYW1lIjoid2VpeGluXzY4NjQ1NjQ1In0.RrTYEnMNYPC7AQdoij4SBb0kKEgHoyvF-bZOG2eGQvc&spm=1055.2569.3001.10083)输出当前帧的时间戳,格式为 `time=时:分:秒.毫秒`。
- `-vframes 1` 表示只输出一帧。
- `-f null` 表示输出到 null [设备](https://geek.csdn.net/educolumn/26c37a53b9cdae2873277edf2f314f09?spm=1055.2569.3001.10083),即不输出到文件或屏幕上。
- `-` 表示输出的设备是标准输出,即输出到控制台上。
这个命令会输出类似于 `time=00:00:04.040000` 的时间戳,表示第 100 帧的时间是 4 秒零 40 毫秒。您可以根据需要修改 `-vf` 参数中的帧数 `100` 来输出其他帧的时间戳。
相关问题
ffmpeg 获取全部帧 并显示时间
您可以使用以下命令来获取视频中的所有帧并显示每一帧的时间:
ffmpeg -i input.mp4 -vf "setpts=PTS-STARTPTS,select=gt(scene\,0),showinfo" -f null -
```
ffmpeg 获取全部帧 并显示时间为图片命名
您可以使用以下命令来获取视频中的所有帧并将每一帧的时间戳作为图片文件名:
ffmpeg -i input.mp4 -vf "setp
```