MP4视频仅在Jwplayer上完全加载后播放

时间:2014-10-23 20:28:01

标签: ffmpeg mp4 h.264 jwplayer

您好我最近使用FFMpeg将一些视频转换为MP4但是当我尝试流式传输此视频文件时,播放器需要完全加载文件,直到它开始播放,我试图找到一种方法让它开始从一开始就播放文件并继续加载。 我正在使用此FFMpeg命令进行转换:

ffmpeg -i input.mp4 -vcodec libx264 -vpre default -crf 28 -ac 1 -ar 44100 -b 284k -ab 70k -r 15 -s 640x360 output.mp4 2>&1

3 个答案:

答案 0 :(得分:4)

这种情况正在发生,因为mp4格式在文件的尾部有moov信息。在逐步下载和播放文件之前,闪存播放器需要该信息。因此,如果信息位于文件末尾,则必须完全下载,这非常糟糕,用户体验方面。

根据你的回答,你可以编译一个单独的工具,在ffmpeg -qt-faststart中提供后处理mp4文件,然后使用mp4文件进行视频流。

特别是,您可以下载ffmpeg的源代码副本,然后转到tools文件夹并运行:

make qt-faststart

然后你将在tools目录中找到一个名为qt-faststart的工具。然后你可以运行:

qt-faststart input.mp4 output.mp4

并将output.mp4放入您的流媒体文件夹,并在播放时逐步下载新的mp4文件。

或者另一种选择是在转码时间内执行此操作,如前面的答案所示,但命令行提供错误,应该是:

-movflags +faststart
在你的ffmpeg命令行中

。它将与转码相同。

所以你有两个最简单的解决方案,祝你好运!

答案 1 :(得分:2)

对于流式传输,moov原子需要位于文件的开头,而不是结尾。对于ffmpeg,请尝试添加:

-movflags faststart

答案 2 :(得分:0)

您始终可以使用此工具进行测试 - http://renaun.com/blog/2010/06/qtindexswapper-2/