保存海康的视频成MP4格式的视频,最后无法在网页上播放,或者干脆本地无法打开;

既然使用ffmpeg作为视频转码工具,首先需要有这个;

idea下FFmpeg存放的位置,或者可以自定将其配置到环境变量中,我这边是为了防止在其他地方部署每次都要配置这个环境变量,所以直接放在了资源文件夹下面;

public class VideoUtils {private static Logger log = Logger.getLogger(VideoUtils.class);private static String ffmpegPath = null;// 获取FFmpeg所在路径,这边是直接丢在Resource文件夹下面ffmpeg文件夹下public static String getFFPath() {if (ffmpegPath != null) {return ffmpegPath;}ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();try {//获取所有匹配的文件Resource resource = resolver.getResource("ffmpeg/ffmpeg.bat");//获得文件流,因为在jar文件中,不能直接通过文件资源路径拿到文件,但是可以在jar包中拿到文件流InputStream stream = resource.getInputStream();String targetFilePath = resource.getFile().getParent();return targetFilePath;} catch (IOException e) {return null;}}public static boolean processMP4(String inputPath, String outputPath) {long start = System.currentTimeMillis();log.info("接收到视频文件,开始对文件进行转码...");if(StringUtils.isBlank(inputPath)){return null;}// 构建 ffmpeg -i 1.mp4 -c copy -an 2.mp4StringBuilder commend = new StringBuilder();String ffPath = getFFPath();
//        commend.append("cmd /k \"cd  "+ ffPath+" ");//可以设置环境变量从而省去这行commend.append(" ffmpeg ");commend.append(" -i ");commend.append(inputPath);commend.append(" -c copy ");commend.append(" -an ");commend.append(outputPath);try {File dir = new File(ffPath);String[] cmd = new String[]{"cmd", "/c", commend.toString()};Process p = Runtime.getRuntime().exec(cmd, null, dir);//1. startBufferedReader buf = null; // 保存ffmpeg的输出结果流String line = null;//read the standard outputbuf = new BufferedReader(new InputStreamReader(p.getInputStream()));StringBuffer sb = new StringBuffer();while ((line = buf.readLine()) != null) {// 输出到控制台,这部分都可以删除System.out.println(line);sb.append(line);continue;}int ret = p.waitFor();//这里线程阻塞,将等待外部转换进程运行成功运行结束后,才往下执行//1. endlog.info("结束视频转码,共耗时:" + (System.currentTimeMillis() - start) +"耗秒");return true;} catch (Exception e) {System.out.println(e);return false;}}// 删除原始文件public static void delOriginalFile(String filePath) {File file = new File(filePath);if (file.exists())file.delete();}public static void main(String[] args) {String input = "E:\\202110091408390859.mp4";String output = "E:\\new3.mp4";System.out.println(processMP4(input, output));delOriginalFile(input);}
}

