我使用python将我的项目(使用Python-Django的Web应用程序)转换为将大文件(比如1GB)转换为小部件。我可以将大文件创建为更小的部分,但问题只是第1部分播放,其余文件不会打开。
我知道我需要在视频数据之前指定视频信息,但我不知道如何。 下面是我的代码,有人帮助我如何将大文件拆分成较小的文件。
[N:B]我需要在上传完成后从django视图中分割视频
def video_segments(video):
loc = settings.MEDIA_ROOT + '/' + format(video.video_file)
filetype = format(video.video_file).split(".")
data = None
i = 0
start_index = 0
end_index = 1024000
file = Path(loc)
size = file.stat().st_size
file = open(loc, "rb")
while end_index < size:
i=i+1
file.seek(start_index)
bytes = file.read(end_index-start_index)
newfile = open(settings.MEDIA_ROOT+"/"+filetype[0]+format(i)+"."+filetype[1],"wb")
newfile.write(bytes)
start_index = end_index + 1
end_index = end_index + 1024000
`
答案 0 :(得分:0)
我假设您正在使用带有MP4标头的H.264服务于现代www浏览器。
如果您将视频文件分成这样的部分,则第二部分将没有任何标题,因此无法在任何浏览器中播放。
问题是你为什么要这样做。 通常情况下,整个文件被提供给浏览器,浏览器通过HTTP部分文件检索获取所需的部分,现代浏览器足够聪明,只能获取所需的部分,假设视频文件已正确编码,用于此目的。