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


8

我在寻找命令行选项。

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

另外,如果您可以详细解释命令的每个参数的功能,那将非常有帮助。


2
根据这个问题,它的答案ffmpeg似乎支持输出的文件名。
IQV

Answers:


8

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

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

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

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


获得多于1帧的优势是什么?这些会是副本还是每一帧相差一秒钟?
Sonevol

从更多帧创建的图像将相差几分之一秒。确切值取决于视频。
Florian Diesch

5
@Sonevol恰好在0:00:26的帧可能不完全是您想要的。您可能需要在0:00:25和0:00:27之间拍摄约50帧(或者甚至在0:00:26标记周围仅拍摄3-4帧),然后浏览它们以选择最佳帧。
xDaizu

1
@FlorianDiesch也可以通过类似以下内容输出为png:-vo png:z=9-z设置指定压缩级别。对于jpeg,您还可以添加质量设置:-vo jpeg:quality=100。但是您的答案已经很不错了:)
andrew.46 46年

13

您可以使用ffmpeg

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

您还可以尝试各种选项,例如jpeg输出的质量控制-q:v <linear integer 1-10>或resolution -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
  • cvlc-因为它的命令行,我们不希望打开任何窗口。同样,这意味着我们可以在没有X11的情况下运行它。

  • --start-time = 26-是快照的确切位置,以秒为单位

  • --run-time = 1-视频将在几秒钟内“播放”多长时间。我们播放一秒钟以制作此屏幕截图
  • --rate = 1何时截屏。这基本上意味着“每秒”,如果文件较长,则很有用,每60秒或每5分钟拍摄一次屏幕截图
  • --video-filter = scene告诉VLC我们要截屏
  • --vout = dummy X11上没有视频输出,我们不需要
  • --aout = dummy没有音频输出,我们不需要它
  • --scene-ratio = 24 我们告诉VLC每秒大约有24帧
  • --scene-prefix = sample-image 屏幕快照的文件名
  • --scene-replacesample-image.png当前的屏幕快照替换所有称为屏幕快照的文件。如果您省略此设置,VLC将开始为屏幕截图编号
  • vlc:// quit 完成后退出vlc

完整的文档在这里


chat是什么意思?我想在第26秒拍摄快照。那么为什么用-t指定时间范围。我正在拍摄图像而不是视频。
Sonevol

3
之所以说“ Chatty”,是因为ffmpeg使用此命令打印了40行日志输出,例如当前版本,安装类型和有关输入视频文件的信息-这对您来说并不有趣。为了您的目的,您可以省略“ -t 1”。似乎默认值为一秒或一秒的一小部分,这对于屏幕截图来说很好。最好的区别是可以定义输出文件名和调整质量/分辨率等
Robert Riedl
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.