2017-08-23 4 views
-1

Je suis coincé avec mon projet (application web utilisant Python-Django) sur la conversion d'un gros fichier (disons 1GB) en petites parties en utilisant python.Je pourrais créer le gros fichier en plus petites pièces, mais le problème est que la partie 1 est jouée et le reste des fichiers ne s'ouvre pas. J'ai compris que j'ai besoin de spécifier les informations vidéo avant les données vidéo, mais je ne sais pas comment. Ci-dessous est mon code et quelqu'un m'aider comment je pourrais diviser le gros fichier en petits fichiers.Python diviser le fichier vidéo en plus petites parties

[N: B] Je dois diviser la vidéo à partir des vues django lorsque le téléchargement est terminé

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

Alors vous l'avez déjà fait mais vous voulez savoir comment le faire? – Goyo

+0

@Goyo L'OP indique que «j'ai compris j'ai besoin de spécifier les informations vidéo avant les données vidéo, mais je ne sais pas comment. 'et 'le reste des fichiers ne s'ouvrira pas'. Ils n'ont clairement pas résolu leur question. – Adi219

+0

@AdiC Bien sûr, sinon ils ne le demanderaient pas. Ce que j'essaie de dire, c'est que la question n'est pas claire du tout. – Goyo

Répondre

0

Je suppose que vous êtes au service de quelque chose comme H.264 avec un en-tête MP4 à un www- moderne navigateur.

Si vous découpez des fichiers vidéo dans des parties comme celle-ci, la deuxième partie n'aura aucun en-tête et ne sera donc pas lue dans un navigateur.

La question est de savoir pourquoi vous faites cela du tout. Normalement, le fichier entier est servi au navigateur et le navigateur obtient les parties dont il a besoin avec la récupération partielle de fichiers HTTP, les navigateurs modernes sont assez intelligents pour obtenir uniquement les parties dont ils ont besoin.

+0

J'ai besoin d'une demande partielle de fichiers pour rechercher la vidéo que django ne supporte pas et je suis sur un calendrier serré.Alors je pensais diviser les fichiers en petits morceaux et le chargement de la partie nécessaire résoudrait mon problème temporairement @Jimmy Engelbrecht – Jops