转自: http://blog.csdn.net/zhangxh1013/article/details/5896482
yamdi()和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格式