2017-12-29 27 views
1

私はすぐにリモートWebMファイルをMP4に変換しようとしています。これはディスクに何も書き込まなくても起こります。さらに、できるだけ早く結果をストリーミングできることは素晴らしいことです。すぐにMP4としてWebMを変換してください

これは私のフラスコ機能で実際の変換がないため、ストリーミングのアイデアを得ることができます。

@app.route("/stream/mp4") 
def as_mp4(): 
    url = "http://video.webmfiles.org/big-buck-bunny_trailer.webm" 
    r = requests.get(url, stream=True) 

    def stream(): 
     # convert it here 
     for chunk in r.iter_content(chunk_size=1024): 
      yield chunk 
     # end for 
    # end def 
    return Response(stream(), mimetype="video/mp4") 
# end def 
+0

バイナリストリームでffmpegとpipeを使用できます。 – user1767754

+0

'ffmpeg'はURLから直接読み込んでstdoutに書き込みますが、シーク可能な出力が必要なのでMP4フォーマットに問題があるかもしれません。 Matroska(MKV)形式で動作するはずです。 – mhawke

答えて

1

期待した結果が得られません。 MP4は生の/チャンクされたエレメンタリ・ストリーム(mdatボックス内)を解析するために使用される "インデックス"(moovボックスと呼ばれる)を使用します。このインデックスには各フレームの長さとサイズが含まれているため、最後のフレームが処理されるまでインデックスは使用できません。したがって、クライアントにデータを送信しても、クライアントはビデオ全体が受信されるまでビデオを再生できません。

関連する問題