h264格式的flv和mkv无损转换成mp4的方法
来源:互联网 发布:单机版进销存软件 编辑:程序博客网 时间:2024/06/06 22:45
现在很多flv和mkv视频都是采用的h264封装,移动设备往往并不支持这些格式的文件,但却对h264封装的mp4支持良好。因此,为了视频能在电脑和移动设备间共享,我通常会将其转换成h264封装的mp4文件。
由于视频转码非常耗时间和cpu,如果flv和mkv本来就是采用的h264封装,完全不需要转码,只需要把h264视频和音频文件分离出来,重新混流一次即可,十几秒内即可完成,非常快速,并且由于没有转码操作,也避免了转码过程的画面损失。
下面我就介绍几种将h264格式的flv和mkv无损转换为mp4的方法。
一、通过ffmpeg转换mkv文件
ffmpge(点击下载)可以非常快速的实现h264视频的分离和混流,并且是命令行的操作,也没有什么参数需要设置,非常适合批量转换:
ffmpeg.exe -i input.mkv -y -vcodec copy -acodec copy output.mp4
要实现批量转换,可以直接用这个批处理文件:
for %%i in (*.mkv) do ffmpeg.exe -i "%%i" -vcodec copy -acodec copy "%%~ni.mp4"
二、通过FlvExtract + mp4box转换mkv文件
这个方法本身也支持转换flv文件,但是ffmpeg貌似对flv的支持不够好,很容易转换失败。对于flv文件,往往采用下面所述的方法。
- 通过FlvExtract把flv文件分离为视频和音频文件
- 通过mp4box将视频和音频文封装起来。
命令行如下:
FLVExtractCL.exe -a -v input.flv mp4box -add input.264 -add input.aac -new output.mp4
另外,mkv的转换其实也可以先分离出视频和音频,然后调用mp4box封装,但是我试过一下,不仅较为麻烦,并且fps等参数控制不好时容易声音不同步,因此不推荐。
三、通过mp4box无损连接mp4文件
很多时候,当我们从视频网站上下载的视频是分成好几段的,这个时候就需要将转换后的视频文件连接成一个完整的视频,可以通过mp4box实现这一功能。
mp4box -cat a.mp4 -cat b.mp4 -new total.mp4
其实这个和上面的mp4混流命令的用法是一样的。
需要注意的是,这个方法只适用于同样的大小、码率的视频。不满足这个要求的视频需要转码为一致的才能顺利合并。
四、通过mp4box无损截取视频片段
有的时候,我们往往需要剪辑视频中的一部分片段(如op等)保留下来,mp4box同样可以实现这个功能。
mp4box -splitx 9:31.5 -out output.mp4 input.mp4
这个命令一共需要传入四个参数:1. 输入视频文件 2.开始时间 3.结束时间 4. 输出文件。其中开始时间和结束时间以秒为单位,支持小数。如果不指定输出文则自动重命名。
- h264格式的flv和mkv无损转换成mp4的方法
- h264格式的flv和mkv无损转换成mp4的方法
- 无损转换FLV音频为MP3的方法
- ffmpegj将h264与aac封装成mkv/ts或者h264与mp3封装成mp4/flv/avi测试代码
- .mp4的视频给转换成格式是.flv的视频,代码怎么实现?
- ffmpeg实战教程(一)Mp4,mkv等格式解码为h264和yuv数据
- mkv、rmvb、avi、MP4、flv、wmv特点和区别
- ffmpeg转换mp4到flv的命令
- (详细格式)RTMP中FLV流到标准h264、aac的转换
- 如何分离MP4、FLV等格式视频为H264码流
- 无需工具:腾讯视频.qlv格式转换成.mp4格式的方法!
- h264流和mp4视频文件的区别
- 现在 MKV、MP4 等格式的压缩与效果都更好,为什么 RMVB 还是那么流行?
- ffmpeg转换mp4到flv的使用笔记
- MP4文件两种格式AVC1和H264的区别及利用FFMPEG demux为h264码流事项
- MP4文件两种格式AVC1和H264的区别及利用FFMPEG demux为h264码流事项
- 将各种格式flv,avi,mp4等的文件,转码成MP4(无音频)
- 使用ffmpeg把flv转换成Android可播放的mp4文件
- 674 - Coin Change
- 如何使用MFC和类型库创建自动化项目
- 修改图形界面签到程序
- 去掉tppabs冗余代码和注释
- java面试题总结
- h264格式的flv和mkv无损转换成mp4的方法
- 常用排序算法实现——快速排序
- 4行代码简单实现js树形菜单
- VC 控制PPT
- 第三章 函数编程(一)
- 为企业提供免费代码安全扫描服务(每月限一次)
- Linux磁盘命令及分区
- 布线问题_ny_38(并查集+最小生成树).java
- BigDecimal divide方法结果为无限小数问题