Marcas de tiempo de presentación incorrectas al buscar hacia atrás a través de vídeo MP4
Estoy usando MediaCodec
y MediaExtractor
para reproducir vídeo a tasas variables, tanto hacia delante como hacia atrás. El código está utilizando algo como SpeedControlCallback para establecer pausas inter-frame – alimentando el campo presentationTimeUs
desde los buffers de salida.
Esto funciona bien, el 99% del tiempo, sin embargo, parece que el códec AVC en el Samsung S6 ofrece tiempos de presentación incorrecta cuando se busca hacia atrás – están fijados en lo que el valor más alto era cuando se busca hacia adelante, si tiene sentido. Los datos de los buffers son correctos / cambian – simplemente no se corresponde con el tiempo de presentación fijo.
- No se puede reproducir este video. Android videoView mp4 grabado por el dispositivo Android
- Transmisión de vídeo de la cámara Android al servidor
- Descifrar audio / video sobre la marcha a MediaPlayer
- 06-16 12: 05: 46.802: E / chromium (15693): No se puede seleccionar el dispositivo de audio
- ¿Cómo puedo asegurar la correcta orientación de reproducción del video grabado?
El S6 puede manejar backward busca en archivos MP4 con una marca / ftype de avc1
, pero otros vídeos de marca H.264 que he probado ( mp42
, isom
) no funcionan el 100% del tiempo. Los mismos archivos funcionan bien en un Samsung S5, y en todos los otros dispositivos que he probado.
El códec registra esto:
09-15 11:16:21.611 2992-16618/? W/EXYNOS_VIDEO_DEC﹕ sCurrentTimestamp(6002033) is smaller than latestTimeStamp(7001744), uses latestTimeStamp
En cada búsqueda hacia atrás ( SEEK_TO_PREVIOUS_SYNC
), y proporcionará esa latestTimestampValue
errónea para todos los fotogramas clave.
¿Alguien ha encontrado un problema similar con el códec AVC en el Galaxy S6, o está en condiciones de ofrecer alguna solución (no hacky)?
- YouTubeAndroidPlayerAPI no puede reproducir algunos videos
- Reproducción de vídeo desde el directorio caché de la aplicación
- Android: cómo reproducir video mp4 desde la URL?
- Android - Integración de ffmpeg y android-ndk-r9c
- Configuración de encabezados para streaming de vídeo mp4 y reproducción de archivos con Exoplayer
- Vídeo remoto Android con Titanio
- Android webview html5 vídeo autoplay no funciona en android 4.0.3
- Cómo utilizar un solo jugador para los anuncios y el vídeo con google android Exoplayer
- Desempaquetar o "liberar" un MappedByteBuffer bajo Android
- ¿Cómo utilizar ContentObserver con RecyclerView?