Ho bisogno di decodificare un video in una sequenza di bitmap, in modo tale da essere in grado di modificarli e quindi comprimerli nuovamente in un file video in Android.Usa MediaCodec e MediaExtractor per decodificare e codificare video
Ho intenzione di gestirlo utilizzando getFrameAtTime
e salvandolo in una sequenza di immagini. Quindi posso modificare le immagini nella sequenza e ricollegarla a un film. Ma ho due problemi con questo:
- primo luogo, come ho letto, il
getFrameAtTime
è per la creazione di miniature e non garantirà la restituzione del frame corretto. Questo rende il video lento. - In secondo luogo, salvare le immagini e leggerle richiede molto tempo.
ho letto che il modo corretto di fare la decodifica è con MediaExtractor, questo va bene, ma ho solo esempi per renderlo direttamente a un surfaceView
. C'è un modo per me di convertire lo outputBuffer
in un bitmap?
Avrei bisogno di farlo funzionare con un livello API di 16 e superiore.
Ebbene il problema è che ho già visto questo sito, ma purtroppo devo farlo per API lvl 16. E anche se dice che ExtractMpegFramesTest.java richiede l'API 16, quando provo a crearlo ne servono almeno 17 ... Quindi non è un'opzione. –
Allora hai una battaglia in salita. Ha bisogno di lavorare in generale o è appena stato creato per un dispositivo specifico? (Verificherò in ExtractMpegFramesTest - Non pensavo ci fosse bisogno di qualcosa da 17+.) – fadden
Beh, questo è il problema che deve essere generico e api lvl 16 + ... Ho ottenuto la soluzione getFrameAtTime per lavorare senza salvare su png e accellerarlo in questo modo un bel po 'di volte, ma ancora potrei avere il problema che estrarrà alcuni fotogrammi due volte, il che renderebbe il video lento e non ho ancora Idea come potrei aggiungere audio ad esso. Quindi qualsiasi suggerimento per dividere il video in bitmap e creare un nuovo file video con audio sarebbe apprezzato, ma deve funzionare con 16+ –