需求是这样的,视频上传到远程服务器后,需要读取视频时长存到数据库中,以便前端展示。
1、需求看起来挺简单的,我在网上找了一下,找到了com.googlecode.mp4parser 工具包,导入之后一切都比较顺利,其工具方法时用的本地File类,因为视频是存在远程服务器上,需要先通过url方式下载到本地,然后生产File对象在来解析,
测试地址:
https://domhttp.kksmg.com/2022/09/22/h264_720p_600k_41426-pudongtv-20220922191600-4800-356788-600k_mp4.mp4
用网上的视频连接测试,很快就就将时长读取出来了,可惜,如果这么顺利就不会有这篇文章了。
2、经过测试,发现远程视频连接上有的没有视频格式,不能识别格式,非mp4的文件解析时程序代码无法识别,于是想到通过转换视频格式的方法,后来看了网上的一些代码发现太麻烦了,都弃用了。又找了一些解析视频的案例,发现jave简单使用,遂采用。
代码比较清爽:
import it.sauronsoftware.jave.Encoder;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
public class AudioUtil {
public static File urlToFile(URL url) {
Input