完善视频转码测试代码
This commit is contained in:
parent
6f3878712a
commit
d8a247d9b1
@ -33,7 +33,7 @@ public class MediaManager {
|
|||||||
/**
|
/**
|
||||||
* 可以处理的视频格式
|
* 可以处理的视频格式
|
||||||
*/
|
*/
|
||||||
public final static String[] VIDEO_TYPE = {"MP4", "WMV"};
|
public final static String[] VIDEO_TYPE = {"MP4", "WMV", "RMVB", "AVI"};
|
||||||
/**
|
/**
|
||||||
* 可以处理的图片格式
|
* 可以处理的图片格式
|
||||||
*/
|
*/
|
||||||
|
@ -3,9 +3,6 @@ import ink.wgink.module.file.media.manager.domain.VideoMetaInfo;
|
|||||||
import ink.wgink.module.file.media.manager.domain.enums.CrfValueEnum;
|
import ink.wgink.module.file.media.manager.domain.enums.CrfValueEnum;
|
||||||
import ink.wgink.module.file.media.manager.domain.enums.PresetVauleEnum;
|
import ink.wgink.module.file.media.manager.domain.enums.PresetVauleEnum;
|
||||||
import ink.wgink.module.file.media.manager.process.IMediaStream;
|
import ink.wgink.module.file.media.manager.process.IMediaStream;
|
||||||
import org.joda.time.DateTime;
|
|
||||||
import org.joda.time.format.DateTimeFormat;
|
|
||||||
import org.joda.time.format.DateTimeFormatter;
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import java.io.BufferedReader;
|
import java.io.BufferedReader;
|
||||||
@ -58,14 +55,14 @@ public class MediaTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void t3() {
|
public void t3() {
|
||||||
MediaManager.getInstance().setFFmpegPath("/Users/wanggeng/ffmpeg/ffmpeg");
|
MediaManager.getInstance().setFFmpegPath("D:\\ffmpeg-4.4-full_build\\ffmpeg-4.4-full_build\\bin\\ffmpeg.exe");
|
||||||
String sourcePath = "/Users/wanggeng/Desktop/UploadFiles/videos/20210119";
|
String sourcePath = "C:\\Users\\wenc0\\Desktop\\UploadFiles";
|
||||||
String sourceName = "85355a761e3442cda765c3bc6f5bd526.mp4";
|
String sourceName = "超体.rmvb";
|
||||||
File sourceFile = new File(sourcePath + File.separator + sourceName);
|
File sourceFile = new File(sourcePath + File.separator + sourceName);
|
||||||
File outFile = new File(sourcePath + File.separator + sourceName + ".mp4");
|
File outFile = new File(sourcePath + File.separator + sourceName + ".mp4");
|
||||||
|
|
||||||
Pattern durationPattern = Pattern.compile("Duration: \\d{2}:\\d{2}:\\d{2}\\.\\d{2}");
|
Pattern durationPattern = Pattern.compile("Duration: \\d{2}:\\d{2}:\\d{2}");
|
||||||
Pattern timePattern = Pattern.compile("time=\\d{2}:\\d{2}:\\d{2}\\.\\d{2}");
|
Pattern timePattern = Pattern.compile("time=\\d{2}:\\d{2}:\\d{2}");
|
||||||
|
|
||||||
MediaManager.getInstance().convertVideo(sourceFile, outFile, true, CrfValueEnum.LOW_QUALITY.getCode(), PresetVauleEnum.MAX_FAST_ZIP_SPEED.getPresetValue(), null, null, new IMediaStream() {
|
MediaManager.getInstance().convertVideo(sourceFile, outFile, true, CrfValueEnum.LOW_QUALITY.getCode(), PresetVauleEnum.MAX_FAST_ZIP_SPEED.getPresetValue(), null, null, new IMediaStream() {
|
||||||
@Override
|
@Override
|
||||||
@ -86,25 +83,32 @@ public class MediaTest {
|
|||||||
String duration = durationMatcher.group();
|
String duration = durationMatcher.group();
|
||||||
System.out.println(duration);
|
System.out.println(duration);
|
||||||
String durationTime = duration.replace("Duration: ", "");
|
String durationTime = duration.replace("Duration: ", "");
|
||||||
DateTime dateTime = DateTime.parse(durationTime, DateTimeFormat.forPattern("HH:mm:ss.SSS"));
|
fullTime = durationToLongTime(durationTime);
|
||||||
fullTime = dateTime.getMillis();
|
|
||||||
}
|
}
|
||||||
if (timeMatcher.find()) {
|
if (timeMatcher.find()) {
|
||||||
String time = timeMatcher.group();
|
String time = timeMatcher.group();
|
||||||
System.out.println(time);
|
System.out.println(time);
|
||||||
String timeTime = time.replace("time=", "");
|
String timeTime = time.replace("time=", "");
|
||||||
DateTime dateTime = DateTime.parse(timeTime, DateTimeFormat.forPattern("HH:mm:ss.SSS"));
|
currentTime = durationToLongTime(timeTime);
|
||||||
currentTime = dateTime.getMillis();
|
|
||||||
}
|
}
|
||||||
System.out.println(fullTime + "-" + currentTime);
|
System.out.println(fullTime + "-" + currentTime);
|
||||||
if (fullTime > 0L) {
|
if (fullTime > 0L) {
|
||||||
System.out.println((currentTime / fullTime * 100) + "%");
|
|
||||||
|
System.out.println((currentTime / (fullTime * 1D) * 100D) + "%");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private long durationToLongTime(String duration) {
|
||||||
|
String[] durationArray = duration.split("\\:");
|
||||||
|
int hour = Integer.parseInt(durationArray[0]);
|
||||||
|
int minute = Integer.parseInt(durationArray[1]);
|
||||||
|
int second = Integer.parseInt(durationArray[2]);
|
||||||
|
return (hour * 3600 + minute * 60 + second);
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void t4() {
|
public void t4() {
|
||||||
String line = " Duration: 00:14:05.11, start: 0.000000, bitrate: 1022 kb/s";
|
String line = " Duration: 00:14:05.11, start: 0.000000, bitrate: 1022 kb/s";
|
||||||
|
Loading…
Reference in New Issue
Block a user