宇凡's profileBreak the LoopPhotosBlogLists Tools Help

Blog


    May 22

    使用mencoder/ffmpeg处理Flash Video的几个常用命令

    将一下代码分别保存为flv_43.bat, flv_169.bat, screentshot.bat即可,当然,你得有最新版的mencoder/ffmpeg及相关视频码包。
     
    一、压缩4:3的视频
    mencoder.exe %1 -srate 22050 -oac mp3lame -lameopts br=32 -ovc lavc -lavcopts vcodec=flv:vbitrate=240 -lavfopts i_certify_that_my_video_stream_does_not_use_b_frames -ffourcc FLV1 -of lavf -vop scale=320:240 -o %2
     
    二、压缩16:9的视频,自动加上下黑框
    mencoder.exe %1 -srate 22050 -oac mp3lame -lameopts br=32 -ovc lavc -lavcopts vcodec=flv:vbitrate=240 -lavfopts i_certify_that_my_video_stream_does_not_use_b_frames -ffourcc FLV1 -of lavf -vf scale=320:180,expand=320:240 -o %2
     
    三、截图
    ffmpeg -i %1 -ss 3 -vframes 1 -r 1 -ac 1 -ab 2 -f image2 %2
    March 15

    搞出了FMS源-边缘服务器架构及分布式多路编码服务器

    终于和同事一起搭起一套源边缘FMS2服务器,原来只需要在需要做边缘服务器的机器上配置vhosts.xml文件里的proxy节点和RouteTable节点。说实话,MM公司的文档可真不咋地,几十万的产品的文档写的还不如一些opensource项目。
    另外利用java+spring+rmi搭建了一个分布式的多路并发编码服务器,可以将队列中的待转换视频负载均衡的分发到不同的编码服务器上,然后编码服务器会启动一个进程进行将视频文件转换成flv文件,同时发布到fms服务器并且截图。设计这东西的时候发现spring真是强大,简单改改配置文件,我就可以在一台服务器上根据cpu的能力运行不定数量的编码服务器,如单CPU我就运行一个,多CPU我就运行多个,而程序里的代码几乎不用更改,真不错!
    最近几天相比以往虽然忙了点,还是很有成就感的,又学了很多新东西,不错不错!
    March 11

    FLV是个不错的流媒体方案

    昨天将几段Video用MEncoder转换成FLV格式,并且发布到了测试FMS服务器上。 经过简单测试,发现带宽占用、CPU占用都在能够接受的范围内,240Kbps的视频流和64Kbps的音频流整体每个connection占用的带宽在200Kb左右,CPU基本是无负荷的,内存占用也不大。
    FMS2+FLV确实是个不错的流媒体方案,只是目前由于Adobe刚刚收购Macromedia,价格体系、代理体系十分混乱,连他们自己的代理商都不知道这东西有几种license模式,该怎么报价-_-!!
    不过总的来说这东西是不便宜的,有兴趣的朋友可以研究下opensource的替代品,red5。
    我认为red5至少能替代professional版的FMS2, 当然这是我估计的,并没有严谨的测试过。
    我觉得red5令人遗憾的是没有内置的负载均衡和集群方案,类似FMS2那样的源+边缘服务器模式还是很诱人的。
    不过,red5是开源的,而且还是用java/spring/mina开发,我想要是有人搞出一套第三方的OS版源+边缘服务器模式,一定也不是多么久远的事情。