当前位置: 首页 > news >正文

wordpress安装在本地安装上海哪家优化公司好

wordpress安装在本地安装,上海哪家优化公司好,分销商城系统有哪些,cad图库大全素材免费下载使用ffmpeg软件转换网络视频#xff0c;先从官网下载对应操作系统环境的包 注意:网络地址需要是视频格式结尾#xff0c;例如.mp4,.flv 等 官网地址#xff1a;Download FFmpeg window包#xff1a; linux包#xff1a; 如果下载缓慢#xff0c;下载迅雷安装使用…使用ffmpeg软件转换网络视频先从官网下载对应操作系统环境的包 注意:网络地址需要是视频格式结尾例如.mp4,.flv 等 官网地址Download FFmpeg      window包 linux包 如果下载缓慢下载迅雷安装使用下载。 解压缩后对应截图 window: linux 在maven项目的pom.xml引入依赖包: dependencygroupIdnet.bramp.ffmpeg/groupIdartifactIdffmpeg/artifactIdversion0.7.0/version/dependencydependencygroupIdorg.bytedeco/groupIdartifactIdjavacpp/artifactIdversion1.4.1/version/dependencydependencygroupIdorg.bytedeco/groupIdartifactIdjavacv/artifactIdversion1.4.1/version/dependencydependencygroupIdorg.bytedeco.javacpp-presets/groupIdartifactIdffmpeg-platform/artifactIdversion3.4.2-1.4.1/version/dependency 引入类 import cn.hutool.core.date.DateUtil; import lombok.extern.slf4j.Slf4j; import net.bramp.ffmpeg.FFmpeg; import net.bramp.ffmpeg.FFmpegExecutor; import net.bramp.ffmpeg.FFprobe; import net.bramp.ffmpeg.builder.FFmpegBuilder; import org.bytedeco.javacv.FFmpegFrameGrabber; import org.bytedeco.javacv.FrameGrabber; import org.bytedeco.javacv.Java2DFrameConverter;import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.io.RandomAccessFile; import java.net.HttpURLConnection; import java.net.URL; 网络地址转换成本地视频方法 /*** 视频链接转换成本地视频* param videoUrl* param downloadPath* return*/public static boolean downVideo(String videoUrl,String downloadPath){HttpURLConnection connection null;InputStream inputStream null;RandomAccessFile randomAccessFile null;boolean re;try{URL url new URL(videoUrl);connection (HttpURLConnection) url.openConnection();connection.setRequestProperty(Range,bytes0-);connection.connect();if (connection.getResponseCode() / 100 ! 2){System.out.println(链接失败);return false;}inputStream connection.getInputStream();int downloaded 0;int fileSize connection.getContentLength();randomAccessFile new RandomAccessFile(downloadPath,rw);while (downloaded fileSize){byte[] buffer null;if (fileSize - downloaded 1000000){buffer new byte[1000000];}else{buffer new byte[fileSize - downloaded];}int read -1;int currentDownload 0;while (currentDownload buffer.length){read inputStream.read();buffer[currentDownload] (byte) read;}randomAccessFile.write(buffer);downloaded currentDownload;}re true;return re;} catch (Exception e) {e.printStackTrace();re false;return re;}finally {try{connection.disconnect();inputStream.close();randomAccessFile.close();}catch (Exception e){e.printStackTrace();}}} 网站地址转换成本地视频后再转换成mp4视频方法 /*** 其他视频格式地址转换成mp4* param orginalVideoPath 原视频地址* param newMp4FilePath 新mp4地址* return*/public static boolean otherVideoToMp4(String orginalVideoPath,String newMp4FilePath) {try{String ffmpegPath ;String ffprobePath ;if (SystemUtils.isWindows()){//目录里放的文件没有提交保存在本地测试的时候自行添加ffmpegPath VideoCovertUtil.class.getResource(/ffmpegdir/win/bin/ffmpeg.exe).getPath();ffprobePath VideoCovertUtil.class.getResource(/ffmpegdir/win/bin/ffprobe.exe).getPath();}else if (SystemUtils.isLinux()){/*ffmpegPath VideoCovertUtil.class.getResource(/ffmpegdir/linux/ffmpeg).getPath();ffprobePath VideoCovertUtil.class.getResource(/ffmpegdir/linux/ffprobe).getPath();*///在linux安装ffmpeg后配置路径//安装步骤https://blog.csdn.net/ysushiwei/article/details/130162831ffmpegPath /usr/local/bin/ffmpeg;ffprobePath /usr/local/bin/ffprobe;}log.info(ffmpegPath:ffmpegPath);log.info(ffmpegPath:ffprobePath);FFmpeg fFmpeg new FFmpeg(ffmpegPath);FFprobe fFprobe new FFprobe(ffprobePath);FFmpegBuilder builder new FFmpegBuilder().setInput(orginalVideoPath).addOutput(newMp4FilePath).done();FFmpegExecutor executor new FFmpegExecutor(fFmpeg,fFprobe);executor.createJob(builder).run();log.info(执行完毕);return true;}catch (IOException e){e.printStackTrace();return false;}} window可以直接放在项目中但是linux还需要配置。步骤如下。 1、将上方的linux包上传到服务器解压缩: tar -xvf ffmpeg-release-amd64-static.tar.xz 2、解压缩后进入根目录分别复制根目录下的ffmpeg和ffprobe到 /usr/local/bin/目录下: sudo cp 解压缩目录/ffmpeg /usr/local/bin/ sudo cp 解压缩目录/ffprobe /usr/local/bin/ 3.还要给文件设置权限否则运行代码的时候报没有权限: sudo chmod x /usr/local/bin/ffmpeg sudo chmod x /usr/local/bin/ffprobe 4、最后检查是否配置成功,如果有内容输出来则成功 ffmpeg -version ffprobe -version linux环境配置好后即可正常解析. 从视频中提取封面和获取时长: /*** 获取视频的第一帧封面* param filePath 视频地址* param targetPath 视频封面地址*/public static void getCover(String filePath,String targetPath){try{// 视频地址FFmpegFrameGrabber grabber new FFmpegFrameGrabber(new File(filePath));grabber.start();Java2DFrameConverter converter new Java2DFrameConverter();BufferedImage image converter.convert(grabber.grabImage());// 本地图片保存地址ImageIO.write(image, png, new File(targetPath));grabber.stop();image.flush();}catch (Exception e){e.printStackTrace();}}/*** 使用FFmpeg获取视频时长** param path 视频文件地址* return 时长单位为秒* throws IOException*/public static String getDuration(String path) {// 读取视频文件FFmpegFrameGrabber grabber new FFmpegFrameGrabber(path);try {grabber.start();} catch (FrameGrabber.Exception e) {e.printStackTrace();}// 获取视频长度单位秒int duration grabber.getLengthInFrames() / (int) grabber.getFrameRate();try {grabber.stop();} catch (FrameGrabber.Exception e) {e.printStackTrace();}return DateUtil.secondToTime(duration);} 由于视频转换下载等速度比较慢推荐使用异步执行。我用的是若依的框架代码如下。如用其他框架可自行参考写异步操作 //异步执行方法。不会等待执行完才执行下一位 AsyncManager.me().execute(AsyncFactory.convertVideoNetUrl(video.getVideoPath(),video.getId(),Constants.CONVERT_VIDEO_NET_VIDEO_URL));#在AsyncManager类里自定义一个异步方法如下/*** * param videNetUrl 视频网络地址* param id 类id* param entityClazz 类 0视频 1文章* return 任务task*/public static TimerTask convertVideoNetUrl(final String videNetUrl,Long id,Integer entityClazz){return new TimerTask(){Overridepublic void run(){if (entityClazz null || id null || StrUtil.isBlank(videNetUrl)){return;}if (entityClazz 0){IVideoService videoService SpringUtils.getBean(IVideoService.class);Video video videoService.selectVideoById(id);if (video null){return;}//现在是上传视频地址//先转换视频地址到服务器//后缀String ext video.getVideoPath().substring(video.getVideoPath().lastIndexOf(.));String videosubpath StringUtils.format({}/{}_{}{}, DateUtils.datePath(),IdUtils.fastSimpleUUID(), Seq.getId(Seq.uploadSeqType), ext);String downloadPath null;try {downloadPath FileUploadUtils.getAbsoluteFile(HqaConfig.getUploadPath() /, videosubpath).getAbsolutePath();}catch (Exception e){e.printStackTrace();}boolean downVideo VideoCovertUtil.downVideo(video.getVideoPath(),downloadPath);if (downVideo StrUtil.isNotBlank(downloadPath) downloadPath ! null){if (!ext.contains(mp4)){//下载成功后如果不是mp4格式转换成mp4格式String newVideosubpath StringUtils.format({}/{}_{}{}, DateUtils.datePath(),IdUtils.fastSimpleUUID(), Seq.getId(Seq.uploadSeqType), .mp4);String newMp4FilePath null;try {newMp4FilePath FileUploadUtils.getAbsoluteFile(HqaConfig.getUploadPath() /, newVideosubpath).getAbsolutePath();}catch (Exception e){e.printStackTrace();}boolean toMp4 VideoCovertUtil.otherVideoToMp4(downloadPath,newMp4FilePath);if (toMp4 StrUtil.isNotBlank(newMp4FilePath) newMp4FilePath ! null){//转换成功后删除之前下载过的视频地址并且保存新的mp4地址if (new File(downloadPath).exists()){FileUtils.deleteFile(downloadPath);}if (newMp4FilePath.contains(\\)){newMp4FilePath newMp4FilePath.replace(\\,/);}String newPath newMp4FilePath.replace(HqaConfig.getProfile(),/profile);video.setVideoPath(newPath);}}else{if (downloadPath.contains(\\)){downloadPath downloadPath.replace(\\,/);}//保存地址String newPath downloadPath.replace(HqaConfig.getProfile(),/profile);video.setVideoPath(newPath);}//视频截图和时长//获取视频第一帧封面String parentPath HqaConfig.getUploadPath()/ DateUtils.datePath();String fileName IdUtils.fastSimpleUUID().png;String targetPath parentPath/ fileName;try {FileUploadUtils.getAbsoluteFile(parentPath,fileName);} catch (IOException e) {e.printStackTrace();}String filePath video.getVideoPath().replace(/profile,);filePathHqaConfig.getProfile()filePath;VideoCovertUtil.getCover(filePath,targetPath);video.setCover(targetPath.replace(HqaConfig.getProfile(),/profile));String duration VideoCovertUtil.getDuration(filePath);video.setDuration(duration);videoService.updateVideo(video);}}else if (entityClazz 1){IArticleService articleService SpringUtils.getBean(IArticleService.class);Article article articleService.selectArticleById(id);if (article null){return;}//现在是上传视频地址//先转换视频地址到服务器//后缀String ext article.getVideoPath().substring(article.getVideoPath().lastIndexOf(.));String videosubpath StringUtils.format({}/{}_{}{}, DateUtils.datePath(),IdUtils.fastSimpleUUID(), Seq.getId(Seq.uploadSeqType), ext);String downloadPath null;try {downloadPath FileUploadUtils.getAbsoluteFile(HqaConfig.getUploadPath() /, videosubpath).getAbsolutePath();}catch (Exception e){e.printStackTrace();}boolean downVideo VideoCovertUtil.downVideo(article.getVideoPath(),downloadPath);if (downVideo StrUtil.isNotBlank(downloadPath) downloadPath ! null){if (!ext.contains(mp4)){//下载成功后如果不是mp4格式转换成mp4格式String newVideosubpath StringUtils.format({}/{}_{}{}, DateUtils.datePath(),IdUtils.fastSimpleUUID(), Seq.getId(Seq.uploadSeqType), .mp4);String newMp4FilePath null;try {newMp4FilePath FileUploadUtils.getAbsoluteFile(HqaConfig.getUploadPath() /, newVideosubpath).getAbsolutePath();}catch (Exception e){e.printStackTrace();}boolean toMp4 VideoCovertUtil.otherVideoToMp4(downloadPath,newMp4FilePath);if (toMp4 StrUtil.isNotBlank(newMp4FilePath) newMp4FilePath ! null){//转换成功后删除之前下载过的视频地址并且保存新的mp4地址if (new File(downloadPath).exists()){FileUtils.deleteFile(downloadPath);}if (newMp4FilePath.contains(\\)){newMp4FilePath newMp4FilePath.replace(\\,/);}String newPath newMp4FilePath.replace(HqaConfig.getProfile(),/profile);article.setVideoPath(newPath);}}else{if (downloadPath.contains(\\)){downloadPath downloadPath.replace(\\,/);}//保存地址String newPath downloadPath.replace(HqaConfig.getProfile(),/profile);article.setVideoPath(newPath);}articleService.updateArticle(article);}}}};}
http://www.pierceye.com/news/657752/

