`
lichen0921
  • 浏览: 81183 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

各种视频格式转换成.flv格式(flv格式转换)

阅读更多

 

 

flv格式转换--第一步
不定期更新...
首先要安装MediaCoder
安装目录假设为D:\flv\MediaCoder
在D:\flv\MediaCoder\codecs目录下有一些要用到的,如ffmpeg.exe , mencoder.exe还有一些dll
ConvertVideo.java
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<String> commend = new java.util.ArrayList<String>();
//     commend.add("e:\\mencoder");         //     D:\flv\MediaCoder\codecs
     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<String> commend = new java.util.ArrayList<String>();
     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<String> commend = new java.util.ArrayList<String>();
     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("d:\\test\\b.jpg");
    try {
       ProcessBuilder builder = new ProcessBuilder();
       builder.command(commend);
       builder.start();
      return true;
     } catch (Exception e) {
       e.printStackTrace();
      return false;
     }
   }

    
}
会在指定目录下D:\test生成b.flv和b.jpg这两个文件.
分享到:
评论
5 楼 lyh20081984 2010-01-24  
慢...而且不知道什么时候能转换完,我本想在转换完之后就删除原文件,可是无从下手
4 楼 kksss118 2010-01-07  
桦树雨夏 写道
我最近在学这个视频格式转换,我看了下你的这些代码,
我测试了下,虽然能够转换成功,可是转换的效率非常低,
我将一个22mb的avi格式的视频 转换成一个flv的格式的视频大小变成200多mb,
这个转换时间也比较慢10分钟。

我个人认为你如果能够显示转换的进度,那样的给人的感觉会好很多!


虽然没有测试过,但以前做过一些转换。
如果22M转成200M的话应该是转换时参数设置问题,建议网上查找ffmpeg参数设置,资料还是满多的。
3 楼 桦树雨夏 2010-01-07  
我最近在学这个视频格式转换,我看了下你的这些代码,
我测试了下,虽然能够转换成功,可是转换的效率非常低,
我将一个22mb的avi格式的视频 转换成一个flv的格式的视频大小变成200多mb,
这个转换时间也比较慢10分钟。

我个人认为你如果能够显示转换的进度,那样的给人的感觉会好很多!
2 楼 night_stalker 2009-06-17  
这一大坨的 if else …… 用正则表达式多好 ……

另外这种小工具用脚本语言写会爽得多 ……
1 楼 taupo 2009-06-17  
晕,调用外部程序来完成啊?

相关推荐

    asp.net中将各种视频文件转换成.flv格式

    在ASP.NET环境中,将各种视频文件转换为FLV格式是一项常见的需求,特别是在处理在线视频流或构建媒体库时。此过程涉及多个步骤和技术组件,包括使用特定的编码工具(如FFmpeg和Mencoder)、配置应用设置、以及实现...

    Asp.net 上传视频时将视频格式转换成.flv格式的domo!

    要转换视频格式,我们需要理解不同的编码标准,比如H.264、MPEG-4等。转换过程涉及解码原始视频,然后用新的编码重新打包。这通常需要用到第三方库,比如FFmpeg。 4. **FFmpeg**: FFmpeg是一个开源的跨平台...

    在asp.net中做视频转换,将各种视频文件转换成.flv格式

    2. **第三方库或API**:ASP.NET本身并不直接支持视频处理,因此通常需要借助第三方库,如FFmpeg,这是一个开源的多媒体处理工具,能够进行视频格式转换、裁剪、合并等操作。可以通过命令行接口或者封装的.NET库(如...

    Asp.net上传视频时将视频格式转换成.flv格式(我只试过AVI)

    下面是一个简单的示例,展示如何使用C#代码调用FFmpeg进行视频格式转换: ```csharp using System.Diagnostics; public void ConvertVideoToFlv(string sourceFilePath, string targetFilePath) { ...

    超级好用的安卓版视频格式转换工具.rar

    "超级好用的安卓版视频格式转换工具"正是一款针对这一需求而设计的应用,它能帮助用户轻松地将各种视频格式转换为他们所需的格式。 首先,我们要理解视频格式转换的基本原理。视频文件包含图像帧和音频流,不同的...

    如何快速不借用转换工具将FLV格式视频转换成MP4

    在当前数字化时代,视频格式转换是一项常见的需求,特别是在处理不同设备兼容性问题时。本文将详细介绍一种无需使用第三方转换软件,仅通过Windows系统自带的命令行工具实现FLV格式视频到MP4格式的转换方法。 #### ...

    视频格式转换工具.rar

    在IT领域,视频格式转换是一项常见的任务,尤其在多媒体处理和跨平台播放中扮演着重要角色。"视频格式转换工具.rar"很可能是一个包含了用于转换不同视频格式的应用程序的压缩文件。这种工具通常允许用户将视频从一种...

    *.xv转换成*.flv工具

    在IT行业中,视频格式转换是一项常见的任务,尤其在不同设备、平台或网络分享时,不同的视频格式可能具有不同的兼容性和效率。本工具专注于将“*.xv”格式的视频文件转换为“*.flv”,这两种格式都有其独特的特性和...

    视频格式转换flv

    标题"视频格式转换flv"指出,我们关注的核心是将不同格式的视频转化为FLV(Flash Video)格式。FLV是Adobe Systems开发的一种流媒体格式,广泛应用于在线视频共享平台,如YouTube早期就大量使用。这种格式具有小巧、...

    asp.net 视频格式转换成flv格式

    总之,ASP.NET结合mencoder或ffmpeg可以实现视频格式转换服务,将用户上传的各种视频格式转换为适合在网络流式传输的FLV格式。这个过程涉及到文件上传、服务器端处理、文件存储、错误处理和视频播放等多个环节,体现...

    视频格式转换教程.pdf

    视频格式转换是数字媒体处理中常见的一项任务,它涉及到将一种视频编码或容器格式转换为另一种,以便在不同设备上播放、存储或者优化文件大小。本教程主要介绍如何使用格式工厂这一工具进行视频格式转换。 格式工厂...

    C#实现将视频格式转换为FLV,进而实现在线预览

    本项目涉及的关键知识点是使用C#实现视频格式转换为FLV(Flash Video),以便于在线预览。FLV是一种流行的网络流媒体格式,由于其体积小、加载快的特性,常用于网页中的视频播放。 1. **C#基础**: C#是一种面向...

    java把各种视频格式转化为flv

    在本场景中,我们关注的是如何使用Java将各种视频格式转换为FLV(Flash Video)格式。FLV是Adobe Flash Player支持的一种流式视频格式,常见于在线视频分享平台。 要实现这个功能,我们通常会借助于外部工具或库,...

    万兴全能格式转换器12.0一款非常好用的视频格式转换软件.rar

    万兴全能格式转换器是一款备受用户好评的视频处理工具,主要功能在于帮助用户方便快捷地进行各种视频格式的转换。其最新版本12.0在原有基础上进行了诸多优化和升级,提升了用户体验。以下是对该软件及其特点的详细...

    视频Flv格式的在线转换源码.rar

    标题提到的“视频Flv格式的在线转换源码.rar”是一个用于将不同视频格式转换为FLV格式的.NET源码项目,它能够帮助开发者构建自己的在线视频转换平台。 源码支持的视频格式包括ASF、FLV、AVI、MPG、3GP、MOV、WMV、...

    万能版FLV格式转换器(转换成FLV格式)

    这款名为“万能版FLV格式转换器”的工具,正如其名,能够将几乎所有的视频格式转换为FLV格式,为用户提供了极大的便利。本文将深入探讨该转换器的特点、功能以及FLV格式转换的相关技术。 首先,我们要理解FLV格式的...

    WinMPG视频格式转换大师

    把各种视频格式转换成SWF、FLV、GIF、MOV; 支持读取DVD光盘, 以及合并视频文件转到任意格式; 从各种视频中抽取各种音频(mp3/wav/wma/ac3/ogg/mmf/aac等);及音频间互相转换; 支持批量转换任务;

    狸窝全能视频转换器.rar

    1. 视频转换:狸窝全能视频转换器的核心功能之一就是其强大的视频格式转换能力。用户可以将高分辨率的视频文件转换为适合移动设备播放的小尺寸格式,或者将网络上下载的特殊格式转换为通用格式,如将M2TS转为MP4,...

    网络FLV格式转H.263格式的转换工具

    通过“MacroMedia FLV格式转换工具”,用户可以方便地将网络视频内容适应更广泛的设备和系统,提升视频的兼容性和可访问性。在选择转换工具时,应考虑其转换效率、输出质量以及是否能满足特定的定制需求。

    flv格式h265编码视频

    在实现H.265编码的FLV视频时,通常需要使用专门的编码工具或者转码软件,将原始视频转换为H.265编码,并封装成FLV格式。这个过程涉及到的关键步骤包括: 1. 视频分析:对源视频进行分析,确定其分辨率、帧率、色彩...

Global site tag (gtag.js) - Google Analytics