一、产生的原因

前端Video标签的局限性,限制视频播放,在界面显示时出现有声音无画面。如下所示:

Video支持视频格式如下:

二、解决方案

1、上传视频前,利用格式工厂编码video对应的格式。

2、上传视频时,Java后台处理视频编码格式。

现在针对Java后台处理过程进行讲解:

首先引入maven包:

<!-- 用于视频转码--><dependency><groupId>ws.schild</groupId><artifactId>jave-core</artifactId><version>2.7.3</version></dependency><dependency><groupId>ws.schild</groupId><artifactId>jave-all-deps</artifactId><version>2.7.3</version></dependency>

相关代码:


import ws.schild.jave.*;import java.io.File;/*** @author allen小哥 2020/1/21 13:55** 用于视频转码,更好支持前端video标签播放视频**/
public class VideoEncoderUtil {public static void main(String[] args) {String source = "D:\\material\\VIDEO\\视频2.mp4";File file = new File(source);String target ="D:\\个人素材\\视频\\89898.mp4";try {transform(file,target);}catch (Exception e){e.printStackTrace();}}/**** @param source 源文件* @param destPath 目标文件* @return*/public static File transform(File source , String destPath) {File target = new File(destPath);EncodingAttributes attrs = getEncodingAttributes("aac","libx264","mp4");transferEncoder(source, target, attrs);return target;}/**** @param source 源文件* @param destPath 目标文件* @param audioCodec 音频格式* @param videoCodec 视频编码格式* @param format 格式* @return*/public static File transform(File source , String destPath,String audioCodec,String videoCodec,String format) {File target = new File(destPath);EncodingAttributes attrs = getEncodingAttributes(audioCodec,videoCodec,format);transferEncoder(source, target, attrs);return target;}/**** @param source 源文件* @param target 目标文件* @param attrs 相关配置信息*/private static void transferEncoder(File source, File target, EncodingAttributes attrs) {Encoder encoder = new Encoder();try {encoder.encode(new MultimediaObject(source), target, attrs);} catch (Exception e) {System.out.println("视频转码失败:" + e);}}/*** 转码相关配置信息* @param audioCodec 音频格式* @param videoCodec  视频编码格式* @param format 格式* @return*/private static EncodingAttributes getEncodingAttributes(String audioCodec,String videoCodec,String format) {AudioAttributes audio = new AudioAttributes();//audio.setCodec("libmp3lame"); // mp3audio.setCodec(audioCodec);audio.setBitRate(new Integer(36000));audio.setChannels(new Integer(2)); //1 mono 单声道 2 stereo 立体声audio.setSamplingRate(new Integer(44100));VideoAttributes video = new VideoAttributes();video.setCodec(videoCodec);video.setBitRate(new Integer(160000));video.setFrameRate(new Integer(15));video.setSize(new VideoSize(400, 300));EncodingAttributes attrs = new EncodingAttributes();attrs.setFormat(format);attrs.setAudioAttributes(audio);attrs.setVideoAttributes(video);return attrs;}}

三、相关文档

https://blog.csdn.net/qq_34806812/article/details/81361817

https://blog.csdn.net/luohai859/article/details/52496054

https://segmentfault.com/q/1010000014656374

https://github.com/a-schild/jave2

http://www.sauronsoftware.it/projects/jave/manual.php

四、相关问题

A、Unknown encoder 'libmp3lame4'

audio.setCodec("libmp3lame4");  // 指没有这个音频编码器

调整:audio.setCodec("aac");

Java针对不同视频格式进行转码相关推荐

  1. java毕业设计短视频网站mybatis+源码+调试部署+系统+数据库+lw

    java毕业设计短视频网站mybatis+源码+调试部署+系统+数据库+lw java毕业设计短视频网站mybatis+源码+调试部署+系统+数据库+lw 本源码技术栈: 项目架构:B/S架构 开发语 ...

  2. java flv转mp3_如何使用java代码进行视频格式的转换(FLV)

    一,前言 在给网页添加视频播放功能后,发现上传的视频有各种格式,那么就需要将他么转换成FLV,以很好的支持在线视频播放. 二,准备 drv43260.dll,ffmpeg.exe,mencoder.e ...