java 通过ffmpeg 将海康视频转码相关推荐

  1. java 前台播放视频_「纯js项目」海康视频项目,java后台+前台web显示的,望提供思路!...

    纯js项目: 海康视频项目,java后台+前台web显示的,望提供思路! 如果只是实现BS架构,可以向海康要web开发包,直接使用浏览器通过ocx访问海康设备浏览视频,如果需要的功能不全,再使用JNI ...

  2. 调用海康视频接口获取预览取流的URL

    开始之前请参考海康官方SDK文档 鉴于前段时间刚接触视频这一块,整理了自己的一些经验,具体的你们还是参考文档来吧 附上文档地址 https://open.hikvision.com/docs/docI ...

  3. ffmpge海康视频文件格式转换

    陈拓 2021/08/29-2020/08/29 1. 概述 在<海康威视SDK控制台程序consoleDemo将实时码流保存为视频文件> https://zhuanlan.zhihu.c ...

  4. java GB28181 大华 海康摄像机国标对接源码源代码程序

    java GB28181 大华 海康摄像机国标对接源码源代码程序 本人亲测说明:首先此套程序我测试了可以用,但是不能同时多客户同时看一路视频,视频打开速度也很慢.仅拿来参考是可以的,还凑合吧. WEB ...

  5. avi和音频合成 ffmpeg_使用Java和ffmpeg把音频和视频合成视频的操作方法

    FFmpeg是一个开源免费跨平台的视频和音频流方案,属于自由软件,采用LGPL或GPL许可证(依据你选择的组件).它提供了录制.转换以及流化音视频的完整解决方案.它包含了非常先进的音频/视频编解码库l ...

  6. 海康视频插件启动过程中出现跨域问题has been blocked by CORS policy

    海康视频插件启动过程中出现反复启动 控制台报错:has been blocked by CORS policy: The request client is not a secure context ...

  7. 实现谷歌浏览器打开海康视频等OCX控件

    1.下载工具并安装 控件工具安装程序下载: 链接:https://pan.baidu.com/s/1HKc0gM7W5DFMbeMSYLM0sg 提取码:dnmn 2.打开安装目录下的openIE.h ...

  8. 海康视频VTM流监控浏览器实时播放调试总结

    海康视频VTM流播放调试总结 VTM视频demo调用部分代码 配置好地址账号密码后即可进行浏览器实时调用demo实现 网域ip可在vtm服务配置中获取 设备编码需注意: 设备编码取此处编码设备编号,可 ...

  9. 如何选择好用的海康视频恢复软件?综合考虑这几点

    海康视频恢复通常是指从海康威视监控设备中恢复删除或丢失的视频.在使用海康设备进行监控时,一些重要的视频可能会被误删除或其他原因导致丢失,如果没有及时备份,数据就可能会"永久"丢失? ...

  10. 解决海康视频插件错位以及点击页面出现闪烁的情况

    此问题在我不屑的探索中终于摸清楚了!! 首先博主的问题是由于多页面造成的,比如layadmin框架,海康视频插件错位的原因是因为主页面中嵌入的子页面都是以iframe的方式,我大胆的猜测海康视频是单页 ...

最新文章

  1. 使用分布式+you-get多任务下载视频
  2. 在DataGridView控件中加入ComboBox下拉列表框的实现
  3. java获取随机正整数
  4. 短代码 html,WordPress的短代码问题嵌入HTML格式
  5. [USACO 4.2] 完美的牛栏
  6. java 并发_Java并发防范机制
  7. 搭建本地 HTTPS 环境
  8. go反射实战之数组的查找Find过滤Filter函数实现
  9. android cpp 调用 shell命令
  10. Linux目录结构与文件权限
  11. 2008-2019年高等学校科技统计资料汇编
  12. C语言编程学习使用auto定义变量的用法
  13. 清华计算机毕业论文,清华大学本科毕业论文
  14. JAVA标准异常分两大类_java异常分类
  15. 好用的chrome插件:鼠标手势、阅读视图、onetab
  16. 关于更换无线网卡后Win10连接上蓝牙耳机后没声音的问题
  17. 读书笔记:人性的弱点读后感
  18. 张宏系列又双叒叕售罄了
  19. GitHub 热榜:标星 1.6w,黑客必看的黑魔法开发指南!
  20. 一些简单统计计算函数的编写

热门文章

  1. Web版微信协议详解
  2. 微信小程序--个人主页的制作
  3. 什么是鸭子类型(duck typing)
  4. 10.恩智浦-车规级-MCU:S32K11X FTM-PWM输出实验
  5. 中科大自主招生计算机,中科大自主招生(中科大自主招生试题)
  6. 圣杯布局和双飞翼布局
  7. 虚拟化是什么意思?包含哪些技术?与私有云有什么区别?
  8. wordpress 搭建的博客: 增加网站备案信息
  9. pyqt5 选择打开文件夹与读取文件夹图片列表
  10. 白帽黑客必备的15个技能点