前端用H5的Video标签做了播放器,部分mp4文件上传成功后只有声音而没有画面,经过了解之后才知道此标签只支持编码为H264的MP4文件,不支持编码为MPEG4的MP4文件,想成功播放必须要转码。于是就去网上找啊找,刚开始全是格式化工厂转,但是我要的是可以用代码实现的。。。但最后找到一种折中的方法,就是拿ffmpeg工具结合代码来完成转码。
当然了,首先得检测该MP4的编码是哪种类型,如果是H264,那就不用转了直接上传就好了,否则就需要转码。这是检测的代码。(ps:因为用的是maven项目,而中央仓库找不到这个依赖,还得手动打包到本地仓库。。。这是jar包地址,下1.0.2版本的。)
http://www.sauronsoftware.it/projects/jave/download.phpEncoder encoder = new Encoder();
File target1 = new File(path);
MultimediaInfo info3 = encoder.getInfo(target1);
System.out.println(info3);
**输出结果如下:**
it.sauronsoftware.jave.MultimediaInfo (format=mov, duration=115200, video=it.sauronsoftware.jave.VideoInfo (decoder=h264, size=it.sauronsoftware.jave.VideoSize (width=1280, height=720), bitRate=-1, frameRate=25.0), audio=it.sauronsof