java转码mp4的代码_JAVA视频格式转换 avi转mp4
现在在做一个在线观看视频的系统,需要把上传的视频用转成MP4格式的,用ffmepg好像不能成功转
望高手指点
package com.lichen.test;
import java.io.File;
import java.util.List;
public class ConvertVideo {
private final static String PATH = "d:\test\a.mpg";
public static void main(String[] args) {
if (!checkfile(PATH)) {
System.out.println(PATH + " is not file");
return;
}
if (process()) {
System.out.println("ok");
}
}
private static boolean process() {
int type = checkContentType();
boolean status = false;
if (type == 0) {
// status = processFLV(PATH);// 直接将文件转为flv文件
status=processImg();
processFLV(PATH);
} else if (type == 1) {
String avifilepath = processAVI(type);
if (avifilepath == null)
return false;// avi文件没有得到
status = processFLV(avifilepath);// 将avi转为flv
}
return status;
}
private static int checkContentType() {
String type = PATH.substring(PATH.lastIndexOf(".") + 1, PATH.length())
.toLowerCase();
// ffmpeg能解析的格式:(asx,asf,mpg,wmv,3gp,mp4,mov,avi,flv等)
if (type.equals("avi")) {
return 0;
} else if (type.equals("mpg")) {
return 0;
} else if (type.equals("wmv")) {
return 0;
} else if (type.equals("3gp")) {
return 0;
} else if (type.equals("mov")) {
return 0;
} else if (type.equals("mp4")) {
return 0;
} else if (type.equals("asf")) {
return 0;
} else if (type.equals("asx")) {
return 0;
} else if (type.equals("flv")) {
return 0;
}
// 对ffmpeg无法解析的文件格式(wmv9,rm,rmvb等),
// 可以先用别的工具(mencoder)转换为avi(ffmpeg能解析的)格式.
else if (type.equals("wmv9")) {
return 1;
} else if (type.equals("rm")) {
return 1;
} else if (type.equals("rmvb")) {
return 1;
}
return 9;
}
private static boolean checkfile(String path) {
File file = new File(path);
if (!file.isFile()) {
return false;
}
return true;
}
// 对ffmpeg无法解析的文件格式(wmv9,rm,rmvb等), 可以先用别的工具(mencoder)转换为avi(ffmpeg能解析的)格式.
private static String processAVI(int type) {
List commend = new java.util.ArrayList();
// commend.add("e:\mencoder"); // D:flvMediaCodercodecs
commend.add("d:\flv\MediaCoder\codecs");
commend.add(PATH);
commend.add("-oac");
commend.add("lavc");
commend.add("-lavcopts");
commend.add("acodec=mp3:abitrate=64");
commend.add("-ovc");
commend.add("xvid");
commend.add("-xvidencopts");
commend.add("bitrate=600");
commend.add("-of");
commend.add("avi");
commend.add("-o");
commend.add("d:\test\a.avi");
try {
ProcessBuilder builder = new ProcessBuilder();
builder.command(commend);
builder.start();
return "c:\home\a.avi";
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
// ffmpeg能解析的格式:(asx,asf,mpg,wmv,3gp,mp4,mov,avi,flv等)
private static boolean processFLV(String oldfilepath) {
if (!checkfile(PATH)) {
System.out.println(oldfilepath + " is not file");
return false;
}
List commend = new java.util.ArrayList();
commend.add("d:\flv\MediaCoder\codecs\ffmpeg.exe");
commend.add("-i");
commend.add(oldfilepath);
commend.add("-ab");
commend.add("64");
// commend.add(" -acodec ");
// commend.add("codec");
commend.add("-ac");
commend.add("2");
commend.add("-ar");
commend.add("22050");
commend.add("-b");
commend.add("230");
// commend.add("-s");
// commend.add("350x240");
commend.add("-r");
commend.add("29.97");
commend.add("-y");
commend.add("d:\test\b.flv");
System.out.println(commend);
try {
ProcessBuilder builder = new ProcessBuilder();
builder.command(commend);
builder.start();
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
// 生成图片 参数String newfilename, String newimg
public static boolean processImg() {
// System.out.println(newfilename + "->" + newimg);
List commend = new java.util.ArrayList();
commend.add("d:\flv\MediaCoder\codecs\ffmpeg.exe");
commend.add("-i");
commend.add("d:\test\a.mpg");
commend.add("-y");
commend.add("-f");
commend.add("image2");
commend.add("-ss");
commend.add("38");
commend.add("-t");
commend.add("0.001");
commend.add("-s");
commend.add("320x240");
commend.add("-f");
commend.add("mp4"); commend.add("d:\test\b.jpg");
try {
ProcessBuilder builder = new ProcessBuilder();
builder.command(commend);
builder.start();
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
}
java转码mp4的代码_JAVA视频格式转换 avi转mp4相关推荐
- Java视频格式转换---avi转MP4(h264编码格式)
Java视频格式转换---avi转MP4(h264编码格式的MP4视频在网页播放兼容性更好--试过其它的编码格式,没找到能在网页上直接播放的) 资源借鉴处 需要添加到pom.xml的包 java代码 ...
- 格式工厂视频格式转换,如MP4转WMV
PPT中只能插入WMV格式的视频,但已有的视频格式是MP4.可以通过格式工厂免费进行转换.格式工厂提供了多种格式转换. 点击->AVI FLV MOV...,添加MP4文件,可以添加多个,然后点 ...
- 视频格式转换(flv→mp4)
在html中,不支持flv格式需要转换为mp4:(此方法本人比较喜欢) 一:先找到缓存文件,这个文件一般是一个隐藏文件(点击"查看",把隐藏文件显示出来) 二:把其中TDL文件复制 ...
- java 错误日期转正确日期_Java日期格式转换-错误的月份
我在用Java转换日期时遇到问题,不知道我要去哪里错了... String dateStr = "2011-12-15"; String fromFormat = "yy ...
- c#视频格式转换(.mov=>.mp4)
#region 视频格式转换(.mov=>.mp4)/// <summary>/// 视频格式转换 (.mov=>.mp4)/// </summary>/// &l ...
- 万能视频格式转换器是一款功能强大的全能视频格式转换软件,支持多种视频格式转换。万能视频转换器可以将R...
万能视频格式转换器是一款功能强大的全能视频格式转换软件,支持多种视频格式转换.万能视频转换器可以将RM.RMVB.AVI.WMV.MPG .MPEG.FLV.3GP.MP4.SWF.ASF.DIVX. ...
- Java源码 JavaWeb开发框架 代码 SSH SSM OA ERP CRM Java项目[Java通用框架源码及开发视频教程]
Java源码 JavaWeb开发框架 代码 SSH SSM OA ERP CRM Java项目 功能简介: A.代码生成器(开发利器) 生成Java各层次的类和JSP等文件,提高开发效率 B.阿里巴巴 ...
- Java中码点和代码单元
Java中码点和代码单元 前言 码点和代码单元这两个概念还是在<Java核心技术 卷一>发现的,这也是我看过这本书里面前五章中比较有用的一个知识点(PS:毕竟Java开发都一年了,基础应用 ...
- 使用FFmepg进行视频转码、视频格式转换、图片提取等!
一.什么是FFmpeg? FFmpeg是一套可以用来记录.转换数字音频.视频,并能将其转化为流的开源计算机程序.采用LGPL或GPL许可证.它提供了录制.转换以及流化音视频的完整解决方案.它包含了非常 ...
- 【JAVA】JAVA使用ffmpeg进行视频格式转换以及截图
JAVA 处理视频文件,需要用到 ffmpeg 这个工具.不需要依赖jar包.无论是在windows服务器还是linux服务器,想要使用 ffmpeg 都需要先安装. 附上Linux下 *.tar ...
最新文章
- 简历英文 计算机水平,计算机英文 简历
- MyBatisPlus中通用CRUD的updateById方法
- C和指针之字符串memcpy、memmove、memset使用总结
- 前后台相互传值的方法概述
- 使用 Fiddler 调试 心知天气,stm32 esp8266获取天气api
- 一包辣条如何逆袭,从屌丝品牌成为有逼格的产品?
- python可以这样学读书笔记_简明python教程的读书笔记
- RFID入门:Mifare1智能洗澡卡破解分析
- 基因数据处理1之mapping_to_cram
- tc ebpf sample - tethering offload on linux pc
- Adobe ——pdf文档加密且不可编辑
- Verilog编程规范——reset
- 前端常用js方法工具封装
- 阻塞双端消息队列 BlockingDeque(先进先出的原则管理)
- python-基于yagmail库开发自动邮件发送程序
- Linux磁盘分区以及多重引导简述
- 段码液晶屏笔段电压范围_LCD段码(笔段)液晶显示屏和点阵液晶显示屏
- Android ImgaView背景图片不失真处理
- Python爬虫爬取单张图片
- 哪些靠谱的方法能在十年内赚 3000 万?
热门文章
- leetcode复原IP地址
- 解除windows10多账户远程桌面连接限制
- oracle通过日期函数求年龄的大小
- 噪音分贝测试软件在线,分贝测试(在线分贝测试仪)
- 华大MCU(四):HC32F460串口IAP升级app部分
- 手机号码校验(手机号---座机号)
- bootice添加黑苹果引导_联想小新13Pro黑苹果系统bigsur教程(OC引导)
- java itex 打印pdf_【收藏】java使用ITEXT打印PDF
- 解决office桌面空白图标和右键无法新建的问题
- ZEMAX知识点:坐标间断面(coordinate break)