Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in / Register
Toggle navigation
Y
yzg-util
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
YZG
yzg-util
Commits
7715ebec
Commit
7715ebec
authored
Jul 14, 2020
by
yanzg
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
视频压缩
parent
259d179a
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
116 additions
and
9 deletions
+116
-9
MediaParameter.java
...ge/src/main/java/com/yanzuoguang/util/MediaParameter.java
+108
-9
TestMediaHelper.java
yzg-util-image/src/test/java/helper/TestMediaHelper.java
+8
-0
No files found.
yzg-util-image/src/main/java/com/yanzuoguang/util/MediaParameter.java
View file @
7715ebec
...
@@ -130,7 +130,7 @@ public class MediaParameter extends BaseVo {
...
@@ -130,7 +130,7 @@ public class MediaParameter extends BaseVo {
* @return
* @return
*/
*/
public
int
getAudioBitRateFinally
()
{
public
int
getAudioBitRateFinally
()
{
return
Math
.
max
(
this
.
minAudioBitRate
,
(
int
)
(
this
.
audioBitRate
*
this
.
audioBitRateZip
)
);
return
getMinValue
(
this
.
minAudioBitRate
,
this
.
audioBitRate
,
this
.
audioBitRateZip
);
}
}
/**
/**
...
@@ -139,7 +139,7 @@ public class MediaParameter extends BaseVo {
...
@@ -139,7 +139,7 @@ public class MediaParameter extends BaseVo {
* @return
* @return
*/
*/
public
int
getVideoBitRateFinally
()
{
public
int
getVideoBitRateFinally
()
{
return
Math
.
max
(
this
.
minVideoBitRate
,
(
int
)
(
this
.
videoBitRate
*
this
.
videoBitRateZip
)
);
return
getMinValue
(
this
.
minVideoBitRate
,
this
.
videoBitRate
,
this
.
videoBitRateZip
);
}
}
/**
/**
...
@@ -161,10 +161,46 @@ public class MediaParameter extends BaseVo {
...
@@ -161,10 +161,46 @@ public class MediaParameter extends BaseVo {
}
}
private
int
getWidthHeightFinally
(
boolean
width
)
{
private
int
getWidthHeightFinally
(
boolean
width
)
{
// 最大宽度和最大高度
int
maxWidth
=
Math
.
max
(
this
.
videoWidth
,
this
.
videoHeight
);
int
maxHeight
=
Math
.
min
(
this
.
videoWidth
,
this
.
videoHeight
);
// 获取允许的最小宽度和高度
int
minWidth
=
Math
.
max
(
this
.
minVideoWidth
,
this
.
minVideoHeight
);
int
minHeight
=
Math
.
min
(
this
.
minVideoWidth
,
this
.
minVideoHeight
);
// 计算最小宽度和高度
int
calcMinWidth
=
maxWidth
*
minHeight
/
maxHeight
;
int
calcMinHeight
=
maxHeight
*
minWidth
/
maxWidth
;
// 设置最小的宽高
if
(
minWidth
==
0
)
{
minWidth
=
calcMinWidth
;
calcMinHeight
=
minHeight
;
}
if
(
minHeight
==
0
)
{
minHeight
=
calcMinHeight
;
calcMinWidth
=
minWidth
;
}
// 判断宽高比列
if
(
calcMinHeight
>
minHeight
)
{
minHeight
=
calcMinHeight
;
}
else
{
minWidth
=
calcMinWidth
;
}
if
(
width
)
{
if
(
width
)
{
return
Math
.
max
(
this
.
minVideoWidth
,
(
int
)
(
this
.
videoWidth
*
this
.
videoSizeZip
));
int
minValue
=
this
.
videoWidth
>
this
.
videoHeight
?
minWidth
:
minHeight
;
return
getMinValue
(
minValue
,
this
.
videoWidth
,
this
.
videoSizeZip
);
}
else
{
int
minValue
=
this
.
videoWidth
<
this
.
videoHeight
?
minWidth
:
minHeight
;
return
getMinValue
(
minValue
,
this
.
videoHeight
,
this
.
videoSizeZip
);
}
}
private
int
getMinValue
(
int
min
,
int
from
,
float
zip
)
{
if
(
from
<
min
)
{
return
from
;
}
else
{
}
else
{
return
Math
.
max
(
this
.
minVideoHeight
,
(
int
)
(
this
.
videoHeight
*
this
.
videoSizeZ
ip
));
return
Math
.
max
(
min
,
(
int
)
(
from
*
z
ip
));
}
}
}
}
...
@@ -271,16 +307,67 @@ public class MediaParameter extends BaseVo {
...
@@ -271,16 +307,67 @@ public class MediaParameter extends BaseVo {
// recorder.setVideoQuality(this.videoBitRateZip);
// recorder.setVideoQuality(this.videoBitRateZip);
}
}
public
void
initZipMp4
()
{
/**
this
.
initMp4
();
* 设置最小压缩比特率
*/
public
void
initZipBitrate
()
{
// 设置视频压缩率
// 设置视频压缩率
this
.
audioBitRateZip
=
StringHelper
.
getFirst
(
this
.
audioBitRateZip
,
0.25f
);
this
.
audioBitRateZip
=
StringHelper
.
getFirst
(
this
.
audioBitRateZip
,
0.25f
);
// 设置压缩大小
this
.
videoSizeZip
=
StringHelper
.
getFirst
(
this
.
videoSizeZip
,
0.25f
);
// 设置视频压缩率
// 设置视频压缩率
this
.
videoBitRateZip
=
StringHelper
.
getFirst
(
this
.
videoBitRateZip
,
0.25f
);
this
.
videoBitRateZip
=
StringHelper
.
getFirst
(
this
.
videoBitRateZip
,
0.1f
);
// 设置压缩大小
this
.
videoSizeZip
=
StringHelper
.
getFirst
(
this
.
videoSizeZip
,
0.1f
);
// 设置音频最小比特率
this
.
minAudioBitRate
=
StringHelper
.
getFirst
(
this
.
minAudioBitRate
,
48043
);
}
}
/**
* 设置宽高最小480 *360
*/
public
void
initZip480_360
()
{
// 设置最小宽度,指的是宽度和高度中的大值,宽度>高度
this
.
minVideoWidth
=
StringHelper
.
getFirst
(
this
.
minVideoWidth
,
480
);
// 设置最小高度,指的是宽度和高度中的小值,宽度>高度
this
.
minVideoHeight
=
StringHelper
.
getFirst
(
this
.
minVideoHeight
,
360
);
// 设置视频最小比特率
this
.
minVideoBitRate
=
StringHelper
.
getFirst
(
this
.
minAudioBitRate
,
295581
);
}
/**
* 设置宽高最小800*600
*/
public
void
initZip800_600
()
{
// 设置最小宽度,指的是宽度和高度中的大值,宽度>高度
this
.
minVideoWidth
=
StringHelper
.
getFirst
(
this
.
minVideoWidth
,
800
);
// 设置最小高度,指的是宽度和高度中的小值,宽度>高度
this
.
minVideoHeight
=
StringHelper
.
getFirst
(
this
.
minVideoHeight
,
600
);
}
/**
* 设置宽最小960,高度根据宽度自适应
*/
public
void
initZip960
()
{
// 设置最小宽度,指的是宽度和高度中的大值,宽度>高度
this
.
minVideoWidth
=
StringHelper
.
getFirst
(
this
.
minVideoWidth
,
960
);
// 设置视频最小比特率
this
.
minVideoBitRate
=
StringHelper
.
getFirst
(
this
.
minAudioBitRate
,
2955811
);
}
/**
* 设置宽高最小1920*1080
*/
public
void
initZip1920_1080
()
{
// 设置最小宽度,指的是宽度和高度中的大值,宽度>高度
this
.
minVideoWidth
=
StringHelper
.
getFirst
(
this
.
minVideoWidth
,
1920
);
// 设置最小高度,指的是宽度和高度中的小值,宽度>高度
this
.
minVideoHeight
=
StringHelper
.
getFirst
(
this
.
minVideoHeight
,
1080
);
// 设置视频最小比特率
this
.
minVideoBitRate
=
StringHelper
.
getFirst
(
this
.
minAudioBitRate
,
8311136
);
}
/**
* 抓码为mp4
*/
public
void
initMp4
()
{
public
void
initMp4
()
{
this
.
audioCodec
=
SOUND_CODEC_MP3
;
this
.
audioCodec
=
SOUND_CODEC_MP3
;
this
.
videoCodeC
=
VIDEO_CODEC_MP4
;
this
.
videoCodeC
=
VIDEO_CODEC_MP4
;
...
@@ -288,6 +375,18 @@ public class MediaParameter extends BaseVo {
...
@@ -288,6 +375,18 @@ public class MediaParameter extends BaseVo {
this
.
videoPixelFormat
=
VIDEO_FIXED_MP4
;
this
.
videoPixelFormat
=
VIDEO_FIXED_MP4
;
}
}
/**
* 压缩mp4
*/
public
void
initZipMp4
()
{
// 设置结果为mp4
this
.
initMp4
();
// 设置最小宽高
this
.
initZip960
();
// 设置最小压缩比特率
this
.
initZipBitrate
();
}
public
int
getAudioCodec
()
{
public
int
getAudioCodec
()
{
return
audioCodec
;
return
audioCodec
;
}
}
...
...
yzg-util-image/src/test/java/helper/TestMediaHelper.java
View file @
7715ebec
...
@@ -48,6 +48,14 @@ public class TestMediaHelper {
...
@@ -48,6 +48,14 @@ public class TestMediaHelper {
testConvert
(
fileName
,
0.25f
,
0.10f
);
testConvert
(
fileName
,
0.25f
,
0.10f
);
}
}
@Test
public
void
testMinZipSingle
()
throws
IOException
{
String
fileName
=
"100M.mp4"
;
// String fileName = "z001594372388232a3017ad69c82a342.MOV";
testConvert
(
fileName
,
0.01f
,
0.01f
);
}
@Test
@Test
public
void
testConvertSingle_Two
()
throws
IOException
{
public
void
testConvertSingle_Two
()
throws
IOException
{
String
fileName
=
"100M.mp4.size_50.quot_50.mp4"
;
String
fileName
=
"100M.mp4.size_50.quot_50.mp4"
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment