如何在 Xubuntu 16.04 中从视频的特定时间提取图像?

如何在 Xubuntu 16.04 中从视频的特定时间提取图像?

我正在寻找命令行选项。

例如,如果我有视频sample-video.mp4,并且我想sample-image.jpg在时间 00:00:26 从视频中生成图像文件,我应该输入什么命令?

此外,如果您能详细解释该命令的每个参数的作用,那将会非常有帮助。

答案1

您可以使用ffmpeg

ffmpeg -loglevel quiet -ss 26 -i sample-video.mp4  -t 1 -f image2 anyfilename.jpeg
  • -日志级别将日志输出设置为安静的因为 ffmpeg 非常健谈
  • -ss正在搜索(以秒为单位,即您想要拍摄快照的位置)
  • -我输入视频文件
  • -t快照的时间范围(以秒为单位)
  • -F文件类型

您还可以尝试各种选项,例如控制 jpeg 输出的质量-q:v <linear integer 1-10>或分辨率 -s 480x300

更多想法这里


VLC 方法

cvlc sample-video.mp4 --start-time=26 --run-time=1 --rate=1 --video-filter=scene --vout=dummy --aout=dummy  --scene-ratio=24 --scene-prefix=sample-image --scene-replace vlc://quit
  • 循环流化床- 因为它是命令行,我们不希望打开任何窗口。此外,这意味着我们可以在没有 X11 的情况下运行它。

  • –开始时间=26- 是快照的准确位置(以秒为单位)

  • --运行时间=1- 视频将“播放”多长时间(以秒为单位)。我们播放一秒钟,以便截取这一秒的屏幕截图。
  • --rate=1何时截取屏幕截图。这基本上意味着“每秒”,如果你有较长的文件,则每 60 秒或每 5 分钟截取一次屏幕截图很有用
  • --视频过滤器=场景告诉 VLC 我们要截屏
  • --vout=虚拟X11 上没有视频输出,我们不需要它
  • --aout=虚拟没有音频输出,我们不需要它
  • --场景比例=24 我们告诉 VLC 每秒大约有 24 帧
  • --场景前缀 = 示例图像 屏幕截图的文件名
  • --场景替换 用当前屏幕截图替换任何与屏幕截图类似的文件sample-image.png。如果你省略此操作,VLC 将开始对屏幕截图进行编号
  • vlc://退出 完成后退出 vlc

完整的文档这里

答案2

您可以使用mplayer(来自包mplayer,默认情况下未安装):

mplayer -vo jpeg -ss 00:00:26 -frames 1 sample-video.mp4

这将创建文件00000001.jpg,因此您必须重命名它。据我所知,没有办法指定文件名。

-vo jpeg表示您想要 JPEG 输出,-ss 00:00:26寻找给定的位置,-frames 1表示处理一帧然后退出。

相关内容