Проблемы с воспроизведением mp4 на apple на сайте django

Я создаю сайт на Django. Мои пользователи могут записывать видео, а затем другие могут видеть эти видео.

Запись осуществляется с помощью javascript:

const mimeType = 'video/mp4';
shouldStop = false;
const constraints = {
    audio: {
        echoCancellation: true,
        noiseSuppression: true,
    },
    // audio: true,
    video: {
        width:  480,
        height:  480,
        facingMode: 'user',
    },
};
const stream = await navigator.mediaDevices.getUserMedia(constraints);

    const blob = new Blob(recordedChunks, {
        type: mimeType
    });

И отправлено в представление django:

 let response = await fetch("/send-video/", {
    
    method: "post",
    body: blob,           
    headers: {
        'Content-Type': 'application/json',
        'Accept': 'application/json',
        "X-CSRFToken":csrftoken,
    },
}).then( ... )

По моему мнению

if request.method == 'POST':
    user = request.user
    file_name = f"{user}.mp4"
    if (len(sys.argv) >= 2 and sys.argv[1] == 'runserver'):
        file_path = file_name
    else:
        file_path = f"{your_media_root}temp/{file_name}"
    webm_bytes = bytes(request.body)
    video_file = open(file_path, "wb")
    video_file.write(webm_bytes)

    if mimetypes.guess_type(file_path)[0].startswith('video/mp4'):
        print(mimetypes.guess_type(file_path))
        video_file.close() 
    else: 
        video_file.write(b"")     
        video_file.close() 

Теперь я могу сохранить эти файлы в поле модели django. Я использую django-private-storage, чтобы убедиться, что только пользователи с правильной аутентификацией могут просматривать файлы. django-private-storage использует FileReponse для воспроизведения видео. и генерирует шаблон с:

<video controls="" autoplay="" name="media">
     <source src="http://127.0.0.1:8000/play-job-video/" type="video/mp4">
 </video>

Все работает нормально в любом браузере на android. Я могу записывать видео на Apple. Но я не могу воспроизвести ни одно видео на Apple. Я не уверен, связано ли это с iOS или Safari

Я не знаю, как изменить шаблон файлаResponse

Я пытался изменить кодеки mimeType, но безрезультатно.

Вернуться на верх