通过Java获取视频时长,可以通过jave和ffmpeg这两种工具来获取,jave和ffmpeg都能拿到本地视频文件的时长,可如果是播放视频URL,就只能通过ffmpeg来获取.

现在视频文件基本上都是放到CDN上的,不太可能把文件下下来再逐个获取视频时长,在解决这个问题的时候,曾看到浏览器可以直接获取在线视频的播放时长,因此你可以将数据库的视频文件地址放到浏览器页面上,循环获取视频时长,效率也快(总比你下载要快的多吧),可这里有个前提,就是你必须借助浏览器来获取视频时长,你必定的打开一个页面吧.如果你想一次性更新数据库的视频文件,搞个临时的程序也不错,之后再上传的视频文件先拿到时长,在存进去也不错.但我们能不能搞个东西像浏览器一样,只需拿到视频文件的数据头就能拿到视频时长等信息,答案是可以的.

这就是ffmpeg了,不得不说ffmpeg的功能很多,但我们只想通过它获取视频地址时长.个人在解决这个问题的时候真的有瞎猫碰上死耗子的赶脚.因为在网上查的ffmpeg的命令语法,还真没有测试在线视频的这种,我执行将本地文件路径换成视频文件地址,没想到是可以的.

获取视频信息的dos命令语法:"ffprobe 资源地址",资源地址可以是本地视频文件绝对路径,也可以是http协议的视频文件地址都可以.知道这个命令就能通过java调用外部程序来获取命令执行结果.可是这里也出问题了,你在dos执行命令可以很清晰的看到这个命令返回的视频信息.可是到java就是拿不到(通过ipconfig命令可以很容易拿到),要不咋说这玩意不走寻常路呢,正常的输出信息都会在执行的输出流中,可人家把信息输出到错误输出流.这里哔哔了,不多说直接上代码.

execDos方法:

其中"IOUtils"是apache工具包的数据流读取工具类,你可以替换成自己的数据流读取.其他没什么.

还有就是不论你在Linux还是windows都需要安装ffmpeg软件,windows比较容易,直接下载解压,将软件bin目录放到混进变量中,Linux需要下载源码编译安装,编译时间比较长(大概半小时吧),make安装后不需要配置环境变量的.这里给出ffmpeg官网地址:http://ffmpeg.org/

关于Linux上安装ffmpeg,这里不在多数,网上有很多这样的教程.

通过ffmpeg获取视频时长相关推荐

  1. Java通过FFMPEG获取视频时长

    2019独角兽企业重金招聘Python工程师标准>>> Java通过FFMPEG获取视频时长 详见https://www.yz1618.cn/view/19 转载于:https:// ...

  2. ffmpeg获取视频时长和分辨率

    文章目录 ffmpeg获取视频文件时长和分辨率 获取视频时长 获取视频分辨率 ffmpeg获取视频文件时长和分辨率 获取视频时长 import os import subprocess# video_ ...

  3. java ffmpeg 获取视频时长_Java通过调用FFMPEG获取视频时长

    FFmpeg是一套可以用来记录.转换数字音频.视频,并能将其转化为流的开源计算机程序.采用LGPL或GPL许可证.它提供了录制.转换以及流化音视频的完整解决方案.它包含了非常先进的音频/视频编解码库l ...

  4. java如何截取视频文件_Java获取视频时长及截取帧截图详解

    前言 只是最近碰到有这方面的项目需求,所以简单 Mark 下本文.下面的示例是参考过他人分享的文章,之后本人再自行实践.调整和测试过的,希望对有这方面需求的人有所帮助. 示例 添加依赖 org.byt ...

  5. 使用ffmpeg调整视频时长倍速

    简介:通过ffmpeg调整视频时长,既可以尽量因调整视频时长引起的对视频质量的侵害,也能避免使用第三方工具收费或者广告问题,从而更干净安全的获取目标视频时长转换. 相关攻略: 利用ffmpeg将avi ...

  6. Python 获取视频时长(附代码) | Python工具

    目录 前言 环境依赖 代码 总结 前言 本文提供获取视频时长的python代码,精确到毫秒,一如既往的实用主义. 环境依赖 ffmpeg环境安装,可以参考我的另一篇文章:windows ffmpeg安 ...

  7. php 判断视频时长,php 获取视频时长

    利用ffmpeg只能获取到本地视频的信息. function video_time($file) { ob_start(); passthru(sprintf(FFMPEG_PATH, $file)) ...

  8. java获得U盘根目录、读取图片视频头文件信息、获取视频时长

    1.获得U盘根目录,例如我们取名U盘名称为"测试U盘",一般插入U盘后,在系统的H盘 /** * 得到系统U盘根目录 */ public String findURootPath( ...

  9. uni-app小程序如何获取视频时长

    uni-app小程序如何获取视频时长 从网上搜寻了一下发现都没有单纯获取视频时长的方法,于是只能自己研究一下了 uni-app和小程序都提供了video组件,却发现并没有提供获取视频时长属性或方法, ...

最新文章

  1. 受用一生的高效PyCharm使用技巧
  2. R语言计算回归模型的SST、SSR以及SSE指标实战
  3. Linux Socket编程的一些总结
  4. msf生成linux shellcode,MSF-Shellcode生成和使用
  5. 如何找出nginx配置文件的所在位置?
  6. 修复bug的12个关键步骤:
  7. 转载:Apache commons开源工具简介
  8. 380免费云存储_三款功能强大的云盘软件,完全替代百度云与腾讯云
  9. javaScript从入门到精通3.md
  10. 视频教程-CCNA视频----从零开始学CCNA实验视频课程(加强版)-思科认证
  11. 公众号H5运营如何激发用户的打开H5商城欲望?
  12. 华三基础命令(单臂,超级vlan,远程,聚合)
  13. Android蓝湖图片格式,蓝湖「自动切图」新增 JPG、PDF、WebP 格式
  14. 微信、企业微信分享按钮隐藏问题
  15. 电脑风扇狂转,声音巨大是什么原因?
  16. go语言多package使用实战
  17. 学生信息表 成绩表+12章练习
  18. MCM/ICM(美国大学生数学建模竞赛)报名指南
  19. linux u盘插入事件,Linux 下监控USB设备拔插事件
  20. Unity Shader:实现菲涅尔+色散效果的环境映射以及相关原理解析

热门文章

  1. 新书推荐:最强 iOS 安全黑宝书
  2. AssetBundle-AssetBundle Brower Tool
  3. 用FL Studio基础版制作一首完整的电音
  4. zootracer使用说明——一款视频物体追踪软件,获取运动物体在屏幕坐标系的运动轨迹
  5. 区块链或能成为防范网络风险新招
  6. 如何写出高效的软件测试用例?微信朋友圈动态发送为例
  7. java调用shell获取错误信息_shell编程的若干实用技巧
  8. 思科Webex定义协作的未来
  9. 记百度推广和净网大师拦截广告的一次撕逼
  10. PSP用DOS模拟器DOSBOX 0.71版发布