Estoy tratando de crear una página web html5 en la que hay un pequeño video como 13s, convertí la versión flash de este video en formato 3: .ogv usando fireFogg, .webm usando firefogg también y .mp4 usando la aplicación HandBrake el script html Usé en mi página:
<video width="800" height="640" loop preload="false" autoplay controls tabindex="0">
<source src="xmasvideo/video.mp4" type="video/mp4" />
<source src="xmasvideo/M&P-Xmas 2.ogv" type="video/ogv" />
<source type="video/webm" src="xmasvideo/M&P-Xmas.webm" />
</video>
El video funciona bien en Chrome y FireFox, pero no funciona en absoluto ni en Safari en el escritorio ni en iPhone o iPad, la salida es simplemente una página en blanco que muestra los controles de la etiqueta de video pero no se carga nada
Tenga en cuenta que la versión de Safari que tengo admite video HTML5
iphone
ipad
safari
html5-video
mobile-safari
Khaled Al Hage Ismail
fuente
fuente
autoplay
: developer.apple.com/library/safari/documentation/AudioVideo/… ..playsinline
en la etiqueta de video?Respuestas:
Tuve el mismo problema con dispositivos Apple como iPhone y iPad, apagué el modo de bajo consumo y funcionó y también debes incluir un
playsinline
atributo en la etiqueta de video como este:Solo funcionó cuando se incluyó
playsinline
.fuente
playsInline
, en camelCase.Otra posible solución para sus futuros buscadores: (si su problema no es un problema de tipo mime).
Por alguna razón, los videos no se reproducirán en el iPad a menos que establezca la bandera de controles = "verdadero".
Ejemplo: esto funcionó para mí en iPhone pero no en iPad.
Y esto ahora funciona tanto en iPad como en iPhone:
fuente
autoplay
opción funcionó. Tengocontrols="false"
en mi código.controls="false"
es redundante;controls
en sí mismo es un booleano que cuando está presente activa los controles, y cuando no está presente no hay controles. Ver especificacionescontrols
es un atributo booleano, los únicos valores válidos son none, una cadena vacía o su propio nombre. Los valores verdaderos y falsos son incorrectos.Es posible que su servidor web no admita solicitudes de rango de bytes HTTP. Este es el caso del servidor web que estoy usando, y el resultado es que el widget de video se carga y aparece un botón de reproducción, pero hacer clic en el botón no tiene ningún efecto. - El video funciona en FF y Chrome, pero no en iPhone o iPad.
Lea más aquí en mobiforge.com sobre las solicitudes de rango de bytes, en el Apéndice A: Streaming para Apple iPhone :
Es posible que desee buscar en la web "iphone mp4 byte-range".
fuente
RangeResult.ofPath(finalPath, range, Some(mime))
y debería funcionar 2.7 y hacia arriba.Si sus videos están protegidos por un sistema de inicio de sesión basado en sesión, Safari no podrá cargarlos. Esto se debe a que Safari realiza una solicitud inicial para el video y luego entrega la tarea a QuickTime, que realiza otra solicitud. Dado que Safari contiene la información de la sesión, pasará la autenticación, pero QuickTime no.
Puede ver esto si ve el registro de acceso al servidor ... primero la solicitud de Safari, luego la solicitud de QuickTime. Otros navegadores solo realizan una solicitud desde el propio navegador.
Si este es su problema, es posible que deba modificar el acceso al video para usar tokens temporales o un acceso por tiempo limitado desde la solicitud original. Actualizaré esta respuesta si encuentro una solución más directa.
fuente
Para búsquedas en el futuro, así, que tenía un archivo MP4 que yo reducidos con el freno de mano utilizando
handbrake-gtk
desdeapt-get
, por ejemplosudo apt-get install handbrake-gtk
. En Ubuntu 14.04, elhandbrake
repositorio no incluye soporte para MP4 listo para usar. Dejé la configuración predeterminada, quité la pista de audio y genera un archivo * .M4V. Para aquellos que se preguntan, son el mismo contenedor, pero M4V se usa principalmente en iOS para abrir en iTunes.Esto funcionó en todos los navegadores excepto Safari:
Cambié el tipo de mímica entre
video/mp4
yvideo/m4v
sin efecto. También probé agregando elcontrol
atributo y nuevamente, sin efecto.Esto funcionó en todos los navegadores probados, incluidos Safari 7 en Mavericks y Safari 8 en Yosemite. Simplemente renombré el mismo archivo m4v (el archivo real, no solo el HTML) a mp4 y lo volví a cargar en nuestro CDN:
Creo que Safari está esperando un MP4 con nombre real. Ninguna otra combinación de archivo y tipo mimo funcionó para mí. Creo que los otros navegadores optan primero por el archivo WEBM, especialmente Chrome, aunque estoy bastante seguro de que la lista de fuentes debería seleccionar la primera fuente que sea técnicamente compatible.
Sin embargo, esto no ha solucionado el problema del video en los dispositivos iOS (iPad 3 "el nuevo iPad" y iPhone 6 probados).
fuente
Simplemente agregue un
muted
atributo y todo funcionará bien.La fuente de esta respuesta está aquí: https://webkit.org/blog/6784/new-video-policies-for-ios/
fuente
Descubrí que aunque Safari es compatible con HTML5 Video, Quicktime Player debe estar instalado para que esto funcione. En un sitio que construí que usa HTML5 Video, el usuario recibe una alerta cuando usa Safari, diciéndole que debe tener Quicktime instalado, de lo contrario solo podrá ver las transcripciones de video. Espero que esto ayude.
fuente
He visto problemas extraños con certificados SSL de "desarrollo" no confiables en los que Safari móvil servirá su página con mucho gusto, pero se niega a mostrar un video a un certificado SSL "falso" incluso si ha aceptado el certificado.
Para probar, puede implementar el video en otro lugar, o cambiar a http (para toda la página) y debería reproducirse.
fuente
Agregar 'playinline' funciona para mí en Iphone e Ipa si no le importa que su video esté silenciado.
Si no desea que su video se silencie, pero aún desea la reproducción automática, tal vez intente eliminar el atributo silenciado con js: Cómo reactivar el video html5 con un accesorio silenciado
fuente
A partir de iOS 6.1, ya no es posible reproducir videos automáticamente en el iPad. Según la documentación de Apple, la función de reproducción automática no funciona en Safari en todos los dispositivos ios, incluido el iPad:
"Apple ha tomado la decisión de deshabilitar la reproducción automática de video en dispositivos iOS, mediante implementaciones de atributos y de secuencias de comandos.
En Safari, en iOS (para todos los dispositivos, incluido el iPad), donde el usuario puede estar en una red celular y cobrar por unidad de datos, la precarga y la reproducción automática están deshabilitadas. No se carga ningún dato hasta que el usuario lo inicia. "
Puede leer más al respecto en esta documentación de Apple
fuente
Para un .mp4 esto funciona (safari móvil y de escritorio):
Lo
controls=”true”
mencionado en una publicación anterior no me importa, ya que Apple dice que solo use los controles por sí solo.Referencia: “Para usar audio o video HTML5, comience creando un elemento o, especificando una URL de origen para los medios e incluyendo el atributo de controles.
<video src="http://example.com/path/mymovie.mp4" controls></video>
"Fuente: https://developer.apple.com/library/content/documentation/AudioVideo/Conceptual/Using_HTML5_Audio_Video/Introduction/Introduction.html
En mis tratos (una pequeña digresión) : he descubierto que subir videos desde iPhone lo envía al servidor como .quicktime. Irónicamente, este es el problema al intentar reproducir el video desde el servidor en un safari. (móvil y escritorio).
Entonces, si (como yo) está experimentando un problema de .quicktime (o cualquier otra cosa que no sea .mp4) en safari , aquí hay una solución proporcionada por Apple. Tenga en cuenta que todavía tengo que probarlo yo mismo y no estoy tan contento con él de un vistazo, solo proporciono más información.
Referencia: "Recurrir al complemento QuickTime Existe una forma sencilla de recurrir al complemento QuickTime que funciona para casi todos los navegadores: descargue el archivo JavaScript prediseñado proporcionado por Apple, ac_quicktime.js, de HTML Video Example y inclúyalo en su página web insertando la siguiente línea de código en su encabezado HTML:
<script src="ac_quicktime.js" type="text/javascript"></script>
"Fuente: https://developer.apple.com/library/content/documentation/AudioVideo/Conceptual/Using_HTML5_Audio_Video/AudioandVideoTagBasics/AudioandVideoTagBasics.html#//apple_ref/doc/uid/TP40009523-CH2-SW6
Actualización: para cambiar el nombre de .quicktime a
.mov
la carga anterior al servidor (en el tipo de archivo base64 "data: video / mov;"), omita ac_quicktime.js. . . luego funcionará en la etiqueta de video html; Hackerdy Hack.fuente
Al usar este código, el video se reproducirá en todos los navegadores en Safari, así como con dispositivos ios ... Vayan todos (lo he usado y funciona bien)
'
fuente
Tuve un problema similar en el que los videos dentro de una
<video>
etiqueta solo se reproducían en Chrome y Firefox, pero no en Safari. Esto es lo que hice para solucionarlo ...Un truco extraño que encontré fue tener dos referencias diferentes a tu video, una en una
<video>
etiqueta para Chrome y Firefox, y la otra en una<img>
etiqueta para Safari. Dato curioso, los videos realmente se reproducen en una<img>
etiqueta en Safari. Después de esto, escriba un script simple para ocultar uno u otro cuando se use un determinado navegador. Así por ejemplo:Esto también ayuda a resolver el problema de un marco / borde negro delgado en algunos videos en ciertos navegadores donde se procesan incorrectamente.
fuente
Tuve este problema donde la reproducción de .mp4 en Safari no funcionaba, pero en otros navegadores estaba bien. El error que estaba viendo en la consola era: error media src not supported. En mi caso, resultó ser un problema de tipo MIME, pero no porque no se declaró como tipo MIME en IIS, sino que se declaró dos veces (una vez en IIS y también en un archivo web.config). Descubrí esto al intentar descargar el archivo .mp4 localmente en el servidor. Eliminé el archivo de configuración de la ubicación del contenido que estaba tratando de reproducir y solucionó el problema. Podría haber eliminado el tipo MIME del archivo web.config, pero en este caso no era necesario el archivo web.config.
fuente
Para IOS, utilice solo el archivo fuente mp4. He observado un problema en el último navegador Safari que el navegador Safari no puede detectar el archivo de origen correctamente y, debido a esto, la reproducción automática de video no funciona.
Veamos el siguiente ejemplo:
Como he usado mp4, webm en archivos fuente. Safari deosnt soporta webm pero aún en la última versión de safari, seleccionaría webm y falla la reproducción automática de video.
Entonces, para trabajar con la reproducción automática en todos los navegadores compatibles, le sugiero que primero verifique el navegador y, en función de eso, debe generar su html.
Entonces, para safari, use el siguiente html.
Para otros que no sean safari,
fuente
Tuve el mismo problema: asegúrese de que la URL del recurso de video provenga de un dominio seguro. Nuestro entorno de desarrollo es http mientras que la producción es segura. Debido a que se hizo referencia al video a través de una ruta relativa, no estaba funcionando en el desarrollo. Parece ser un problema que Apple requiere que el video sea seguro ...
fuente
está funcionando, pero MacOs recientemente tiene una política de reproducción automática para el usuario: https://webkit.org/blog/7734/auto-play-policy-changes-for-macos/ , resolví el mismo problema usando un botón para habilitar el sonido:
ejm:
fuente
Me he enfrentado al mismo problema. Porque el tamaño del fotograma de mi video era demasiado grande. es decir, Apple de 2248 px admite video H.264 Baseline Profile Level 3.0, hasta 640 x 480 a 30 fps. Tenga en cuenta que los fotogramas B no se admiten en el perfil de línea base. mira esto para más información
fuente
Lo que ayudó en mi caso fue dejar caer la pista de audio. Antes estaba en silencio, pero tenía que desaparecer por completo.
En ubuntu:
Y safari / escritorio comienza a reproducir el video
fuente
Para mi caso de uso, hubo dos cosas :
playsinline
;o /
fuente
Tuve exactamente el mismo problema, mi etiqueta de video HTML se reprodujo bien en Chrome y Mozilla, en Safari; aparecieron los controles pero el video estaba en blanco. Intenté jugar con todos los atributos anteriores, eliminar / agregar silenciado, playInline, etc. y nada funcionó. El problema también estaba en los servidores descritos aquí. Tuve esto - NO FUNCIONÓ:
y acabo de mover mi video a una biblioteca externa y ahora estoy bien en Safari, FUNCIONA bien:
fuente
Nada funcionó para mí, excepto comprimir el video a menos de 30 MB. Eso funcionó, pero con muy mala compresión.
fuente
Si alguien tiene el mismo problema, lo resolví habilitando el soporte Byte-Range en mi servidor. Parece que Safari requiere solicitudes de rango de bytes. En mi caso, uso NGINX y tuve que agregarlo
proxy_force_ranges on;
a mi archivo de configuración. ¡Gracias a esta respuesta !fuente