2017-08-23 21 views
-1

大きなファイル(例えば1GB)を小さな部分にpythonで変換すると、私のプロジェクト(Python-Djangoを使ったWebアプリケーション)にぶつかっています。問題はパート1のみが再生され、残りのファイルは開かないということです。Python分割ビデオファイルを小さな部分に分割する

私はビデオデータの前にビデオ情報を指定する必要があると理解しましたが、私はその方法を知らないのです。 以下は私のコードです。誰かが大きなファイルを小さなファイルに分割する方法を教えてくれます。

[N:B]アップロードが、私はあなたが現代のWWW-にMP4ヘッダとH.264のようなものを提供していると仮定し

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

あなたはすでにそれをしましたが、それを行う方法を知りたいですか? – Goyo

+0

@ Goyo OPは、「私はビデオデータの前にビデオ情報を指定する必要があると理解していましたが、どうやってそれを知っているのか分かりません。 'と '残りのファイルは開けません'。彼らは明らかに彼らの問題を解決していない。 – Adi219

+0

@AdiCそうでなければ、彼らは尋ねないでしょう。私が言おうとしていることは、その質問が全く明確ではないということです。 – Goyo

答えて

0

を完了したとき、私はDjangoのビューからの映像を分割する必要がありますブラウザ。

ビデオファイルをこのような部分に分割すると、2番目の部分にヘッダーがないため、どのブラウザでも再生されません。

質問はあなたがこれをやっている理由です。 通常、ファイル全体がブラウザに配信され、ブラウザはHTTP部分ファイルの取得に必要な部分を取得します。現代のブラウザは、この目的のために正しくエンコードされたビデオファイルを必要とする部分のみを取得するほどスマートです。

+0

私はdjangoがサポートしていないビデオを探すためにファイルを部分的に要求する必要があります。私はファイルを小さな断片に分割し、必要な部分をロードすることで一時的に問題を解決すると思っていました@Jimmy Engelbrecht – Jops

関連する問題