目标:将MPG或AVI等其他格式的视频源进行切割或合并 最终转换成FLV视频文件 并能够在FLVPlayer中播放 可以随意拖放 前进n秒 后退n秒
具体步骤
目前有两个非常出名的视频处理工具 都是在命令行下使用 可以做成批处理命令 相当方便
1. mencoder 著名的视频处理工具
2. ffmpeg 著名的视频处理工具
先来介绍下两个工具的特点
mencoder在网上一搜可以搜出许多的资料 可以用来转换视频 切割视频 合并视频.
ffmpeg的资料也有不少 同样用来转换视频格式 切割视频等 ,但是不能支持视频的合并 .(但我们最终还是采用了ffmpeg而非mencoder)
两者都支持大部分的视频格式.
还有一个工具: FLVtool2 是为FLV添加标签信息的工具 添加之后 FLV的信息就完整了 ,可以进行拖放等操作.
对视频源的切割和转换成FLV格式mencoder和ffmpeg都可以实现
对于视频的合并, ffmpeg不直接支持.
我们首先用mencoder切割一段视频 然后转换成FLV格式 , FLVPlayer可以播放,但出现了问题 ,
点击播放器的前进1s ,结果视频前进了10s,点前进5s,视频还是前进了10s . 这一点很是纳闷 ,
后来找到Flvtool2这个加flv信息的工具 对该FLV文件进行处理时
发现FLV的KeyFrames是每隔10s一帧.我们知道FLV视频的播放原理和Flash的一样
,是通过关键帧实现的,非关键帧中没有包括完整的图像信息,播放器的跳转到某一秒的功能是通过NetStream.Seek(n)方法实现的.而seek
是找到第n秒时最近的关键帧 , 所以当我们点击前进1到10s时 , 都是前进到了10s .
这样看来mencoder转换出来的FLV是不符合要求的. 虽然能播放但不能随意调整播放进度.
于是只有转向ffmpeg这个工具 发现ffmpeg转出来的FLV,用FLVtool2添加上信息后, 每秒钟有两个关键帧 , 这样就满足了需求.
下面面临的是视频合并的问题 , 用mencoder合并的视频文件虽然在暴风影音里面可以播放
,但实际上是损坏了视频文件的格式 , 合并的文件在ffmpeg或flvtool2中都不能被识别出来
.看来mencoder的视频合并功能也并不理想 .
现在就面临视频合并的难题 ,mencoder转换的不合格,ffmpeg又不能支持合并 . 后来查到可以通过windows下的copy命令或linux下的cat命令实现. 于是尝试了一下.
命令打开如下:
copy test1.mpg/b + test2.mpg/b test3.mpg/b
其中test1 和 test2是要合并的文件 test3.mpg是输出的视频文件
我们注意到在每个文件的后面加了个"/b" , 这个参数很重要 , 使用help copy就可以了解到对于二进制文件的拷贝需要在后面加\b .
然后在利用FLVtool2添加标记信息 发现flvtool2是能处理合并后的文件的 .
这样得到FLV文件可以在FLVPlayer中随意的拖放和精确到秒的定位.于是大功告成了.
到这里我们可以发现都是mencoder误了事情 , 用ffmpeg进行视频的切割和转换格式都满足了要求 .因此可以把mencoder给淘汰出去了, 呵呵 .
mencoder和ffmpeg的命令行参数 网上的资料多的很 我就不在这里罗列了 ,其实在命令行中看它们自带的帮助信息就可以了解个大概 ,够用了.
FLVTool2的资料用google的英文搜索也可以搜到一篇讲如何添加信息的教程 .
FLVPlayer用的是Javascript 控制 Flash FLV视频播放器 --国外开源
这篇文件介绍的播放器 功能是十分强大的 有源码可以方便自己定制 .
分享到:
相关推荐
ffmpeg.exe能解析的格式:(asx,asf,mpg,wmv,3gp,mp4,mov,avi,flv等) 对ffmpeg.exe无法解析的文件格式(wmv9,rm,rmvb等), ...再把转换好的avi文件再用ffmpeg.exe转换成flv格式的视频文件。。。
ffmpeg+mencoder两种视频转换成flv的文件 mencoder转化的好 较占资源 等好用 还有个web中嵌入的播放flv的播放器
mencoder视频格式转换+ffmpeg视频截图DEMO 可将任意格式视频转换为flv格式再截取一张图片
ffmpeg.exe、ffplay.exe 、ffprobe.exe 、mencoder.exe四个程序的压缩包,亲测可用
ffmpeg和mencoder的总结希望对大家有所帮助
ffmpeg工具来进行视频格式转换和提取视频缩略图,简单易懂且运行速度快。
NULL 博文链接:https://tw-wangzhengquan.iteye.com/blog/1545256
mencoder.exe ffmpeg.exe 将视频文件转换成.flv 的两个文件.
通过ffmpeg合并视频的多种处理方式,里面包含FFmpeg concat 协议方式,FFmpeg concat 分离器方式,Mencoder 连接文件并重建索引方式,以及使用 FFmpeg concat 过滤器重新编码等。。。。。
视频处理,如何截图、如何转码、如何搭建ffmpeg+mencoder环境。个人整理,完整实用
NULL 博文链接:https://lhutil.iteye.com/blog/1102691
ffmpeg和mencoder几乎能转所有格式的音频。这里上传的是.exe文件,在windows环境下,能直接通过命令行来调用的。
处理多种格式视频转码工具ffmpeg.exe和mencoder.exe,根据不同的格式选择处理工具,开发亲测有效
,能够将.asf|.flv|.avi|.mpg|.3gp|.mov|.wmv|.rm|.rmvb格式的文件转换成flv格式,里面包含mencoder.exe,mencoder.exe,ffmpeg.exey以及详细的视频格式转换代码,经过测试使用
提供ffmpeg和mencoder程序,可将常见视频格式(包括rm和rmvb)转换为FLV视频格式。
从消息队列获取视频路径mencoder进行转换,ffmpeg截图,flvmdi添加时间标签
基于FFMPEG和MENCODER的视频转换PHP网页.pdf
注意:下面的程序是在Linux下运行的,如果在windows下rmvb转换成avi会出现问题,想成功需要下载下个drv43260.dll东西放到C:WindowsSystem32下面 这几天在写一个视频管理系统,遇到一个很大的问题就是如果把不同格式...
mencoder,著名视频转换工具,可以转换各种格式,包括rm,rmvb等,弥补ffmpeg的不足
windows环境下java后台直接利用ffmpeg+mencoder实现视频转码,内附ffmpeg、windows版本mencoder工具+实现类+几种格式测试小视频+测试类。