学成在线_视频处理_视频转码不成功

问题

当我们用xxljob进行视频处理中的转码操作时会发现视频转码不成功。即程序会进入下图所示的if语句内。
在这里插入图片描述

问题原因

在进行视频转码时程序会调用Mp4VideoUtil类下的 generateMp4方法,而result接收的正是该方法的返回值。那么什么时候generateMp4方法的返回值会为"success"?答:转码后的视频时长与原视频时长一致时。我们进一步思考generateMp4方法是如何进行时长比较的呢?答:该方法会先分别计算原视频与转码后视频的时长,然后对两个时长进行一定的误差处理,最后比较两个时长是否相等。如:

  1. 计算得原视频时长为"00:00:05.17",转码后视频时长为"00:00:05.12"
  2. 误差处理:将小数点后的两位数字去掉得原视频与转码后视频时长都为“00:00:05”
  3. 比较这两个时间字符串,发现内容相同则返回“success”。
    虽然从上面这个例子看这样的误差处理方式没问题,但如果在第一步时程序计算得原视频时长为"00:00:05.97",转码后视频时长为"00:00:06.02",那么原本两个播放时长相同的视频也会被误判为不相同。也就是说generateMp4方法中对于视频时长的误差处理是不合理的。

解决方案

修改generateMp4方法中对于视频时长的误差处理。
新的误差处理方案为:只要两个时长的误差范围在正负1s内即认为两个时长相同。
由于generateMp4方法又调用了VideoUtil类中的check_video_time方法,所以最终的修改是在VideoUtil类中的check_video_time方法中进行。
修改后
在这里插入图片描述
修改后的check_video_time方法

//检查视频时间是否一致public Boolean check_video_time(String source,String target) {String source_time = get_video_time(source);//取出时分秒source_time = source_time.substring(0,source_time.lastIndexOf("."));String target_time = get_video_time(target);//取出时分秒target_time = target_time.substring(0,target_time.lastIndexOf("."));SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss");String target_time1 = null;String target_time2 = null;try {Date date = formatter.parse(target_time);long time = date.getTime();target_time1 = formatter.format(time - 1000);target_time2 = formatter.format(time + 1000);} catch (ParseException e) {e.printStackTrace();}if(source_time == null || target_time == null){return false;}if(source_time.equals(target_time) || source_time.equals(target_time1) || source_time.equals(target_time2)){return true;}return false;}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/282471.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【3D reconstruction 学习笔记 第二部】

三维重建 3D reconstruction 4. 三维重建与极几何三角化(线性解法)三角化(非线性解法)多视图几何极几何极几何约束基础矩阵估计 5. 双目立体视觉重建6. 多视图重建7. SFM 系统设计8. SLAM系统设计 4. 三维重建与极几何 三角化&…

机器人路径规划:基于霸王龙优化算法(Tyrannosaurus optimization,TROA)的机器人路径规划(提供MATLAB代码)

一、机器人路径规划介绍 移动机器人(Mobile robot,MR)的路径规划是 移动机器人研究的重要分支之,是对其进行控制的基础。根据环境信息的已知程度不同,路径规划分为基于环境信息已知的全局路径规划和基于环境信息未知或…

蓝桥杯单片机快速开发笔记——特训2 按键的长按与短按

一、题目要求 在CT107D单片机综合训练平台上,通过I/O模式编写代码,实现以下功能: 系统上电后,关闭蜂鸣器、继电器和全部指示灯,数码管显示初始值为28,仅显示数码管最右边两位。利用定时器0实现10ms间隔定…

美摄科技剪同款SDK解决方案全面升级

视频内容已成为企业宣传、品牌塑造和市场营销的重要载体。然而,如何快速、高效地制作出高质量的视频内容,成为摆在众多企业面前的一大难题。针对这一挑战,美摄科技凭借深厚的技术积累和创新能力,推出了全新的剪同款SDK解决方案&am…

如何注册 onlyFans? onlyFans 如何订阅教程

一、onlyFans 介绍 OnlyFans 是一个在线平台,允许创作者为他们的内容提供订阅服务,通常是成人内容或独家内容。该平台于2016年成立,起初被认为是一个用于演员、模特、艺术家和其他创意行业从业者分享内容的地方。随着时间的推移,O…

21 OpenCV 直方图均衡化

文章目录 直方图概念均衡的目的equalizeHist 均衡化算子示例 直方图概念 图像直方图,是指对整个图像像在灰度范围内的像素值(0~255)统计出现频率次数,据此生成的直方图,称为图像直方图-直方图。直方图反映了图像灰度的分布情况。 均衡的目的…

全国农产品价格分析预测可视化系统设计与实现

