在做视频截取封面的时候用到了ffmpeg.我采用的是通过Java调用bat或sh脚本然后生成图片文件. 在线上使用的是Centos 7.所以程序中需要获取到当前运行环境的信息来选择调用bat命令还是sh

运行脚本&程序代码

  • win
D:\ffmpeg\bin\ffmpeg.exe  -ss 3 -i D:\upload\video\%1.mp4  -y -f image2 -t 0.001 -s 300*240 D:\upload\video\%2_pic.jpg
  • Linux
#!/bin/sh
src=$1
w=$2
h=$3
dist=$4
ffmpeg -ss 3 -i /home/yangkun/upload/video/$src -y -f image2 -t 0.001 -s $w*$h /home/yangkun/upload/video/$dist.jpg
  • 程序代码
	String os = System.getProperty("os.name");
if(os.toLowerCase().startsWith("win")){
ProcessBuilder winBuilder = new ProcessBuilder("cmd.exe", "/c", "call", "D:\\upload\\run.bat",UUID,UUID);
winBuilder.start();
}else{
ProcessBuilder LinuxBuilder = new ProcessBuilder("/home/yangkun/run.sh",UUID,"300","240",UUID);
LinuxBuilder.start();
}

Java获取当前运行环境信息

  • 判断操作系统是Linux还是Windows
String os = System.getProperty("os.name");
if(os.toLowerCase().startsWith("win")){
System.out.println(os + " win ");
}
  • System类getProperty方法参数
键相关值的描述
java.version Java 运行时环境版本
java.vendor Java 运行时环境供应商
java.vendor.url Java 供应商的 URL
java.home Java 安装目录
java.vm.specification.version Java 虚拟机规范版本
java.vm.specification.vendor Java 虚拟机规范供应商
java.vm.specification.name Java 虚拟机规范名称
java.vm.version Java 虚拟机实现版本
java.vm.vendor Java 虚拟机实现供应商
java.vm.name Java 虚拟机实现名称
java.specification.version Java 运行时环境规范版本
java.specification.vendor Java 运行时环境规范供应商
java.specification.name Java 运行时环境规范名称
java.class.version Java 类格式版本号
java.class.path Java 类路径
java.library.path 加载库时搜索的路径列表
java.io.tmpdir 默认的临时文件路径
java.compiler 要使用的 JIT 编译器的名称
java.ext.dirs 一个或多个扩展目录的路径
os.name 操作系统的名称
os.arch 操作系统的架构
os.version 操作系统的版本
file.separator 文件分隔符(在 UNIX 系统中是“/”)
path.separator 路径分隔符(在 UNIX 系统中是“:”)
line.separator 行分隔符(在 UNIX 系统中是“/n”)
user.name 用户的账户名称
user.home 用户的主目录
user.dir 用户的当前工作目录

最新文章

  1. 菜鸟学Struts2——HelloWorld
  2. spring源码:BeanPostProcessor(li)
  3. java12
  4. fsck检查和修复文件系统
  5. OpenCV学习笔记——视频的边缘检测
  6. codeforces 687D Dividing Kingdom II 带权并查集(dsu)
  7. win32 sdk绘制ListBox控件
  8. 使用sqlnet.ora限制IP访问
  9. docker--------------实践(转载)
  10. 【算法】LeetCode算法题-Longest Common Prefix
  11. 谈谈B-树和B+树及其应用
  12. 洛谷 P1613 跑路 解题报告
  13. mechanize (1)
  14. Linux 系统下安装 python-skimage
  15. kubelet Pod status的状态分析
  16. jQuery ajax的前台代码编写
  17. 2017-2018-2 20165233 实验四 Android程序设计
  18. 黄聪:VS2010编辑C#未启动,打开设计视图时报"未将对象引用设置到对象的实例"
  19. 迷你MVVM框架 avalonjs 1.3.1发布
  20. 在Wmware虚拟机上如何检查是否CPU支持虚拟化 和 加载kvm模块

热门文章

  1. 了解腾讯开源的多渠道打包技术 VasDolly源码解析
  2. BZOJ 2653 middle | 主席树
  3. Codeforces Round #281 (Div. 2) B 模拟
  4. urllib2.URLError: <ulropn error [Errno 10060] >
  5. PHP高性能开发-多进程开发
  6. C++虚函数表解析(基础篇)
  7. Vim 自动补全成对的括号和引号
  8. win2008服务器asp站点配置要点
  9. 【原创】SSIS-执行包任务调用子包且子包读取父包变量
  10. Ionic 存储目录 CORS