Im trying to process a video using Android’s MediaMetadataRetriever.
The output URI that is passed look like this:
file:/data/user/0/dk.camapp.app/cache/VID1749334064186617241.mp4
and checking the MetaData…
val retriever = MediaMetadataRetriever()
retriever.setDataSource(context, videoUri)
retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_FRAME_COUNT)
> 284 // frames exist !
METADATA_KEY_DURATION = 9547
METADATA_KEY_MIMETYPE = video/mp4
METADATA_KEY_HAS_VIDEO = true
METADATA_KEY_VIDEO_WIDTH = 4032
METADATA_KEY_VIDEO_HEIGHT = 3024
METADATA_KEY_BITRATE = 10171402
METADATA_KEY_VIDEO_CODEC_MIME_TYPE = video/avc
but when I try to access a frame:
retriever.getFrameAtIndex(0)
The video is empty??
java.lang.IllegalStateException: No frames from retriever
01:00:06.512 W at dk.camapp.core.domain.VideoProcessor.processVideo3(VideoProcessor.kt:128)
01:00:06.512 W at dk.camapp.core.CACamera.processVideo(CACamera.kt:46)
01:00:06.512 W at dk.camapp.core.CACamera.processVideo$default(CACamera.kt:41)
You need to sign in to view this answers