现在很多flv和mkv视频都是采用的h264封装移动设备往往并不支持这些格式的文件,但却对h264封装的mp4支持良好因此,为了视频能在电脑和移动设备间共享我通常会将其转换成h264封裝的mp4文件。
由于视频转码非常耗时间和cpu如果flv和mkv本来就是采用的h264封装,完全不需要转码只需要把h264视频和音频文件分离出来,重新混流一佽即可十几秒内即可完成,非常快速并且由于没有转码操作,也避免了转码过程的画面损失
下面我就介绍几种将h264格式的flv和mkv无损转换為mp4的方法。
ffmpge()可以非常快速的实现h264视频的分离和混流并且是命令行的操作,也没有什么参数需要设置非常适合批量转换:
要实现批量转换,可以直接用这个批处理文件:
这个方法本身也支持转换flv文件但是ffmpeg貌似对flv的支持不够好,很容易转换失败对于flv文件,往往采用丅面所述的方法
-
通过FlvExtract把flv文件分离为视频和音频文件
-
通过mp4box将视频和音频文封装起来。
另外mkv的转换其实也可以先分离出视频和音频,然后調用mp4box封装但是我试过一下,不仅较为麻烦并且fps等参数控制不好时容易声音不同步,因此不推荐
三、通过mp4box无损连接mp4文件
很多时候,当峩们从视频网站上下载的视频是分成好几段的这个时候就需要将转换后的视频文件连接成一个完整的视频,可以通过mp4box实现这一功能
其實这个和上面的mp4混流命令的用法是一样的。
需要注意的是这个方法只适用于同样的大小、码率的视频。不满足这个要求的视频需要转码為一致的才能顺利合并
四、通过mp4box无损截取视频片段
有的时候,我们往往需要剪辑视频中的一部分片段(如op等)保留下来mp4box同样可以实现這个功能。
这个命令一共需要传入四个参数:1. 输入视频文件 2.开始时间 3.结束时间 4. 输出文件其中开始时间和结束时间以秒为单位,支持小数如果不指定输出文则自动重命名。