我正在开发一个应用程序,用户上传视频并使用jwplayer,jplayer,flowplayer等将其播放回浏览器.有些视频立即播放,而其他视频则等到整个视频文件下载完毕.
我正在使用ffmpeg将视频转换为mp4格式.
以下是我尝试的其中一个视频文件的一些详细信息.
General Complete name : 429183132058337290450_AutoFF.mp4 Format : MPEG-4 Format profile : Base Media Codec ID : isom File size : 10.2 MiB Duration : 24s 333ms Overall bit rate : 3 501 Kbps Video ID : 1 Format : AVC Format/Info : Advanced Video Codec Format profile : High@L4.1 Format settings, CABAC : Yes Format settings, ReFrames : 3 frames Codec ID : avc1 Codec ID/Info : Advanced Video Coding Duration : 24s 333ms Bit rate mode : Variable Bit rate : 3 351 Kbps Width : 1 024 pixels Height : 560 pixels Display aspect ratio : 16:9 Frame rate mode : Constant Frame rate : 30.000 fps Color space : YUV Chroma subsampling : 4:2:0 Bit depth : 8 bits Scan type : Progressive Bits/(Pixel*Frame) : 0.195 Stream size : 9.72 MiB (96%) Language : Japanese
Aleks G.. 7
我也有一些MP4视频的问题.我正在将上传的视频转换为mp4(h.264 + aac)并且它们不会缓冲.原因是此格式包含文件末尾播放所需的一些重要元数据,因此必须在播放开始之前加载整个文件.解决方案是使用一个名为qt-faststart
(https://github.com/danielgtaylor/qtfaststart)的小程序来转换结果.此程序将此元数据重定位到文件的开头,从而可以进行渐进式下载播放.
我也有一些MP4视频的问题.我正在将上传的视频转换为mp4(h.264 + aac)并且它们不会缓冲.原因是此格式包含文件末尾播放所需的一些重要元数据,因此必须在播放开始之前加载整个文件.解决方案是使用一个名为qt-faststart
(https://github.com/danielgtaylor/qtfaststart)的小程序来转换结果.此程序将此元数据重定位到文件的开头,从而可以进行渐进式下载播放.
ffmpeg
与-movflags +faststart
选项一起使用.这会将moov
原子重新定位到文件的开头,从而允许客户端开始播放,而无需先完全下载文件.
您可以在编码命令中使用它,也可以将它与现有文件一起使用,只需重新复用:
ffmpeg -i input.mp4 -c copy -movflags +faststart output.mp4