2017-08-23 1 views
1

Je travaille avec Django et j'ai un modèle comme celui-ci:Django et vidéo HTML5 - balises source sont sur Safari allé

{% load formatting_tags %} 
{% load staticfiles %} 

<div class="utility-modal utility-modal__medium modal-dialog"> 
    <div class="modal-content"> 
     <div class="modal-content--header"> 
      <h4 class="modal-content--header--title">{{ education_modal_title }}</h4> 
      <button class="modal-content--header--action icon-close" data-dismiss="modal" title="Close"></button> 
     </div> 
     <div class="modal-content--body"> 
      <video width="100%" controls="true" autoplay poster="{% static poster_url %}" id="video1"> 
       <source src="{% static video_ogg_url %}" type="video/ogg; codecs=theora, vorbis"> 
       <source src="{% static video_url %}" type="video/mp4; codecs=avc1.42E01E,mp4a.40.2"> 
       <source src="{% static video_webm_url %}" type="video/webm; codecs=vp8, vorbis"> 
       <p>Your browser does not support the video tag.</p> 
      </video> 
     </div> 
     <div class="modal-content--footer"> 
      <button onclick="document.location='{{ button_page_link }}'" class="btn btn__primary btn__block">Go to page</button> 
     </div> 
    </div> 
</div> 

Les urls vidéo sont transmises sous forme de variables de la vue. Cela fonctionne très bien sur Chrome et Firefox, mais pas sur Safari. Sur Safari, les trois balises source de la vidéo sont simplement supprimées.

Est-ce que quelqu'un sait quel pourrait être le problème?

Répondre

0

Il y a quelques bugs connus à ce sujet. Essentiellement, ce HTML5 envoie des données sous forme de blocs au lieu d'une requête HTTP complète qui inclura un en-tête de plage d'octets décrivant la vidéo.

Safari ne prend pas en charge les blocs, nécessite les en-têtes de gamme d'octets. Actuellement, Django ne prend pas en charge les en-têtes d'octets. La solution consiste à héberger les vidéos sur Apache ou NGINX qui prend en charge l'en-tête de la plage d'octets, et avez-vous lier le src à l'autre site au lieu de local sur le Django.

Voici le bug. https://code.djangoproject.com/ticket/22479
https://github.com/jooby-project/jooby/issues/523