Użyj MediaCodec i MediaExtractor do dekodowania i kodowania wideo
Muszę dekodować wideo w sekwencję bitmap, aby móc je modyfikować, a następnie kompresować z powrotem do pliku wideo w Androidzie.
Planuję to zarządzać za pomocągetFrameAtTime
i zapisanie go do sekwencji obrazów. Następnie mogę modyfikować obrazy w sekwencji i kodować je z powrotem do filmu. Ale mam z tym dwa problemy:
getFrameAtTime
służy do tworzenia miniatur i nie gwarantuje zwrotu prawidłowej ramki. To sprawia, że film jest opóźniony.Po drugie, zapisywanie obrazów i odczytywanie ich zajmuje dużo czasu.Przeczytałem, że właściwym sposobem dekodowania jest MediaExtractor, to jest w porządku, ale mam tylko przykłady, które renderują go bezpośrednio dosurfaceView
. Czy jest jakiś sposób na konwersjęoutputBuffer
na mapę bitową?
Potrzebowałbym go, aby działał z poziomem api 16 i wyższym.