2017-02-26 8 views
0

私は自分のローカルホスト上にあるビデオの後半をダウンロードしたいと思っています。 Rangeヘッダ)httpのRangeヘッダーを使用してビデオの後半をダウンロード

が、私はVLCでファイルを開くと、何も起こりません(そう、それは動作しません)

どのように私はmp4ファイルの一部をダウンロードし、まだそれを見ることができることができますか?

import urllib2 

file_url = 'http://127.0.0.1:8080/vid.mp4' 

result = urllib2.urlopen(file_url) 
cont_len = result.headers['content-length'] 
req = urllib2.Request(file_url) 
req.headers['Range'] = 'bytes=%s-%s' % (str(int(int(cont_len)/2)), str(int(cont_len))) 

f = urllib2.urlopen(req) 
File = open('2ndhalf.mp4', 'w') 
File.write(f.read()) 

編集:私の意図は速い動画に動画の一部をダウンロードするには、全体のビデオをダウンロードして、あなたは完全なmoovをダウンロードする必要があります

+0

@falsetruとにかくmp4ファイルのヘッダを作ることができますか? –

答えて

1

それをカットすることではありません。そこから中間フレームへのオフセットを取得し、そのフレームをダウンロードして終了することができます(フレームが順番にあると仮定し、可能ですが、mp4では必須ではありません)。次に、保持するエントリだけを使用してmoovを書き換え、新しいチャンクオフセットに合わせてすべてのオフセットが調整されていることを確認します。

+0

私は私の質問を編集しました、私の意図は完全なビデオをダウンロードしないことです、私がやっていることの一部はできるだけ早く物事を維持することです –

+0

それは答えを変更しません。 'mov'なしで' mdat'は無意味です。 – szatmary

+0

'moov'を探しながら、最初からダウンロードを開始します。そこにない場合は、httpリクエストをキャンセルして新しいボックスを作成することで、ボックスをスキップすることができます。ファイル内で検索することなく、いくつかのリクエストをせずに求めていることはできません。 – szatmary

関連する問題