linux下处理视频为flv格式

原贴:http://blog.csdn.net/crackcell/archive/2007/05/29/1629062.aspx
      http://blog.csdn.net/octverve/archive/2007/09/24/1798231.aspx

FLV视频转换的利器 - ffmpeg.exe

大 家应该都知道Youtobe、Google Video之类视频分享网站。他们的视频全部是使用Flash播放,而通过探索实际地址,会发现下载回来的东西都是Flash支持的FLV格式。这种格式 的视频,播放和转换是非常麻烦的。但是,有一个源于Linux的工具软件ffmpeg可以轻易地实现FLV向其它格式(avi(mpeg4)、asf、 mpeg)的转换或者将其它格式转换为flv。 =OD'GuQ  
ffmpeg作为Linux下的LGPL开源程序,在Windows下编译需要特殊的工具。我这里提供的ffmpeg.exe是2004年的旧版本,使用MinGW编译,只有一个可执行文件,可直接运行(命令行程序)。 b<td|kk  
FLV向其它格式(avi(mpeg4)、asf、mpeg)转换的简易方法:(圆括号内必填,方括号内可选) khOG Kh*  
转换成wmv/asf JZvQCf;$  
ffmpeg -i (要转换的flv文件完整路径) -f asf -vcodec (wmv1或wmv2) [-b 视频码率] -acodec mp3 [-ab 音频码率] (输出的asf/wmv文件完整路径) !.C1}Wf  
转换成mpeg1 n Xa Os&  
ffmpeg -i (要转换的flv文件完整路径) -f mpeg -vcodec mpeg1video [-b 视频码率] -acodec mp2 [-ab 音频码率] (输出的mpg文件完整路径) =mmBjG}0{  
转换成avi(msmpeg4) z4%EYCZ'  
ffmpeg -i (要转换的flv文件完整路径) -f avi -vcodec (msmpeg4或msmpeg4v1或msmpeg4v2) [-b 视频码率] -acodec mp3 [-ab 音频码率] (输出的avi文件完整路径) AImbKhOK'  
8J}`s07  
其它格式向flv转换的简易办法 qf1975fI  
ffmpeg -i (输入的文件完整路径,RM/RMVB不支持,最好是mpeg4的AVI或者MPEG1文件,对新版的wmv支持不好)-f flv -vcodec flv [-b 视频码率] -acodec mp3 [-ab 音频码率] (输出的flv文件) P'P#Kl  
/Wu3)RjK  
ffmpeg其实还有很多选项。说明文件全部嵌在代码里了。 C(V+Ej*!"  
下载:ffmpeg.zip v -d5$ +O  
http://freehost25.websamba.com/yksoft/download/ffmpeg.zip (%&"f_5q  
附:flv播放器 S/99i*X0H  
http://freehost25.websamba.com/yksoft/download/rivaflvplayer.zip
 


Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1798231


 flv视频转换和flash播放的解决方案笔记     
转自:http://blog.verycd.com/dash/showentry=35982
作者是大名鼎鼎的VeryCD的创始人。

凌晨2点洗澡的时候,突然决定把flv的视频转换和在线播放的问题研究一下。于是在之后花了2小时进行Google,并在睡觉前初步试验成功。今天晚上对这些信息进行了一下整理,分享给大家。

youtube 火起来以后,国内外跟进的一大把,不过技术和流程上没有任何突破,基本上就是服务器自动对用户上传的视频进行压缩,压成可以用flash在线播放的 flv,缩小尺寸并降低码率。然后再用Flash制作一个播放器,可以根据参数在线播放指定的flv视频,当然有些还会加上水印和跳自己网站等功能。

转 换工具可以选择ffmpeg和mencoder,这2个都是gnu项目,并且可以非常完美的在linux/Mac/Win32等平台下使用。不过 ffmpeg支持的视频格式较少(不能很方便的支持rmvb,mov等,不过据说Google Video用的是这个),而mencoder则不能进行截图,所以可以考虑2者结合使用,mencoder负责转换,ffmpeg负责截图。

关于下载和安装,ffmpeg烦一点,官方网站上只提供了svn,需要自己编译。具体可以参考 这篇文章,Windows还需要装MinGW来MSYS模拟linux环境,偷懒的话可以直接找个 编译好的版本,不过功能可能会不全。

mencoder则很简单,本来就是 mplayer的一部分,会装mplayer就成。注意把 codecs都装全了


首先通过mencoder把普通视频转化为flv格式,命令如下

代码
mencoder test.avi -o test.flv -of lavf -oac mp3lame -lameopts abr:br=32:mode=3 -ovc lavc -lavcopts vcodec=flv:vbitrate=150:mbd=2:mv0:trell:v4mv:cbp:last_pred=3 -srate 22050 -lavfopts i_certify_that_my_video_stream_does_not_use_b_frames -vf scale=350:-3 -sws 2

mencoder 的参数超级复杂,视音频压缩本身又是一门非常高深的学问,本人略知皮毛,下面只对自己了解的一些参数做些说明,详细解释请看 手册

引用
test.avi
输入文件路径,是Mplayer能支持的格式即可

-o test.flv
输出路径

-of lavf
输出格式 lavf表示libavcodec

-oac mp3lame
输出音频编码方式,lame是最好的mp3编码器

-lameopts abr:br=32:mode=3
lame的选项
abr代表平均码率,相对于cbr(固定码率)和vbr(可变码率,貌似不支持)
br就是音频的码率,越高音质越好
mode=3,0-3分别代表Stereo,Joint Stereo,Force ms_stereo,Mono(默认为自动,事实上1和3对文件大小的影响并不是很大)
另外可选的还有 vol(音量,取值0-10,数值越大音量越大,不建议修改)等

-srate 22050
声音采样频率设置,也可以选11025,文件可以稍小一点

-ovc lavc
输出视频编码 lavc就是libavcodec

-lavcopts
lavc的的选项
codec=flv flv格式压缩
vbitrate=150 视频码率
其他几个选项一概不懂,请看手册(一般来说看了还是不懂)

-vf scale=350:-3 -sws 2
缩放视频,指定宽度为350,高度按比例来。质量由-sws选项控制,具体看手册

-ofps 23 设定帧数,缩小帧数对节约文件大小效果不明显,且可能造成画面声音同步。建议不设置


mencoder压缩后生成的flv缺少meta信息,会造成播放时没有进度条等问题,需要再用 flvmdi修复一下

代码
flvmdi test.flv


生成后的flv通过 MPC就可以预览。

ffmpeg截图
代码
ffmpeg  - i test.flv  - ss  10   - vframes  1   - 1   - ac  1   - ab  2   - 320 × 240   - f image2 test.jpg

-ss 10 就是说1秒后的那一帧

然后生成flash视频播放器的话,网上例子很多,自己对Flash研究也不深,也就不多说了,要自定义播放器界面的参考 这里

唯一需要补充一下的是视频的smoothing属性,现在的在线播放器尺寸一般都回比实际压缩后的视频尺寸大一些,smoothing=true可以保证放大的质量(包括全屏后的),具体的文章见 这里。


很长时间没在技术方面做些研究了,难得在晚上可以清静些。我所了解的内容都已列出,也不会再作进一步研究,所以其他的问题就不要问我了,Google一下会比问我更有效率。 

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1629062

 

你可能感兴趣的:(linux,Google,video,Flash,flv,avi)