获取视频链接的视频信息

需求

在不下载视频文件的情况下获取视频的时长、分辨率等信息。

实现

引入包

compile('ws.schild:jave-all-deps:3.2.0')

 

代码demo

URL url = new URL(videoUrl);
MultimediaObject multimediaObject = new MultimediaObject(url);
MultimediaInfo multimediaInfo = multimediaObject.getInfo();

 

获取的信息:

ws.schild.jave.info.MultimediaInfo (
format=mov (
	metadata={
		major_brand=isom, encoder【编码方式】=Lavf58.12.100, minor_version=512, compatible_brands=isomiso2avc1mp41
	}, 
	duration【视频时长】=29830, 
	video=ws.schild.jave.info.VideoInfo (
		decoder【编码标准】=h264 (Constrained Baseline) (avc1 / 0x31637661), size=ws.schild.jave.info.VideoSize (
			width【帧宽度】=640, 
			height【帧高度】=360
			), 
		bitRate【总比特率】=2135000, 
		frameRate【帧率】=30.0
	), 
	audio=null
)

  

实现原理

内部jar包执行

Runtime runtime = Runtime.getRuntime();

ffmpeg = runtime.exec("ffmpeg-amd64-3.2.0.exe -i url");

解析返回值封装成dto

并不会下载视频文件,而是读取视频链接的头信息,所以速度很快

 

posted @ 2022-10-25 16:36  wkrs  阅读(231)  评论(0)    收藏  举报