2021SC@SDUSC-multimedia-utils-一款java后端的图片、视频处理工具jar包-功能介绍4

宋望
2023-12-01

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档



前言

上篇博客我们介绍了视频工具FFmpegUtils,并且给出了详细的代码注释。下面我们将分析其他代码部分,首先来看的就是Java对音视频进行转码和处理部分。


.CompressionAttributes

这部分就是前期处理。简单的设置音视频压缩参数以及得到压缩完成后的回调地址。下面我们用表格举例。

演示表格

参数类型必需注释
videoAttributesVideoAttributes视频压缩参数
audioAttributesAudioAttributes音频压缩参数
progressUrlString压缩完成后的回调地址

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 +
                ']';
    }
}

VideoAttributes

首先就是获取视频编码。再做接下来的处理。比如设置压缩后最大帧率 (未设置则保持同原视频一致),压缩后最大比特率。可以设置输出视频分辨率 (未设置则保持同原视频一致)。还可以设置压缩视频最大时长 (未设置则保持同原视频一致)。我们用下面的表格举例。


演示表格

参数类型必需注释
codecVideoCodec视频编码(默认libx264,libx265)
maxFpsInteger最大帧率
videoSizeVideoSize视频分辨率(hd480,hd720,hd1080,800x800)
maxDurationInteger最大时长
maxBitRateInteger视频最大比特率

代码如下(示例)


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提供了大量能使我们快速便捷地处理数据的函数和方法。

 类似资料: