网管之家---网络爱好者的博客

对Flv视频文件加关键帧工具yamdi与flvtool2的使用与比较

关于做流媒体服务器的都知道,播放flv视频文件,必须给flv文件加关键帧才能拖动播放,这2个工具yamdi(http://yamdi.sourceforge.net/)和flvtool2(http://blog.inlet-media.de/flvtool2/)都是对flv文件 进行MetaData注入(加关键帧)的工具,两者实施后效果差不多,不过二者的效率有较大的不同,因为yamdi是C编译 的, 效率比较高,而flvtool2是利用Ruby语言的,效率比yamdi差很多,所以大多数时候还是建议采用yamdi,此外同样进行一个最简单的 MetaData注入,yamdi的产生的文件比flvtool2稍微小一些。当然,flvtool2还可以实现影片剪辑,但这个功能 实际上可以在转换的时候同步实现,而不必专门再剪辑(ffmpeg和mencoder都可以在转换的时候同时剪辑)。
下面再简单介绍下两个命令 行工具的参数。
yamdi的参数:
    -i     指定FLV源文件.
    -o      指定输出文件,如果文件名为-,则输出到标准输出设备 上,如果不指定也是
    -x      插入的metadata信息XML文件。如果输出文件省略了,则只生成metadata信息.
    -c      一个写入creator标签的字符串.
    -l      添加 onLastSecond 行为.
    -h      显示帮助信息.
flvtool2的命令行形式:
$flvtool2 [-ACDPUVaciklnoprstvx]... [-key:value]... in-path|stdin [out-path|stdout]
flvtool2的命令参数解释:
在输出路径未指定时,输入文件被覆盖。如果输入路径是目录 ,则输出路径也必须是路径或者省略。处理目录时可以由-r选择参数进行循环控制,你可以使用stdin和stdout参数作为输入和输出路径,从而实现管道或者重定向操作。
可以直接链式指定参数,比如-UP 就相当于 -U -P (更新FLV文件,并且打印meta数据)
主要命令:
    -A 添加由-t 标签定义文件名 >指定的标签。
    -C 剪辑文件,出入点由 -i 入点> 和 -o 出点> 进行指定
    -D 调试 模式,写一些内容到stdout
    -H 显示帮助
    -P 打印meta数据到stdout
    -U 更新FLV文件,实现onMetaTag行为
附件选项:
    -a    在剪辑区域收拢空间
    -c      兼容模式计算同一个onMetaTag标签不同值的情况
    -key:value     Key/value 对格式作为onMetaData标签(覆盖对应的值)
    -i 时间码     定义入点,毫秒格式
    -k      关键帧模式中onCuePoint()标签被添加到最近的关键帧上
    -l      写日志 到当前目录的stream.log中
    -n      调试的层次
    -o 时间码     定义出点,毫秒格式时间
    -p      保护模式只更新还没有处理过的FLV文件
    -r      循环处理一个目录
    -s      Simulation mode never writes FLV data to out-path
    -t 路径      标签指定文件 (MetaTags 写入 XML)
    -v      详细模式
    -x      被插入的XML模式是YAML格式

点我下载yamdi工具  点我下载flvtool2工具

把本页收藏到QQ书签 标签:flv关键帧yamdiflvtool2
分类:网络技术| 发布:wangguanzhijia| 查看: | 发表时间:2013-6-6
原创文章如转载,请注明:转载自网管之家 http://www.wangguanzhijia.com/
本文链接:http://www.wangguanzhijia.com/post/134.html

相关文章

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

1 #xylsh
xylsh 还是没看明白给一个flv加关键帧,能举个具体例子吗,比如1.flv原来有5个关键帧,时长25秒,拖动进度条是一蹦一蹦的,现在用yamdi给它再加20个关键帧,怎么写命令
2014-8-5 22:55:36 【REPLY】