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:

Po pierwsze, kiedy to czytałem,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.

questionAnswers(2)

yourAnswerToTheQuestion