天天看点

C# 版 flvmerge:快速合并多个flv文件

网上的视频很多都是分片的flv文件,怎么把他们合为一体呢?GUI工具就不考虑了,不适合批量执行,不适合在后台运行。有没有命令行工具或库可以实现呢?

(1)先把flv文件转换成mpeg; (2)将多个mpeg文件合并成1个独立的mpeg文件(二进制合并即可) (3)将独立的mpeg文件转换成独立的flv文件。

 网上搜到的最多的也是这种解决办法。这种方法有两个缺点:

(1)需要两遍转码,非常耗时; (2)转换后的独立的mpeg文件比原视频要短一点点。

 木有办法了,只好另寻他路。有人说有一个flvmerge.exe 程序可以将多个flv合并成一个,可惜的是俺搜了很久,都没找到这个程序,最后还是在一款免费软件里把这个“flvmerge.exe”文件给揪出来了,不幸的是,这个“flvmerge.exe”得不到正确的结果。

看了看它的代码,知道了flv文件合并的原理:

(1) flv 文件由1个header和若干个tag组成; (2) header记录了视频的元数据; (3) tag 是有时间戳的数据; (4) flv合并的原理就是把多个文件里的tag组装起来,调整各tag的时间戳,再在文件起始处按个头部。

<a></a>

测试通过,合并速度很快!

 本文转自xiaotie博客园博客,原文链接http://www.cnblogs.com/xiaotie/p/3441030.html如需转载请自行联系原作者

xiaotie 集异璧实验室(GEBLAB)