`
liyixing1
  • 浏览: 938628 次
  • 性别: Icon_minigender_1
  • 来自: 江西上饶
社区版块
存档分类
最新评论

视频编码转化

阅读更多
JAVA目前的转化库没发现过,网上提供的方案是通过java作为外壳,调用底层的转化程序。

由于每个转化程序,实现的支持的转化编码不一样,因此需要多个配合使用

FFmpeg在Linux平台下开发,但它同样也可以在其它操作系统环境中编译运行,包括Windows、Mac OS X等。这个项目最早由Fabrice Bellard发起,现在由Michael Niedermayer维护。许多FFmpeg的开发人员都来自MPlayer项目,而且当前FFmpeg也是放在MPlayer项目组的服务器上。项目的名称来自MPEG视频编码标准,前面的"FF"代表"Fast Forward"。

支持采集摄像头或者其他视频来源

视频格式转换功能

视频截图功能

给视频加水印功能
使用ffmpeg 视频添加水印(logo)。



mencoder 是一款命令行方式的视频处理软件,是Mplayer自带的编码工具(Mplayer是Linux下的播放器,开源,支持几乎所有视频格式的播放,有windows和Mac版本)。

ffmpeg不支持rm,rmvb, wmv9转化成flv。先用mencoder将这三种格式的视频转成avi,再将avi转成flv。当然,这样加重系统的负担,mencoder转rm,rmvb视频的速度远低于ffmpeg。另一种做法是先生成flv,再直接利用flv生成缩略图,可以减少系统开销,这种方式看起来更合理。


Vcdgear:DAT是VCD中的格式,利用上面两种工具也无法直接转换,必须先用vcdgear转换成avi,再通过avi转成flv。转avi的过程是很迅速的,比其他转换过的快好几个数量级。


Flvmdi:如果直接利用mencoder转换成flv,缺少meta信息,会造成播放时没有进度条等问题,需要再用flvmdi修复一下。

       JAVA调用:
       Java提供了两个类来允许调用外部程序:
       (1)、ProcessBuilder
       (2)、Runtime
   
       Java调用时是将外部程序作为进程来创建的,这里涉及到一个进程阻塞的问题:只有当父进程结束的时候才会调用转换进程,也不能采用多线程来控制。经过细心百度,发现以往也有人遇到过而且解决了。现把方法列出来:
       可以考虑使用两个线程来同时清空process获取的两个输入流,如下这段程序:

……
Process process = Runtime.getRuntime.exec(command); // 调用外部程序
final InputStream is1 = process.getInputStream();
new Thread(new Runnable() {
    public void run() {
        BufferedReader br = new Buffered(new InputStreamReader(is));
        while(br.readLine() != null) ;
    }
}.start(); // 启动单独的线程来清空process.getInputStream()的缓冲区
InputStream is2 = process.getErrorStream();
BufferedReader br2 = new Buffered(new InputStreamReader(is2));
StringBuilder buf = new StringBuilder(); // 保存输出结果流
String line = null;
while((line = br.readLine()) != null) buf.append(line); // 循环等待ffmpeg进程结束
System.out.println("输出结果为:" + buf)

      
       
         在线转换思路:
1、用户上传各种格式的视频,记录下视频存储路径,将转换状态置为0,即未转换。当然大文件上传采用ActiveX,你会用VB写吧?
2、服务器端开启转换进程查询未转换视频。这里有两种方式,一种是采用单线程,即每次从数据库中取一条没有转换的视频信息。方式为:while(){select top 1}。 这种方式转换效率上不是很高,可以采用多线程方式,一般设置一个线程队列,五个或者十个这个样子。不过转视频是很费CPU的事,所以最好不要设得太多,免得搞死机了。
3、转换时的存储问题。转换后的文件名、缩略图名,存储位置这些都应该规定起来,一般情况下视频文件都很多很大,所以存储基本上都要搞阵列。
4、转换时的参数,如工具路径、缩略图大小、视频清晰度、分辨率等可以用一个配置文件来配置,这样做比较录活。


可能有的读者会比较纳闷,为什么你老在说转成FLV,为什么不转成其他格式呢?这主要是我们现在流媒体服务器RED5支持FLV,而且感觉听起来也比较新奇。当然上面的工具的功能远不止于此,由于水平和需要所限,我们只初步研究了转FLV。
本文有很多不足之处,来源于自身知识的浅薄,请大家指出并探讨。
分享到:
评论

相关推荐

    .net 视频编码转换.docx

    我在网上找的视频转换的代码,草草的看了一遍还没来得及试验先分享吧,要是用不上大家别骂我啊反正要不了大家很多分,全当学个思路也值得的

    TMPGEncVideoMasteringWorks5.1.0.46视频编码转换工具中文汉化

    TMPGEnc 是日本人堀浩行开发的一套老牌的高画质视频编码转换工具软件,在 Canopus ProCoder v2.0 Final 推出以前,一直是视频转换领域的画质冠军,支持 VCD、SVCD、DVD 以及所有主流媒体格式 (Windows Media、Real ...

    视频编码转换工具软件TMPGEncXpress绿色特别版V4.7.3.292

    TMPGEnc 是日本人堀浩行开发的一套老牌的高画质视频编码转换工具软件,根据我的使用情况,比 Canopus ProCoder v2.0 Final 转换画质要高,速度要快,支持剪辑。应该是视频转换领域的画质冠军,支持 VCD、SVCD、DVD ...

    万能视频格式转换器

    万能视频格式转换器.转换各种格式。万能视频格式转换器

    论文研究 - 基于JND模型的感知视频编码

    鉴于当前的高效视频编码标准并未考虑人类视觉的特性,本文提出了一种基于恰到好处的失真模型(JND)的感知视频编码算法。 调整后的JND模型在高效视频编码(HEVC)中被组合到变换量化过程中,以消除更多的视觉冗余并...

    手机视频转换工具Easy RealMedia Producer 1.94

    Easy RealMedia Producer 是一款强大 Rmvb、Rm 编码转换软件,貌似是专为智能手机而设,支持 RealVideo 8/9/10 三种编码互换,而音频编码 、调整画面大小、画面质量、动态码率等设置都应有尽有。 采用全新的...

    音视频编码查看器

    一款很好的音频视频编码查看工具,有了它就方便手机MP3,MP4格式化转换。

    小日本视频转换器

    TMPGEnc 是日本人堀浩行开发的一套老牌的高画质视频编码转换工具软件,在 Canopus ProCoder v2.0 Final 推出以前,一直是视频转换领域的画质冠军,支持 VCD、SVCD、DVD 以及所有主流媒体格式 (Windows Media、Real ...

    视频上传并转换编码成flv格式

    视频上传并转换编码成flv格式 流媒体 视频上传 asp 编码转换

    视频编码、视频转换软件

    视频编码、转换格式用于视频转换avi格式转换为mp4格式等。

    无需重新编码批量无损旋转视频横版视频16:9秒变竖版9:16视频旋转工具.rar

    视频批量旋转无需编码转换软件,速度非常快几秒钟搞定,我们都知道视频旋转需要剪辑软件或者格式转换软件,但是处理起来非常麻烦需要逐个调参数,转换软件也需要重新渲染编码转换速度惨不忍睹,有没有直接旋转视频...

    Compressor 优秀的视频编码和格式转换工具

    • 使用 Panasonic、Sony、Canon、Blackmagic、Nikon 和 ARRI 的内建摄像机 LUT 或添加自定摄像机 LUT 来将 Log 编码视频转换为 SDR 和 HDR 色彩空间 • 将 ProRes Raw 和 ProRes Raw HQ 媒体转换为其他专业文件...

    视频编码解码

    一、视频的定义 二、视频的基本概念 三、视频格式 四、视频编码与解码 五、格式转换 六、格式转换工具

    价值七万元的视频转换软件:Canopus ProCoder 2.04.02修正汉化版

    Canopus ProCoder v2.0 Final 是 Canopus (康能普视) 公司出品的 ProCoder 专业视频编码转换软件。它可以在几乎所有主流应用的媒体格式之间进行转换,而且支持批处理、滤镜等高级功能。其画面细节是所有软件中最好的...

    h264编码转换工具

    h264编码转换工具 Silverlight中制作视频演示时要求视频文件编码默认支持H264 所以非H264的视频文件有可能无法播放,使用此工具转换一下转换成mp4文件

    ffmpeg视频转换

    用Dos和ffmpeg进行视频编码转换

    ShanaEncoder v5.3.0.1 全能视频无损压缩转换器软件.rar

    ShanaEncoder ,视频编码转换器,视频无损压缩器,ShanaEncoder中文汉化版,视频无损压缩器最新中文汉化版本 好吧既然这个视频无损压缩器 ShanaEncoder 介绍那样的神奇,那大飞哥找个视频试试看看能不能压缩,压缩...

    闪电iPhone视频转换器 v11.8.0.zip

    本iPhone视频转换器采用先进的视频编码解码技术,所以转换视频速度极快,转换视频质量极高。 可以帮您把电脑上的音视频都转到iPhone手机上,随时随地看电影听音乐。本iPhone视频转换器设有专门的分类功能:有标准...

Global site tag (gtag.js) - Google Analytics