ffmpeg 以精细的时间单位从视频文件中捕获屏幕截图

标签 ffmpeg

我使用 ffmpeg 从视频中捕获屏幕截图。这是命令代码:

ffmpeg -i /my_video_file_dir/video.flv -y -f image2 -ss 8 -sameq -t 0.001 
-s 320*240 /image_dir/screenshot.jpg

例如,我想在一个很好的时间单位 8.344 捕获屏幕截图

但是上面的命令并没有输出截图图像

在我的测试中, -ss 1,1.5,2,2.5 ... 工作正常,而其他的则不是 1.1,1.11

andbody 知道为什么会发生这种情况以及如何在 x.xxx 时间捕获屏幕截图

最佳答案

试试这个:

ffmpeg -ss 00:00:01.01 -i /my_video_file_dir/video.flv -y -f image2 \
   -vcodec mjpeg -vframes 1 /image_dir/screenshot.jpg

请注意,由于大多数视频的帧速率较低,因此非常小的增量通常不会产生不同的图像。 0.001s 增量仅适用于 1000fps 帧速率的视频 :) 0.03 增量应适用于 30fps 视频等。

关于ffmpeg 以精细的时间单位从视频文件中捕获屏幕截图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3827611/

相关文章:

FFmpeg 应用多个过滤器( Logo 叠加、亮度变化和文本叠加)

java - ffmpeg 不适用于文件名有空格的情况

单个图像+音频上的ffmpeg关键帧控制

android - 使用 FFmpeg C API 调整视频大小

ffmpeg - 如何正确停止 ffmpeg 屏幕录制?

video - webM 文件在移动设备上显示绿色和紫色效果

python - 如何有效地提取视频的特定部分(Python/FFmpeg)?

audio - 使用 ffmpeg-normalize 进行归一化,声音略有变化

ffmpeg - 如何将原始未压缩 RTP 转码为 H264 RTSP 流