0

私はmp4ファイルの下にコードを提供します:

import os
from starlette.responses import FileResponse
return FileResponse(
            filename_out,
            media_type="video/mp4",
            filename=os.path.basename(filename_out)
        )

Firefox、Chrome、およびAndroidでは正常に動作します。残念ながら、IOS の AVPlayer (flutter video_player パッケージで使用) には対応していません。

このスレッドを見つけましたiOS 10 AVPlayer will not stream video from URL with no extension and with video/mp4 as content type

ただし、ファイル拡張子は明示的なファイル名で提供されており、ヘッダーについて混乱しています。誰か似たような経験と解決策はありますか?

編集:ファイル名は例えばvideo.mp4で、その後test.clientを使用すると次のようになります。

{'content-type': 'video/mp4', 'content-disposition': 'attachment; filename="video.mp4"', 
'content-length': '5909110', 'last-modified': 'Mon, 10 Feb 2020 21:23:10 GMT', 'etag': 'd4be0ee89866a2fdc6e2c2dc94c4bc21'} 

アタッチメントは、ストリームの有無にかかわらず正しくないと感じ、一般的なブラウザ プレーヤーと Android では動作しますが、IOS では動作しません。flutter パッケージ video_player を使用し、_controller.value.initialized は IOS では常に false ですが、starlette によって提供されない AWS からの直接ファイルを使用すると true になります。

 _controller = VideoPlayerController.network('urlWithMp4StreamOrAttachment',);

前もって感謝します、クリスチャン

4

1 に答える 1