相关文章:

  • 苏州网站制作工作室宜宾网站开发公司
  • 哪些网站使用vue做的自己做服务器和网站
  • 怎样查看网站备案号自己录入数据做问卷的网站
  • 怎么提高网站的百度收录网页设计师考试报名
  • 北京网站建设公司联系方式常德网站建设专业品牌
  • 福州网站设计哪家做的好男科医院网站开发策划
  • 网站建设公司swot分析室内设计者联盟官网
  • 深圳手机商城网站设计游戏网站seo怎么做
  • 网站上传 文件夹结构国内响应式网站
  • 做logo图标的网站自助建站系统网站建设开发
  • 韩国站群服务器网络推广公司网站
  • 网站公司设计公司设计上海展会2021门票
  • 做微网站的公司哪家好刷百度关键词排名优化
  • php网站建设一流程胶南网站建设多少钱
  • 网站开发证书网站推广应该怎么做?
  • 网站规划与网页设计案例网站建设php招聘
  • 网站内容页优化阿里巴巴做网站么
  • 网站百度收录秒收方法网页制作员厂家
  • 免费做网站怎么做网站619去加网 wordpress
  • 网站建设基本资料信息流优化师是干什么的
  • 网站开发项目经理招聘高级网站设计效果图
  • 上海建网站社交型网站开发
  • 西安建网站做自动化设备哪个网站
  • 深圳优化网站关键词wordpress如何拖移小工具
  • 优秀网站设计欣赏国内网站后期
  • 计算机应用技术php网站开发php网站进后台
  • asp网站安全小x导航正品
  • 陕西省建设监理协会网站成绩查询如何用网站做课件
  • 帝国网站怎么仿站个人做旅游网站的意义
  • 网站建设白沟做公众号策划的网站