提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
上篇博客我们介绍了视频工具FFmpegUtils,并且给出了详细的代码注释。下面我们将分析其他代码部分,首先来看的就是Java对音视频进行转码和处理部分。
这部分就是前期处理。简单的设置音视频压缩参数以及得到压缩完成后的回调地址。下面我们用表格举例。
参数 | 类型 | 必需 | 注释 |
---|---|---|---|
videoAttributes | VideoAttributes | 否 | 视频压缩参数 |
audioAttributes | AudioAttributes | 否 | 音频压缩参数 |
progressUrl | String | 是 | 压缩完成后的回调地址 |
package com.whty.zdxt.multimedia.attribute;
public class CompressionAttributes {
/**
* 音频压缩参数
*/
private AudioAttributes audioAttributes;
/**
* 视频压缩参数
*/
private VideoAttributes videoAttributes;
/**
* 视频压缩完成后的回调地址
*/
private String progressUrl;
public CompressionAttributes() {
}
public CompressionAttributes(VideoAttributes videoAttributes, String progressUrl) {
this.videoAttributes = videoAttributes;
this.progressUrl = progressUrl;
}
public CompressionAttributes(AudioAttributes audioAttributes, String progressUrl) {
this.audioAttributes = audioAttributes;
this.progressUrl = progressUrl;
}
public CompressionAttributes(AudioAttributes audioAttributes, VideoAttributes videoAttributes, String progressUrl) {
this.audioAttributes = audioAttributes;
this.videoAttributes = videoAttributes;
this.progressUrl = progressUrl;
}
public AudioAttributes getAudioAttributes() {
return audioAttributes;
}
public void setAudioAttributes(AudioAttributes audioAttributes) {
this.audioAttributes = audioAttributes;
}
public VideoAttributes getVideoAttributes() {
return videoAttributes;
}
public void setVideoAttributes(VideoAttributes videoAttributes) {
this.videoAttributes = videoAttributes;
}
public String getProgressUrl() {
return progressUrl;
}
public void setProgressUrl(String progressUrl) {
this.progressUrl = progressUrl;
}
@Override
public String toString() {
return "CompressionAttributes [" +
"audioAttributes=" + audioAttributes +
", videoAttributes=" + videoAttributes +
", progressUrl=" + progressUrl +
']';
}
}
首先就是获取视频编码。再做接下来的处理。比如设置压缩后最大帧率 (未设置则保持同原视频一致),压缩后最大比特率。可以设置输出视频分辨率 (未设置则保持同原视频一致)。还可以设置压缩视频最大时长 (未设置则保持同原视频一致)。我们用下面的表格举例。
参数 | 类型 | 必需 | 注释 |
---|---|---|---|
codec | VideoCodec | 否 | 视频编码(默认libx264,libx265) |
maxFps | Integer | 否 | 最大帧率 |
videoSize | VideoSize | 否 | 视频分辨率(hd480,hd720,hd1080,800x800) |
maxDuration | Integer | 否 | 最大时长 |
maxBitRate | Integer | 否 | 视频最大比特率 |
代码如下(示例)
package com.whty.zdxt.multimedia.attribute;
import com.whty.zdxt.multimedia.enumeration.VideoCodec;
import com.whty.zdxt.multimedia.enumeration.VideoSize;
public class VideoAttributes {
/**
* 视频编码
*/
private VideoCodec codec;
/**
* 压缩后最大帧率 例:20
* 未设置则保持同原视频一致
*/
private Integer maxFps;
/**
* 压缩后最大比特率 例:128000
*/
private Integer maxBitRate;
/**
* 输出视频分辨率
* 未设置则保持同原视频一致
*/
private VideoSize videoSize;
/**
* 压缩视频最大时长
* 未设置则保持同原视频一致
*/
private Integer maxDuration;
public VideoCodec getCodec() {
return codec;
}
public void setCodec(VideoCodec codec) {
this.codec = codec;
}
public Integer getMaxFps() {
return maxFps;
}
public void setMaxFps(Integer maxFps) {
this.maxFps = maxFps;
}
public Integer getMaxBitRate() {
return maxBitRate;
}
public void setMaxBitRate(Integer maxBitRate) {
this.maxBitRate = maxBitRate;
}
public VideoSize getVideoSize() {
return videoSize;
}
public void setVideoSize(VideoSize videoSize) {
this.videoSize = videoSize;
}
public Integer getMaxDuration() {
return maxDuration;
}
public void setMaxDuration(Integer maxDuration) {
this.maxDuration = maxDuration;
}
@Override
public String toString() {
return "VideoAttributes [" +
"codec=" + codec +
", maxFps=" + maxFps +
", maxBitRate=" + maxBitRate +
", videoSize=" + videoSize +
", maxDuration=" + maxDuration +
']';
}
}
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。