Python将视频文件分成更小的部分

时间:2017-08-23 19:01:35

标签: python django video split views

我使用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
`   

1 个答案:

答案 0 :(得分:0)

我假设您正在使用带有MP4标头的H.264服务于现代www浏览器。

如果您将视频文件分成这样的部分,则第二部分将没有任何标题,因此无法在任何浏览器中播放。

问题是你为什么要这样做。 通常情况下,整个文件被提供给浏览器,浏览器通过HTTP部分文件检索获取所需的部分,现代浏览器足够聪明,只能获取所需的部分,假设视频文件已正确编码,用于此目的。