Python将视频文件分割成更小的部分
我的项目(使用Python Django的web应用程序)一直在使用Python将大文件(比如1GB)转换为小部分。我可以将大文件创建为小部分,但问题是只播放了第1部分,其余文件无法打开 我知道我需要在视频数据之前指定视频信息,但我不知道如何指定。 下面是我的代码,有人帮助我如何将大文件拆分成小文件 [N:B]上传完成后,我需要从django视图中分割视频Python将视频文件分割成更小的部分,python,django,video,split,views,Python,Django,Video,Split,Views,我的项目(使用Python Django的web应用程序)一直在使用Python将大文件(比如1GB)转换为小部分。我可以将大文件创建为小部分,但问题是只播放了第1部分,其余文件无法打开 我知道我需要在视频数据之前指定视频信息,但我不知道如何指定。 下面是我的代码,有人帮助我如何将大文件拆分成小文件 [N:B]上传完成后,我需要从django视图中分割视频 def video_segments(video): loc = settings.MEDIA_ROOT + '/' + form
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
`
def视频片段(视频):
loc=settings.MEDIA_ROOT+'/'+格式(video.video_文件)
文件类型=格式(video.video\u文件).split(“.”)
数据=无
i=0
开始索引=0
结束索引=1024000
文件=路径(loc)
size=file.stat().st\u size
文件=打开(loc,“rb”)
而end_索引<大小:
i=i+1
file.seek(开始索引)
字节=file.read(结束索引-开始索引)
newfile=open(settings.MEDIA_ROOT+“/”+文件类型[0]+格式(i)+“+文件类型[1],“wb”)
newfile.write(字节)
开始索引=结束索引+1
结束索引=结束索引+1024000
`
我假设您正在为现代www浏览器提供类似H.264的MP4头文件
如果将视频文件分割成这样的部分,则第二部分将没有任何标题,因此不会在任何浏览器中播放
问题是你为什么要这么做。
通常,整个文件都提供给浏览器,浏览器通过HTTP部分文件检索获得所需的部分,现代浏览器足够聪明,只要视频文件编码正确,就可以只获取所需的部分。那么你已经做到了,但你想知道如何做到吗?@Goyo OP表示“我知道我需要在视频数据之前指定视频信息,但我不知道如何。”“其余文件将无法打开”。他们显然还没有解决他们的问题。@AdiC当然,否则他们就不会问了。我想说的是,这个问题一点也不清楚。我需要部分文件来查找django不支持的视频,而且我的日程安排很紧。所以我认为将文件分成小块并加载必要的部分可以暂时解决我的问题@Jimmy Engelbrecht