Java转换视频格式或者分辨率

更新时间:2023-06-02 12:41:25 阅读: 评论:0

Java转换视频格式或者分辨率
功能如题
前提:本⽂是在windows下测试可⽤,linux还未尝试
需提前准备好第三⽅软件ffmpeg,
  且被操作的视频必须为ffmpeg⽀持的视频格式(ffmpeg⽀持⼤部分主流格式)
可直接复制尝试使⽤,当然路径要改成⾃⼰的
(注释配合main⽅法⾥的调⽤,应该能看懂)
更多ffmpeg的命令(如:视频纵横⽐)参考、
视频分辨率:720p    1280×720
1080p    1920x1080
package com.founder.util.video;
import java.util.ArrayList;
import java.util.List;
public class TransferUtil {
public static void main(String[] args) throws FFmpegException {
boolean flag = transform("D:\\ffmpeg\\ffmpeg2016\\bin\\", "d:\\ys\\StoryBrooke.mp4", "d:\\ys\\480p.flv", "480x320");
System.out.println(flag);
盲人过桥
}
/**
* 视频转换
巨嘴鸟* @param ffmpegPath ffmpeg路径
* @param oldPath 原视频地址
* @param newPath 新视频存放地址(包含视频格式)
* @param resolution 分辨率
* @return
* @throws FFmpegException
*/
public static Boolean transform(String ffmpegPath, String oldPath, String newPath, String resolution) throws FFmpegException {
List<String> command = getFfmpegCommand(ffmpegPath, oldPath, newPath, resolution);
if (null != command && command.size() > 0) {
return process(command);
}
return fal;
}
private static boolean process(List<String> command) throws FFmpegException {
try {
lbjif (null == command || command.size() == 0)
return fal;
Process videoProcess = new ProcessBuilder(command).redirectErrorStream(true).start();
int exitcode = videoProcess.waitFor();
if (exitcode == 1)
return fal;
return true;
} catch (Exception e) {
throw new FFmpegException("file transfer failed", e);
}
}
private static List<String> getFfmpegCommand(String ffmpegPath, String oldfilepath, String outputPath, String resolution) throws FFmpegException {        List<String> command = new ArrayList<String>();
排骨萝卜汤>玉米饼子的做法command.add(ffmpegPath); // 添加转换⼯具路径
command.add("-i"); // 添加参数"-i",该参数指定要转换的⽂件
command.add(oldfilepath); // 添加要转换格式的视频⽂件的路径
command.add("-qscale"); // 指定转换的质量
command.add("4");
/*command.add("-ab"); //设置⾳频码率
command.add("64");
command.add("-ac"); //设置声道数
command.add("2");
Tiptip
command.add("-ar"); //设置声⾳的采样频率
command.add("22050");*/
command.add("-r"); // 设置帧速率
command.add("24");
command.add("-s"); // 设置分辨率
command.add(resolution);
command.add("-y"); // 添加参数"-y",该参数指定将覆盖已存在的⽂件        command.add(outputPath);
return command;
}
}
class FFmpegException extends Exception {
private static final long rialVersionUID = 1L;
public FFmpegException() {
super();
}
public FFmpegException(String message) {
super(message);
}
public FFmpegException(Throwable cau) {普通业务
super(cau);
}
可以用香皂洗脸吗
public FFmpegException(String message, Throwable cau) {
super(message, cau);
}
}

本文发布于:2023-06-02 12:41:25,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/833354.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:视频   转换   设置
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图