解决seafile视频播放慢 web必须加载完才能播放

发布于 / Python / Comments Off on 解决seafile视频播放慢 web必须加载完才能播放

前段时间搭建了一个seafile私有云网盘,体验不错,随后发现了问题,播放视频的时候特别卡顿。

blob.png

服务器配置网速是上行10Mbps,客户端配置是30Mbps下行,seafile使用的存储后端是阿里云OSS

内网与OSS连接速度测试:

blob.png

几乎快达到了1Gbps的速度。


客户都连接服务器速度测试(服务器端速度):

blob.png

可见,播放一般视频绰绰有余。

后来通过F12控制台发现,视频在客户端需要下载完毕才能开始播放。在网上找到了大佬的解决方法,是因为视频元信息存放在了视频文件的末尾,所以必须加载整个文件,读取到元信息,才能播放。

同时,找到了一个工具,叫做qt-faststart(点击即可下载Windows版本,可以把元数据移动到文件的开头,使得先加载开头,获取元数据,即可实现边加载边播放。

如果你有大量的视频需要转换,我这里写了个小python脚本,如果你在Windows下,把qt-faststart.exe复制到C:\Windows文件夹下,如果是linux,把编译好的文件复制到/bin文件夹下即可使用

#encoding:utf-8
import os

ORI_DIR = 'E:/BaiduNetdiskDownload/'
TRA_DIR = 'E:/FFOutput/'

for i in os.listdir(ORI_DIR):
  cmd = "qt-faststart %s%s %s%s" % (ORI_DIR, i, TRA_DIR, i)
  print cmd
  os.system(cmd)

这样处理过的视频就可以很快的打开,实现web视频边加载边播放

注意,如果提示

last atom in file was not a moov atom

可以使用

ffmpeg -i souce_file.mp4 -acodec copy -vcodec copy target_file_1.mp4

来解决

转载原创文章请注明,转载自: 斐斐のBlog » 解决seafile视频播放慢 web必须加载完才能播放
评论已关闭