在线视频点播
<!-- /* Font Definitions */ @font-face {font-family:宋体; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-alt:SimSun; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} @font-face {font-family:"Cambria Math"; panose-1:2 4 5 3 5 4 6 3 2 4; mso-font-charset:1; mso-generic-font-family:roman; mso-font-format:other; mso-font-pitch:variable; mso-font-signature:0 0 0 0 0 0;} @font-face {font-family:Calibri; panose-1:2 15 5 2 2 2 4 3 2 4; mso-font-charset:0; mso-generic-font-family:swiss; mso-font-pitch:variable; mso-font-signature:-1610611985 1073750139 0 0 159 0;} @font-face {font-family:"/@宋体"; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-unhide:no; mso-style-qformat:yes; mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; mso-pagination:none; font-size:10.5pt; mso-bidi-font-size:11.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:宋体; mso-fareast-theme-font:minor-fareast; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi; mso-font-kerning:1.0pt;} .MsoChpDefault {mso-style-type:export-only;
mso-default-props:yes; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi;} /* Page Definitions */ @page {mso-page-border-surround-header:no; mso-page-border-surround-footer:no;} @page Section1 {size:595.3pt 841.9pt; margin:72.0pt 90.0pt 72.0pt 90.0pt; mso-header-margin:42.55pt; mso-footer-margin:49.6pt; mso-paper-source:0; layout-grid:15.6pt;} div.Section1 {page:Section1;} -->
FLV格式是FLASH VIDEO格式的简称,随着Flash MX的推出,Macromedia公司开发了属于⾃⼰的流媒体视频格式——FLV格
式。FLV流媒体格式是⼀种新的视频格式,由于它形成的⽂件极⼩、加载速度也极快,这就使得⽹络观看视频⽂件成为可能,FLV视频格式的出现有效地解决了视频⽂件导⼊Flash后,使导出的SWF格式⽂件体积庞⼤,不能在⽹络上很好的使⽤等缺点,FLV是在sorenson公司的压缩算法的基础上开发出来的。sorenson公司也为MOV格式提供算法。FLV格式不仅可以轻松的导⼊Flash中,⼏百帧的影⽚就以两秒钟;同时也可以通过rtmp 协议从Flashcom 服务器上流式播出。因此⽬前国内外主流的视频⽹站都使⽤这种格式的视频在线观看。
flv在线播放器 Vcastr3
下载地址:
有⼀个源于Linux的⼯具软件ffmpeg可以轻易地实现FLV向其它格式(avi(mpeg4)、asf、mpeg)的转换或者将其它格式转换为flv。
如果只需要转到flv,装mencoder和codecs就可以了,如果还需要截图或者其他功能,就要装ffmpeg和相关解码包。ffmpeg⽀持的格式没有前者多,但是速度⽐较快,参数也很简单。另外我们还需要转换到rm,了很久都没到基于前述两种软件的解决⽅法。在对转换速度不具特殊需求的情况下,我使⽤Helix Producer for linux来解决该问题,这同时也是real的⼈所建议的。
mencoder
下载地址:
MPlayer-1.0rc2-gui.zip
MPlayer-mingw32-1.0rc2.zip
windows-all-20071007.zip
参数说明:
CODE:
mencoder [options] file1 [specific options] [file2] [specific options]
mencoder src.avi -o dst.avi -vf scale=320:240 -oac copy -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=500
# src.avi 原⽂件
# -o dst.avi 定义压缩为dst.avi
# -vf scale=320:240,调整视频尺⼨到320x240;
# -oac copy,指定⾳频编码器,copy是指不压缩,直接使⽤源⽂件⾥的⾳频。copy换成 MP3lame,即压缩成mp3。
# -ovc lavc,指定视频编码器,使⽤libavcodec编码器;
# -lavcopts vcodec=mpeg4:vbitrate=500,指定libavcodec的参数,vcodec=mpeg4指使⽤mpeg4压缩,就
是DivX,vbitrate=500指500kbps的⽐特率。
CODE:
mencoder src.avi -o dst.flv -of lavf -oac MP3lame -lameopts abr:br=32:mode=3 -ovc lavc
i_certify_that_my_video_stream_does_not_use_b_frames -vf scale=350:-3 -sws 2
# src.avi 输⼊⽂件路径,是Mplayer能⽀持的格式即可
# -o dst.flv 输出路径
# -of lavf 输出格式 lavf表⽰libavcodec
# -oac MP3lame 输出⾳频编码⽅式,lame是最好的mp3编码器
# -lameopts abr:br=32:mode=3 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 codec=flv flv格式压缩 vbitrate=150 视频码率
# -vf scale=350:-3 -sws 2 缩放视频,指定宽度为350,⾼度按⽐例来。质量由-sws选项控制,具体看⼿册
# -ofps 23 设定帧数,缩⼩帧数对节约⽂件⼤⼩效果不明显,且可能造成画⾯声⾳同步。建议不设置
mencoder “input.avi" -o "output.flv" -of lavf -lavfopts i_certify_that_my_video_stream_does_not_use_b_frames -oac mp3lame -lameopts abr:br=56 -ovc lavc -lavcopts vcodec=flv:vbitrate=500:mbd=2:mv0:trell:v4mv:cbp:last_pred=3:dia=4:cmp=6:vb_strategy=1 -ofps 29.97 -srate 22050
参数详解:
-o "output.flv":是输出⽂件路径;
-of lavf:是输出⽂件格式,这⾥不是flv⽽是lavf,是因为flv属于libavformat;
-lavfopts i_certify_that_my_video_stream_does_not_use_b_frames:-lavfopts表⽰对lavf进⾏⼀些设置,设置的内容就
是i_certify_that_my_video_stream_does_not_use_b_frames,翻译成中⽂就是:我确定,我的视频不⽤B frames,对于转换flv格式,最好加上这个参数,否则可能会报错。
-oac mp3lame:oac=output audio codec,输出⾳频编码器,这⾥⽤的mp3lame;
-lameopts abr:br=56:lame options,是专门针对mp3lame的参数设置,abr:br=56,是设置⾳频⽐特率为56;
-ovc lavc:ovc=output video codec,输出视频编码器,lavc表⽰one of libavcodec’s video codec,输出格式为libavformat之⼀;
-lavcopts vcodec=flv:vbitrate=500:mbd=2:mv0:v4mv:trell:cbp:last_pred=3:dia=4:cmp=6:vb_strategy=1:对lavc进⾏⼀些设置,详细介绍如下:
vcodec=flv:指定视频编码器为flv;
vbitrate=500:指定视频⽐特率为500。
mbd:宏模块选择算法,值为0~2默认为0,值越⼤转换越缓慢,但在品质和⽂件⼤⼩⽅⾯有好处;
mv0:编译每个宏模块并选择最好的⼀个,当mbd=0时⽆效;
v4mv:会稍微增加品质,mbd>0时效果更明显;
trell:量⼦化⽹格搜索,对每8×8block到最优化编码;
cbp:只能和trell⼀期使⽤,评估失真的图像块编码;
last_pred=3:与上⼀帧相⽐的移动数量预测,值为0~99,1~3⽐较合适,⼤于3时对品质的提⾼已经⽆关紧要,但却会降低速度;
dia=4:移动搜索范围,值为-99~6,对于快速转换,-1是个不错的值,如果不是很重视速度,可以考虑2~4;
cmp=6:值为1~2000,默认为0,设置⽤于全象素移动预算的⽐较函数
vb_strategy=1:对动作很⼤的场景会有帮助,对有些视频,设置vmax_b_frames会有损品质,加上vb_strategy=1会好点。
⽰例:
rmvb->flv
mencoder D:/vb FLV1 -of lavf -oac mp3lame -lameopts aq=9:cbr:br=64:vol=2 -ovc lavc -lavcopts
vcodec=flv:vbitrate=200:acodec=mp3:abitrate=56 -vf scale=320:270,expand=320:270:::1,crop=320:270:0:0 -ofps 18 -srate 22050  -o D:/video/xchk.flv
mencoder D:/vb FLV1 -of lavf -oac mp3lame -lameopts aq=9:cbr:br=64:vol=2 -ovc lavc -lavcopts
vcodec=flv:vbitrate=200:acodec=mp3:abitrate=56 -vf scale=320:270,expand=320:270:::1,crop=320:270:0:0 -ofps 18 -srate 22050  -o D:/video/test/tl.flv
mpg->flv
mencoder D:/video/hx.mpg FLV1 -of lavf -oac mp3lame -lameopts aq=9:cbr:br=64:vol=2 -ovc lavc -lavcopts
vcodec=flv:vbitrate=200:acodec=mp3:abitrate=56 -vf scale=320:270,expand=320:270:::1,crop=320:270:0:0 -ofps 18 -srate 22050  -o D:/video/test/hx1.flv
DAT->flv
mencoder D:/video/avs001.DAT FLV1 -of lavf -oac mp3lame -lameopts aq=9:cbr:br=64:vol=2 -ovc lavc -lavcopts
vcodec=flv:vbitrate=200:acodec=mp3:abitrate=56 -vf scale=320:270,expand=320:270:::1,crop=320:270:0:0 -ofps 18 -srate 22050  -o D:/video/test/avs0011.flv
avi->flv
mencoder D:/video/pxgk.avi FLV1 -of lavf -oac mp3lame -lameopts aq=9:cbr:br=64:vol=2 -ovc lavc -lavcopts
vcodec=flv:vbitrate=200:acodec=mp3:abitrate=56 -vf scale=320:270,expand=320:270:::1,crop=320:270:0:0 -ofps 18 -srate 22050  -o D:/video/test/pxgk1.flv
----------------------------------------------------------
ffmpeg
ffmpeg能解析的格式:asx,asf,mpg,wmv,3gp,mp4,mov,avi,flv等
下载地址:
ffmpeg参数说明
【常⽤参数】【说明】【⽰例】
-i "路径"          指定需要转换的⽂件路径  -i "C:/nba.wmv"
-y    覆盖输出⽂件,即如果⽂件已经存在的话,直接覆盖
控制画⾯参数
-bitexac 使⽤标准⽐特率
-vcodec xvid    使⽤xvid压缩
-
s <;宽⾼⽐>    指定分辨率⼤⼩  -s 320*240看不了视频
-r <;数值>        帧速率(⾮标准数值会导致⾳画不同步【标准值为15或29.97】)          -r 15
-b <⽐特率>  指定压缩⽐特率  -b 1500
-qmin <;数值>
设定最⼩质量        -qmin 10
-qmax <;数值>        与-qmin相反,可以与-qmin同时使⽤        -qmax 30
-sameq  使⽤与源视频相同的质量
控制声⾳参数
-acodec aac    设定声⾳编码
-ac <;数值>      设定声道数:1为单声道,2为⽴体声      -ac 2
-ar <;采样率> 设定声⾳采样率(8000,11025,22050)    -ar 22050
-
ab <⽐特率>          设定声⾳⽐特率(-ac设为⽴体声时要以⼀半⽐特率来设置,⽐如192kbps的就设成96)  -ab 96
-vol <;百分⽐>          设定⾳量⼤⼩,⽐如设定200就会⽐原来的⾳量⼤2倍        -vol 200
利⽤ffmpeg的这两个参数,可以控制让ffmpeg来将⼀个⼤video劈分成许多⼩段的独⽴播放的⽂件。
-ss time_off        set the start time offset
-t duration        set the recording time
详细参数:
ffmpeg [[options][`-i’ input_file]]… {[options] output_file}…
如果没有输⼊⽂件,那么视⾳频捕捉就会起作⽤。
作为通⽤的规则,选项⼀般⽤于下⼀个特定的⽂件。如果你给 –b 64选项,改选会设置下⼀个视频速率。对于原始输⼊⽂件,格式选项可能是需要的。
缺省情况下,ffmpeg试图尽可能的⽆损转换,采⽤与输⼊同样的⾳频视频参数来输出。
3.选项
a) 通⽤选项
-L license
-h 帮助
-fromats 显⽰可⽤的格式,编解码的,协议的。。。
-f fmt 强迫采⽤格式fmt
-I filename 输⼊⽂件
-y 覆盖输出⽂件
-t duration 设置纪录时间 hh:mm:ss[.xxx]格式的记录时间也⽀持
-ss position 搜索到指定的时间 [-]hh:mm:ss[.xxx]的格式也⽀持
-title string 设置标题
-
author string 设置作者
-copyright string 设置版权
-comment string 设置评论
-target type 设置⽬标⽂件类型(vcd,svcd,dvd) 所有的格式选项(⽐特率,编解码以及缓冲区⼤⼩)⾃动设置,只需要输⼊如下的就可以了:ffmpeg -i myfile.avi -target vcd /tmp/vcd.mpg
-hq 激活⾼质量设置
-itsoffset offset 设置以秒为基准的时间偏移,该选项影响所有后⾯的输⼊⽂件。该偏移被加到输⼊⽂件的时戳,定义⼀个正偏移意味着相应
的流被延迟了 offset秒。 [-]hh:mm:ss[.xxx]的格式也⽀持
b) 视频选项
-b bitrate 设置⽐特率,缺省200kb/s
-r fps 设置帧频缺省25
-s size 设置帧⼤⼩格式为WXH 缺省160X128.下⾯的简写也可以直接使⽤:
Sqcif 128X96 qcif 176X144 cif 252X288 4cif 704X576
-aspect aspect 设置横纵⽐ 4:3 16:9 或 1.3333 1.7777
-croptop size 设置顶部切除带⼤⼩像素单位
-cropbottom size –cropleft size –cropright size
-padtop size 设置顶部补齐的⼤⼩像素单位
-padbottom size –padleft size –padright size –padcolor color 设置补齐条颜⾊(hex,6个16进制的数,红:绿:兰排列,⽐如 000000代表⿊⾊) -vn 不做视频记录
-bt tolerance 设置视频码率容忍度kbit/s
-maxrate bitrate设置最⼤视频码率容忍度
-minrate bitreate 设置最⼩视频码率容忍度
-bufsize size 设置码率控制缓冲区⼤⼩
-vcodec codec 强制使⽤codec编解码⽅式。如果⽤copy表⽰原始编解码数据必须被拷贝。
-sameq 使⽤同样视频质量作为源(VBR)
-pass n 选择处理遍数(1或者2)。两遍编码⾮常有⽤。第⼀遍⽣成统计信息,第⼆遍⽣成精确的请求的码率
-passlogfile file 选择两遍的纪录⽂件名为file
c)⾼级视频选项
-g gop_size 设置图像组⼤⼩
-intra 仅适⽤帧内编码
-qscale q 使⽤固定的视频量化标度(VBR)
-qmin q 最⼩视频量化标度(VBR)
-qmax q 最⼤视频量化标度(VBR)
-qdiff q 量化标度间最⼤偏差 (VBR)
-qblur blur 视频量化标度柔化(VBR)
-qcomp compression 视频量化标度压缩(VBR)
-rc_init_cplx complexity ⼀遍编码的初始复杂度
-b_qfactor factor 在p和b帧间的qp因⼦
-i_qfactor factor 在p和i帧间的qp因⼦
-b_qoffset offset 在p和b帧间的qp偏差
-i_qoffset offset 在p和i帧间的qp偏差
-rc_eq equation 设置码率控制⽅程默认tex^qComp
-rc_override override 特定间隔下的速率控制重载
-me method 设置运动估计的⽅法可⽤⽅法有 zero phods log x1 epzs(缺省) full
-dct_algo algo 设置dct的算法可⽤的有 0 FF_DCT_AUTO 缺省的DCT 1 FF_DCT_FASTINT 2 FF_DCT_INT 3 FF_DCT_MMX 4