  3. Java实现各种视频格式下载

    本期分享总结: Java后端实现接口封装各种格式视频文件的下载: /** * 视频下载 * @param request * @param response * @apram path */ @Req ...

  4. Java实现将视频格式从mp4转换为avi

    亲测有效 maven依赖 <dependency><groupId>ws.schild</groupId><artifactId>jave-core&l ...

  5. html转exe 酷狗,exe视频格式转换器

    之前有狸友问我视频exe格式如何转换,这可真是个大难题啊,这类视频格式文件很少见,而且用一般的是无法转换的,那怎么办呢?任何问题都会有解决的办法的,于是小编苦思冥想,查找资料,经过操作和测试,终于找到 ...

  6. 【已完结!】Java基础--学习笔记(零起点打开java世界的大门)--博客汇总表【附:视频、工程源码、资料、详细笔记】

    java零基础入门到精通(2019版)[黑马程序员] 视频+资料(工程源码.笔记)[链接:https://pan.baidu.com/s/1MdFNUADVSFf-lVw3SJRvtg   提取码:z ...

  7. 【JAVA】JAVA使用ffmpeg进行视频格式转换以及截图

    JAVA 处理视频文件,需要用到 ffmpeg  这个工具.不需要依赖jar包.无论是在windows服务器还是linux服务器,想要使用 ffmpeg 都需要先安装. 附上Linux下  *.tar ...

  8. java图片和视频上传_Java实现视频网站的视频上传、视频转码、视频关键帧抽图, 及视频播放功能(转)...

    视频网站中提供的在线视频播放功能,播放的都是FLV格式的文件,它是Flash动画文件,可通过Flash制作的播放器来播放该文件.项目中用制作的player.swf播放器. 多媒体视频处理工具FFmpe ...

  9. 【FFmpeg】java实现利用ffmpeg视频上传转码同时截取一帧保存为同名图片,并获取视频分辨率

    〇.前情提要 完成了视频上传,接下来是给上传的视频保存一张同名的jpg文件在同样文件夹中,并且获取到视频的分辨率. macOS Catalina 10.15.1 ffmpeg version 4.3. ...

最新文章

  1. flash php socket通信_php与flash as3 socket通信传送文件实现代码
  2. USB入门系列之二:USB的连接模型
  3. 《游戏力》读书笔记作文4700字
  4. 人终究要活出自己对于这个世界的看法和自己的处事方式,并且由内而外的生成自信
  5. kubernetes 数据_为什么数据科学家喜欢Kubernetes
  6. og 的 debug()、 error()、 info()方法的区别
  7. 湖北经济学院计算机专业全国排名,2018年湖北经济学院世界排名、中国排名、专业排名...
  8. 模板方法模式(模板方法设计模式)详解
  9. 通过InstallShield官网申请注册码
  10. 计算机绘图CAD实训指导,【精品】CAD计算机绘图实习指导书
  11. Python——>图像的字符画绘制
  12. SQL调优(SQL TUNING)并行查询提示(Hints)之pq_distribute的使用
  13. proteus7.7+Keil2仿真80C51控制流水灯
  14. HDFS文件系统的根目录和用户主目录解析
  15. 深入了解电容(三):陶瓷电容MLCC
  16. Debian9.12镜像下载及网络、软件源配置
  17. Weisfeiler-Lehman(WL)算法
  18. android 浏览器应用商店,百度易揭秘:自带应用商店和浏览器 兼容安卓
  19. rtthread的fish输出映射到其他串口
  20. 攻防世界reverse新手区——simple-unpack(upx脱壳)

热门文章

  1. 魔方 | 四阶魔方基础拼法
  2. 尤雨溪谈Vue的进化历程
  3. 欧能智能电销机器人为颠覆电销行业而来
  4. 项目管理—执行和变更流程
  5. python有链表和指针吗_了解如何更改指针和命令链表实现python
  6. 基于温度传感器的智能热水器
  7. python迭代器和可迭代对象
  8. 如何解压服务器系统,如何解压Linux系统下的zip文件
  9. Unity3D 大型游戏 最后一站 源码 部分重点ResourceManager(2)
  10. 小米路由器pro装php,关于路由器:小米路由器proR3P安装opkg