全国农产品价格分析预测可视化系统设计与实现 【摘要】在当今信息化社会,数据的可视化已成为决策和分析的重要工具。尤其是在农业领域,了解和预测农产品价格趋势对于农民、政府和相关企业都至关重要。为了满足这一需求,设计并实现了全国农产…

摘录笔记——2024年3月20日

这位大佬介绍的技术PM方面心得,有一定的启发意义(虽说我现在只是搬砖的,跟PM还有一定差距),现在摘录出来作为记录: 一文聊聊我理解的技术PM作为技术同学,不仅要写好自己的代码,做好…

OpenAI 首席执行官Altman透漏GPT-5最新细节

关注文章底部的公众号,获取每日AI最新新闻 获取每日资讯 Altman透漏GPT-5细节 在最近的一次采访中,美国知名播客 Lex Friedman 邀请 OpenAI 首席执行官 Sam Altman 进行专访。在 Altman 眼中 GPT-4 还是很糟糕的,他预计 5 和 4 之间的差值将与 4 和 3 之间的差值相同。具体…

时代教育期刊投稿发表

《时代教育》是由成都传媒集团主管主办,中华人民共和国新闻出版总署批准国内公开出版发行的专业教育类期刊,主要刊登各类高等院校、职业技术学校、中小学教师及研究生、教育科研工作者的教育实践研究成果;教育教学行业的最新动态;…

Python爬虫案例-爬取主题图片(可以选择自己喜欢的主题)

2024年了,你需要网络资源不能还自己再慢慢找吧? 跟着博主一块学习如何利用爬虫获取资源,从茫茫大海中寻找那个她到再妹子群中找妹子,闭着眼睛都可以找到合适的那种。文章有完整示例代码,拿过来就可以用,欢迎…

【智能算法】多元宇宙优化算法(MVO)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献 1.背景 2016年,Mirjalili 等人受到宇宙膨胀理论启发,提出了多元宇宙优化算法(Multi-verse Optimization, MVO)。 2.算法原理 2.1算法思想 MVO基于宇宙膨胀的原理,利用…

python 教你如何创建一个自定义库 colorlib.py

目录 Colorlib 生成代码 模块代码 导入测试 测试一 测试二 应用测试 颜色列表 colorList 随机颜色元组 randcolorTuples 随机颜色字串 randcolorStrings Color类测试 测试一 测试二 题外话 Colorlib 有没有碰到过这样的场景:写代码时想要用上丰富的色…

huggingface的transformers训练gpt

目录 1.原理 2.安装 3.运行 ​编辑 4.数据集 ​编辑 4.代码 4.1 model init​编辑 forward: 总结: 关于loss和因果语言模型: ​编辑 交叉熵:​编辑 记录一下transformers库训练gpt的过程。 transformers/examples/…

鸿蒙开发之导航栏tabs(类似Android tablayout)

当页面信息较多时,为了让用户能够聚焦于当前显示的内容,需要对页面内容进行分类,提高页面空间利用率。Tabs组件可以在一个页面内快速实现视图内容的切换,一方面提升查找信息的效率,另一方面精简用户单次获取到的信息量…

使用uniapp,uni-data-select组件时,内容长度没超过容器宽度时候虽然能显示全内容但是数据后边会出现三个点,逼死强迫症

项目场景: 微信小程序开发,使用uniapp,uni-data-select组件时,内容长度没超过容器宽度时候虽然能显示全内容但是数据后边会出现三个点,逼死强迫症 解决方案: 找到组件的源代码,然后删除那三个…

图像几何变换(仿射变换和透视变换...)及python-opencv实现

文章目录 图像变换类型仿射变换透视变换python-opencv实现参考文献 图像变换类型 图像几何变换主要包括以下几种类型: 平移(Translation):将图像在水平或垂直方向上移动,不改变图像的尺寸和形状。缩放(Sca…

声控小助手:文本语音呼唤技术的应用与实现

title: 声控小助手:文本语音呼唤技术的应用与实现 date: 2024/3/22 18:20:42 updated: 2024/3/22 18:20:42 tags: 文本语音呼唤技术原理Python实现优缺点分析应用场景未来展望人机交互 1. 引言 在当今数字化时代,文本语音呼唤技术正逐渐成为人们生活中…

新零售SaaS架构:线上商城系统架构设计

零售商家为什么要建设线上商城? 传统的实体门店服务范围有限,只能吸引周边500米以内的消费者。因此,如何拓展服务范围,吸引更多的消费者到店,成为了店家迫切需要解决的问题。 缺乏忠实顾客,客户基础不稳&…

聊聊芯片中的动态功耗( Dynamic Power)

一、Dynamic Power 概念 动态功耗:主要包括动态开关电流引起的Switching Power和MOS管内部的Internal Power。 1.1 翻转功耗 我们先看Switching Power,开关功耗是指在逻辑门开关时所引起的功耗,在CMOS逻辑门输出节点产生逻辑转换时…