求教,Linux下如何对视频进行截图

求教,Linux下如何对视频进行截图,第1张

Linux下命令行中可以用Scrot截屏,方法如下(以Ubuntu为例):1.在Ubuntu系统上安装自带截图工具Scrot[root@localhost tools]#sudo apt-get install scrot2.截取整个桌面直接运行该命令[root@localhost tools]#scrot3.指定保存目标文件夹和截图文件名[root@localhost tools]#scrot ~/Pictures/my_desktop.png4.选择一个特定的窗口或定义一个矩形区域来截图[root@localhost tools]#scrot -s#运行这个命令后,继续鼠标单击任意窗口或画出一个矩形,它能够触发对选定窗口/区域的屏幕截取。

点查看,选择缩略图就可以了。

视频文件格式的种类繁多,缩略图功能并不支持显示所有的视频文件的第一帧,但可以显示视频文件所关联的程序图标。建议你对视频文件关联正确的应用程序,以文件名进行区分。windows xp是最流行最常用的 *** 作系统,但是资源管理器的有些功能还是比较落后的,比如所有的视频文件不可以使用缩略图图标显示,像这样简单的功能在linux *** 作系统中是非常常见的。那如何才能弥补这样的缺憾呢?使用Media Preview这个软件即可解决。

视频使用缩略图图标显示是非常人性化的,和使用默认图标相比,缩略图可以让我们更加快速的找到文件。也可以更加快速的了解视频文件的内容,从而无需使用文件名辨别,也无需对视频进行逐个播放。

Media Preview的优点:

1、体积小巧,完全免费。这个软件是无需付费就可以使用的,并且5.6M的体积也是非常的小巧。

2、支持所有主流的视频格式。这个软件支持36种视频格式,从以前常见的rmvb、rm、avi、到高清时代使用的mkv、mp4都行。

3、智能的缩略图。Media Preview不会傻瓜的使用视频文件的第一帧作为缩略图显示。毕竟视频开始部分不是黑屏就是演员表,如果是连续剧的话,所有缩略图就只会是同一个画面,略缩图就失去了它的意义。这个软件带有智能算法能够找到具有代表性的画面作为缩略图使用,所以你一眼就可以了解视频内容是什么。

4、支持32位/64位 *** 作系统,并且可以在xp、vista、win7等系统中使用。如果你觉得windows 7中自带的这个功能比较差劲的话,Media Preview是非常好的替代品。

5、系统不会因此不稳定和运行缓慢。

6、带有中文设置界面。

7、使用简单,你只需要在设置界面中勾选关联的文件格式,点击“应用”按钮即可生效。

如果使用后发现没有效果,那么无需担心,因为很有可能是资源管理器的查看方式没有选对的原因,只需要把查看方式改成“缩略图”即可。如果还是不行,那么清理一下缩略图缓存吧。

JS脚本和FLASH内容连接,把内容的一个帧截下来就显示了。

【ffmpeg.exe可执行文件获取】:

网上搜索后得到编译好的ffmpeg文件,下载地址:HTTP:download!csdn!net/source/453719(!改成.)

【安装】:

将下载的文件解压,如:D:\ffmpeg,一共三个文件,分别是:ffmpeg.exe、ffplay.exe、pthreadGC2.dll。我们用到的应该是ffmpeg.exe。

【实现获取视频缩略图的两种方式】:

1、调用批处理文件:

批处理文件(如:ffmpeg.bat),内容:D:/ffmpeg/ffmpeg.exe -i %1 -ss 20 -vframes 1 -r 1 -ac 1 -ab 2 -s 160*120 -f image2 %2 。其中,%1与%2类似C语言中的参数,代码中是需要替换的,Java代码如下:

public static void main(String[] args) {

// 视频文件

String videoRealPath = "E://test.flv"

// 截图的路径(输出路径)

String imageRealPath = "E://test.jpg"

// 1、调用批处理文件

try {

Runtime.getRuntime().exec( "cmd /c start E://ffmpeg.bat " + videoRealPath + " " + imageRealPath)

} catch (IOException e) {

e.printStackTrace()

}

}

2、调用系统中的可执行程序

Java代码如下:

public static final String FFMPEG_PATH = "D:/ffmpeg/ffmpeg.exe"

public static boolean processImg(String path) {

File file = new File(path)

if (!file.exists()) {

System.err.println("路径[" + path + "]对应的视频文件不存在!")

return false

}

List<String>commands = new java.util.ArrayList<String>()

commands.add(FFMPEG_PATH)

commands.add("-i")

commands.add(path)

commands.add("-y")

commands.add("-f")

commands.add("image2")

commands.add("-ss")

commands.add("38")

commands.add("-t")

commands.add("0.001")

commands.add("-s")

commands.add("320x240")

commands.add(path.substring(0, path.indexOf(".")) + ".jpg")

try {

ProcessBuilder builder = new ProcessBuilder()

builder.command(commands)

builder.start()

return true

} catch (Exception e) {

e.printStackTrace()

return false

}

}

【总结】:

ffmpeg功能强大,不仅可以获取缩略图,而且支持大部分主流的视频格式,而且也可以对视频进行转码,使用起来也非常方便。虽然它是在Linux下开发而来的,但它可以在包括Windows下的大多 *** 作系统中编译,本文就是用了在Windows环境下编译好的文件来实现的。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8678208.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-19
下一篇2023-04-19

发表评论

登录后才能评论

评论列表(0条)

    保存