现在在做一个在线观看视频的系统,需要把上传的视频用转成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相关推荐

  1. Java视频格式转换---avi转MP4(h264编码格式)

    Java视频格式转换---avi转MP4(h264编码格式的MP4视频在网页播放兼容性更好--试过其它的编码格式,没找到能在网页上直接播放的) 资源借鉴处 需要添加到pom.xml的包 java代码 ...

  2. 格式工厂视频格式转换,如MP4转WMV

    PPT中只能插入WMV格式的视频,但已有的视频格式是MP4.可以通过格式工厂免费进行转换.格式工厂提供了多种格式转换. 点击->AVI FLV MOV...,添加MP4文件,可以添加多个,然后点 ...

  3. 视频格式转换(flv→mp4)

    在html中,不支持flv格式需要转换为mp4:(此方法本人比较喜欢) 一:先找到缓存文件,这个文件一般是一个隐藏文件(点击"查看",把隐藏文件显示出来) 二:把其中TDL文件复制 ...

  4. java 错误日期转正确日期_Java日期格式转换-错误的月份

    我在用Java转换日期时遇到问题,不知道我要去哪里错了... String dateStr = "2011-12-15"; String fromFormat = "yy ...

  5. c#视频格式转换(.mov=>.mp4)

    #region 视频格式转换(.mov=>.mp4)/// <summary>/// 视频格式转换 (.mov=>.mp4)/// </summary>/// &l ...

  6. 万能视频格式转换器是一款功能强大的全能视频格式转换软件,支持多种视频格式转换。万能视频转换器可以将R...

    万能视频格式转换器是一款功能强大的全能视频格式转换软件,支持多种视频格式转换.万能视频转换器可以将RM.RMVB.AVI.WMV.MPG .MPEG.FLV.3GP.MP4.SWF.ASF.DIVX. ...

  7. Java源码 JavaWeb开发框架 代码 SSH SSM OA ERP CRM Java项目[Java通用框架源码及开发视频教程]

    Java源码 JavaWeb开发框架 代码 SSH SSM OA ERP CRM Java项目 功能简介: A.代码生成器(开发利器) 生成Java各层次的类和JSP等文件,提高开发效率 B.阿里巴巴 ...

  8. Java中码点和代码单元

    Java中码点和代码单元 前言 码点和代码单元这两个概念还是在<Java核心技术 卷一>发现的,这也是我看过这本书里面前五章中比较有用的一个知识点(PS:毕竟Java开发都一年了,基础应用 ...

  9. 使用FFmepg进行视频转码、视频格式转换、图片提取等!

    一.什么是FFmpeg? FFmpeg是一套可以用来记录.转换数字音频.视频,并能将其转化为流的开源计算机程序.采用LGPL或GPL许可证.它提供了录制.转换以及流化音视频的完整解决方案.它包含了非常 ...

  10. 【JAVA】JAVA使用ffmpeg进行视频格式转换以及截图

    JAVA 处理视频文件,需要用到 ffmpeg  这个工具.不需要依赖jar包.无论是在windows服务器还是linux服务器,想要使用 ffmpeg 都需要先安装. 附上Linux下  *.tar ...

最新文章

  1. 简历英文 计算机水平,计算机英文 简历
  2. MyBatisPlus中通用CRUD的updateById方法
  3. C和指针之字符串memcpy、memmove、memset使用总结
  4. 前后台相互传值的方法概述
  5. 使用 Fiddler 调试 心知天气,stm32 esp8266获取天气api
  6. 一包辣条如何逆袭,从屌丝品牌成为有逼格的产品?
  7. python可以这样学读书笔记_简明python教程的读书笔记
  8. RFID入门:Mifare1智能洗澡卡破解分析
  9. 基因数据处理1之mapping_to_cram
  10. tc ebpf sample - tethering offload on linux pc
  11. Adobe ——pdf文档加密且不可编辑
  12. Verilog编程规范——reset
  13. 前端常用js方法工具封装
  14. 阻塞双端消息队列 BlockingDeque(先进先出的原则管理)
  15. python-基于yagmail库开发自动邮件发送程序
  16. Linux磁盘分区以及多重引导简述
  17. 段码液晶屏笔段电压范围_LCD段码(笔段)液晶显示屏和点阵液晶显示屏
  18. Android ImgaView背景图片不失真处理
  19. Python爬虫爬取单张图片
  20. 哪些靠谱的方法能在十年内赚 3000 万?

热门文章

  1. leetcode复原IP地址
  2. 解除windows10多账户远程桌面连接限制
  3. oracle通过日期函数求年龄的大小
  4. 噪音分贝测试软件在线,分贝测试(在线分贝测试仪)
  5. 华大MCU(四):HC32F460串口IAP升级app部分
  6. 手机号码校验(手机号---座机号)
  7. bootice添加黑苹果引导_联想小新13Pro黑苹果系统bigsur教程(OC引导)
  8. java itex 打印pdf_【收藏】java使用ITEXT打印PDF
  9. 解决office桌面空白图标和右键无法新建的问题
  10. ZEMAX知识点:坐标间断面(coordinate break)