No se pueden transmitir vídeos

Aquí está mi código de videoview:

Uri uri = Uri.parse(vidurl); MediaController mediaController = new MediaController(this); videoView.setMediaController(mediaController); videoView.requestFocus(); videoView.setVideoURI(uri); videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { @Override public void onPrepared(MediaPlayer mp) { videoView.start(); } }); 

Los vídeos que intento reproducir se almacenan en mi servidor. Se envían allí desde la misma aplicación, utilizando una cámara personalizada. Aquí está la captura de vídeo parámetros: (Sólo en caso de que algo estuviera mal con ellos, he intentado cada combinación, Formato VP8 hizo corriente, excepto la salida no tenía audio y se giró hacia los lados)

  mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER); mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA); mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); if (currentCameraId == Camera.CameraInfo.CAMERA_FACING_BACK) { mMediaRecorder.setOrientationHint(90); } else { mMediaRecorder.setOrientationHint(270); } mMediaRecorder.setVideoSize(list.get(sizex).width, list.get(sizex).height); mMediaRecorder.setVideoEncodingBitRate(1500000); mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264); mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC); mMediaRecorder.setVideoFrameRate(30); mMediaRecorder.setMaxDuration(15000); mMediaRecorder.setOutputFile(getVidFile().getAbsolutePath()); 

He estado tratando de resolver esto por mucho tiempo, pero ahora no tengo ideas. Me gustaría transmitir esos videos en un videoview. Pero en lugar de eso, tengo que esperar 10-20 segundos. Después de eso, el video se inicia o me da un error que el video no se puede reproducir.

Información Adicional:

El proyecto sdk mínimo es 18, pero puedo cambiarlo si eso me ayudará.

Mi dispositivo de prueba es Asus Zenfone 2 (5.0)

No probé con ningún otro dispositivo

Los videos se almacenan en el host linux de godaddy. Www.mydomain.com/videos/

La codificación de vídeo es h264 Baseline Profile

Moov átomo está en la parte superior (después de fytp (o algo así)) como se recomienda

Intenté usar bibliotecas de reproductores de vídeo de terceros como exomedia

Algunos videos funcionan, por ejemplo:

He comprobado que los videos de codificación. Está codificado en h264 PERFIL PRINCIPAL (de mi investigación, el perfil principal no es compatible con la mayoría de los dispositivos de Android, el perfil de línea de base se recomienda en su lugar) Y MOOV ATOM ESTÁ EN ÚLTIMA POSICIÓN. Pero este video juega muy bien … ¿dafuq?

EDIT: Propiedades de ese video toystory que funciona:

1

2

Y aquí hay un video capturado desde mi aplicación con los parámetros dados arriba (observe que el átomo moov está en el lugar correcto, pero esto todavía no funciona)

3

4

¿Qué protocolo de red se utiliza cuando el vídeo se transmite de servidor a aplicación? Quizás el protocolo de red que está utilizando no sea compatible con VideoView. VideoView sólo admite protocolos limitados. Según los documentos de android en "Formatos de medios compatibles":

Los siguientes protocolos de red son compatibles con la reproducción de audio y vídeo:

– RTSP (RTP, SDP)

–HTTP / HTTPS transmisión progresiva –HTTP / HTTPS transmisión en vivo proyecto de protocolo:

 MPEG-2 TS media files only Protocol version 3 (Android 4.0 and above) Protocol version 2 (Android 3.x) Not supported before Android 3.0 

–Nota: HTTPS no es compatible con Android 3.1.

  • Cómo jugar RTSP stream video (MPEG4, baseline) de una cámara con videoview de Android?
  • ¿Cómo obtener vídeo de la intención de la cámara y guardarlo en un directorio?
  • Corregir archivo 3GP después de la transmisión desde Android Media Recorder
  • WebView no reproducirá vídeo flash incorporado
  • SeekTo en VideoView
  • El comando FFMPEG para recortar y transponer vídeo sale ampliado en mala calidad
  • Android MediaPlayer seekTo no funciona
  • Compresión rápida de video en Android
  • Grabación de video en un buffer circular en Android
  • Error de MediaPlayer de Android (1, -2147483648) CFContent MP4 Video
  • Decodificación de flujo de vídeo en Android de DJI drone
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.