2011-02-12 11 views
11

Estoy bastante perplejo sobre este tema.¿Por qué el video mp4 se reproduce bien en el iPad, no en el iPhone?

Tengo una gran biblioteca de archivos de video H.264 mp4 que necesito para jugar en iOS. Originalmente, mi objetivo era solo iPad, pero los requisitos han cambiado y ahora necesito incluir iPhone. Pero me he dado cuenta de que mi iPod Touch, que tiene exactamente la misma versión de OS e ID de compilación que mi iPad, no reproducirá los mismos archivos que he estado utilizando con éxito en el iPad. Lo confirmé con un colega que también tiene un iPhone y un iPad con la misma versión & compilación. También he visto exactamente el mismo comportamiento en el simulador de iPad, pero hasta ahora supuse que era una peculiaridad del simulador. Ahora no estoy tan seguro.

Los mp4s están codificados con los siguientes ajustes:

AVC Coding 640x360, Millions 
AAC, Stereo (L R), 44.100 kHz 
29.97 fps 
693.35kb/s 

He tratado de cargar el material de múltiples servidores e incluso a nivel local y no parece hacer una diferencia.

Si exporto estos archivos de QuickTime como archivos m4v, funcionan bien en todos los dispositivos y simuladores, por lo que mi instinto me dice que esta es una configuración de codificador que me falta.

Para eliminar todos los demás factores posibles, he intentado llamar los archivos de video directamente desde la barra de direcciones de Mobile Safari. He confirmado esto está sucediendo en el siguiente juego se basa:

Dispositivos:

  • 4.2.1 (8C148) - reproduce en el iPad, no en el iPhone.

Simuladores:

  • 3,2 (7W367a) - juega bien en el iPad (sin versión para iPhone)
  • 4.0.2 (8A400) - no juega iPhone (sin versión para iPad)
  • 4.1 (8B117) - no juega iPhone (sin versión para iPad)
  • 4,2 (8C134) - no juega iPhone o iPad

He pasado por los registros de cambios de iOS en busca de cualquier cosa que pueda explicar por qué un descompresor de vídeo debería funcionar en una versión y no otro y no puedo encontrar cualquier cosa que salta a la vista.

Alguien tiene alguna idea de lo que podría estar detrás de esto y cómo puedo solucionarlo?

+2

+1 para una buena pregunta bien estructurada con toda la información que podamos necesitar. Al menos creo que podríamos necesitar. No tengo idea de cómo arreglarlo – makdad

+1

pertenece a http://apple.stackexchange.com/ – kennytm

+1

@KennyTM No, no es así. Lea las preguntas frecuentes de Apple SE. Las preguntas de programación/desarrollador no deben ir allí. – ceejayoz

Respuesta

5

Asegúrese de que su codificador no esté utilizando las funciones H.264 no disponibles en iOS. Creo que todos los dispositivos con iOS soportan 3.0 Baseline, todo menos la primera generación admite 3.1 Baseline y el 3.1 Main más reciente. Wikipedia tiene un list of differences entre los diferentes perfiles.

información algo más detallada sobre el apoyo dispositivos iOS de los here está disponible, pero las especificaciones oficiales tecnología para cada dispositivo enumera sus capacidades particulares.

+0

Genial.No estoy seguro de qué versión estábamos usando antes (cuando hice esta pregunta), pero cuando cambiamos a Baseline 2.1, se estrelló dos iPod Touch de segunda generación, nunca antes visto: el video se congeló en un marco específico y luego, poco tiempo después (incluso si la aplicación se cerró), todo el dispositivo se congeló y requirió un restablecimiento completo. Investigaré e informaré (y con un poco de suerte marcaré como respondí). ¡Gracias! – Andrew

+0

La publicación de mi blog sobre los parámetros del codificador para ffmpeg + x264 muestra líneas de comando específicas y contiene información de perfil que podría serle útil. http://www.modejong.com/blog/post9_encoding_h264_for_ios_with_main_and_high_profile/index.html – MoDJ

Cuestiones relacionadas