前言
之前做的一个视频网站,由于视频是存放于服务器的,文件很大时候发现无法播放而且视频要等加载完才能播放,而不是边加载边播放,造成这个问题的原因是一些描述mp4文件信息的moov atom元数据默认放置在了视频文件的最后,而所有的播放器(包括独立的、网络化的——如浏览器)都需要这些信息来正确构建播放(比如视频分辨率到底是多少,视频到底有多长......)由此需要把这些信息想办法移动到mp4文件的前部,这样读取到这些信息后客户端播放器就可以搭起播放环境,后续只需要播放数据即可。能完成这项工作的工具有很多,这里介绍qt-faststart这个小程序。
qt-faststart简介
qt-faststart是一个由Mike Melanson (melanson@pcisys.net)写的开源程序,是一个命令行工具。你可能可以在很多地方找到它的源码,我一般是在FFmpeg的源码中拿,它通常放在FFmpeg源码的tools目录下,比如github仓库中的位置为https://github.com/FFmpeg/FFmpeg/blob/master/tools/qt-faststart.c。该程序只有一个源码文件,很小(不到13KB)。
qt-faststart编译与使用
要使用它需要先编译,这个程序能利用大多数编译工具实现编译,因为我一般在linux下使用,所以直接make tools/qt-faststart.c 即可在tools目录下产生出名为qt-faststart的可执行文件,然后把编译输出结果放置到系统搜索路径中即可以qt-faststart来进行调用使用了。
qt-faststart的使用十分简单,其调用格式为qt-faststart
:表示调整前的mp4文件路径
:表示调整后的输出mp4文件路径
mp4文件路径可以是绝对或者相对路径。
补充说明
mp4文件也可以替换为mov文件,因为这个工具其实最开始是为QuickTime格式视频文件编写的
mp4/mov 文件中的moov atom数据必须是非压缩的才能利用这个工具。
windows编译好的程序
在本站存了一份,供大家下载:http://www.az1314.cn/uploads/qt-faststart.rar
下载后解压 运行命令 qt-faststart.exe d:/1.mp4 d:/2.mp4 2.MP4就可以边下边播了!