【视频站点开发】(2)视频转换

【视频站点开发】(2)视频转换
 
视频播放分为两部分:
点播 和 直播(或叫转播、轮播)
 
点播:基于p2p技术和flash播放来展示视频,与youku 土豆一样。
直播:基于MMS,win2003有此功能,感觉类似IIS
 
具体过程:
同文档转换是一样的,先google/baidu了一下,发现大家都是使用ffmpeg/mencoder
好吧,我也借鉴。
 
主要需求是:
mpg/avi/wmv 转换为flv文件供给flash点播使用。再转出wmv供MMS使用(MMS只能播放wmv、asf)
 
先记录点播吧,测试ffmpeg/mencoder 发现mencode转出的视频存在声音与图像不同步。从感觉上也觉得ffmpeg比mencoder好,其实二者都 差不多,可能是先了解的ffmpeg的信息,先入为主的思想吧。后来证明用ffmpeg还真是对的。
ffmpeg 主要使用以下功能
转为flv, 给flv加水印, 对flv截图,根据需要截取视频。
其实单纯的转换非常简单一句命令就完了。
简单记下命令:
 
flv:
-i "*.wmv" -passlogfile "*.log" -pass 1 -ab 56 -ar 44100 -r 29.97 -ss 5 -t 20 -qscale 7 -vhook "......\ffmpeg\vhook\imlib2.dll  -x 0 -y 0 -i *.png" -s 448x336 "*.flv"
此命令包括转换log输出 水印 和根据时间点转换。
qscale 7 是flv质量控制参数 flv大小与质量(比特率)和flv视频窗口大小有关,通常每分钟5M大小可以被接受(以美国的带宽参照)
-b 等同于 -qscale,-b控制更精准些,在每分钟5M大小的条件下-b 设为500000b则可以。
水印有很多方法,贴图贴文字(与字幕一样)同态文字等,我仅是加图片。
 
wmv:
fmpeg -i "*.MPG" -passlogfile "*.log" -pass 1 -vhook "......\ffmpeg\vhook\imlib2.dll  -x 0 -y 0 -i *.png" -vcodec wmv2 -acodec wmav2 -ar 44100 -ab 128k -b 500000 -ss 15 -t 65 -s 448x336 "*.wmv"
 
mpg:
-vcodec mpeg2video -b 300000 -acodec libmp3lame -ab 64 -ar 48000  -r 25
记录部分参数
 
记录一点体会:只要ffmpeg 能 Encoding的就可以用来转换,转换出的文件同样是可以Decoding的才行,其实入口文件遵循Encoding就可以,出口文件遵循Decoding但必须是转出的类型与所给参数(mpg中的参数 )一致才可以,否则视频转出也是错误的。
 
ffmpeg的 Encoding和Decoding参照:http://space.itpub.net/12476590/viewspace-620145
 
 
 
 
其他问题:
 
这种flv的格式为h263,可以理解为vcd的格式,相对来说压缩比太小,应用于网络传输不太合适,要么质量差要么质量好就很大(最高质量可达每分钟30M才有dvd的效果)
dvd的格式通常都为h264,这是国内,国外(老美)基本上全是vp6,这个标准是adobe定的,我尝试了很多方式也无法转出vp6的flv,这东西可以花钱买,但非常昂贵。那么就说下h264吧,国内有个ffmpeg开源小组(chinavideo),在那里我找到一个工具是ffmpegFull,它可以转出h264格式可。。。是mp4,目前flash9之上都 支持mp4的播放但由于项目中关联到p2p和flash播放器所以不能使用mp4.到目前为止,也没有解决这个问题,只能使用比特率为500000b的质量。还算过得去吧。
 
ffmpegFull的命令:
ffmpeg -i "......RB.wmv" -threads 2 -vcodec libx264 -b 800K -bufsize 500K  -minrate 500K -maxrate 500K -rc_eq "blurCplx^(1-qComp)" -qmin 2 -qmax 51 -ss 65 -t 60 -s 448x336 ".......mp4"
qt-faststart.exe ".......mp4" "......New.mp4"
ffmpeg -i "F:\FFmpegFull32\Work\Over_RB_WM.mp4" -y -f image2 -ss 10 -t 0.001 -s 400X360 "F:\FFmpegFull32\Work\Over_RB_WM.jpg"
***注:ffmpegfull转出的mp4需要修复才行使用qt-faststart.exe就可以
但有一点很重要,ffmpegfull无法实现加水印(目前我是做不到,寻求了一些帮助也没有答案)
 
mencoder 在寻求转换方法时也试了很多,使用mencoder加水印没有成功,后来改用AviSynth加水印,但在avs中调用视频源有些问题,有的理论上可以调用但我测试不成功,这也是导致我使用ffmpeg的原因。
 
以上写的够乱,想到什么写什么。ffmpeg的参数参照 http://ffmpeg.org/ffmpeg-doc.html
 
补记:
ffmpeg转的flv在p2p中不能拖动播放,因为ffmpeg和mencoder转的flv的MetaData为空所以也需要修复使用flvtool2.exe工具就可以
还有一个小功能取flv的信息参照 http://download.csdn.net/source/1822325
 
 
 
 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12476590/viewspace-619761/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/12476590/viewspace-619761/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值