Ciao esperti video Android :)Come posso acquisire video a bassa risoluzione su Android in modo affidabile su una gamma di dispositivi?
Sto sviluppando un'applicazione Android che consente all'utente di acquisire video e caricarlo su un server remoto (è più complicato di così, ma il resto dell'app non è importante). A causa del requisito di caricamento, è importante che il video abbia una dimensione ragionevole, quindi non ad altissima risoluzione. Diciamo un massimo di 680x480 o 10Mb/minuto. Questo non è un problema con i dispositivi Apple.
Ho avuto quello che può essere descritto come un incubo completo cercando di acquisire video a un bitrate ragionevolmente basso in modo affidabile su una gamma di dispositivi Android.
A quanto mi risulta ci sono due modi di catturare video su Android:
1) con la/Camera API Media Recorder
2) Con l'intento di aprire l'applicazione telecamere di acquisizione video
Opzione 1) offre la massima flessibilità e ci consente di modificare facilmente la risoluzione di acquisizione. Tuttavia, l'API della videocamera Android NON è affidabile su una vasta gamma di dispositivi, e ho ottime informazioni (anche da parte di qualcuno che ha collaborato con Google su questo problema) che se acquisisci video utilizzando questa API, si bloccherà su un buon 50% di i dispositivi là fuori. C'è una ragione per cui Zoom Camera FX usa un'intenzione per l'acquisizione video. Zoom Camera (app diversa) sembra utilizzare Media Recorder, ma ha un sacco di recensioni negative per il video che si blocca o non funziona.
L'opzione 2) funziona bene su una gamma di dispositivi, poiché utilizza l'applicazione integrata nel dispositivo. Il problema è che non hai alcun controllo sulla risoluzione, c'è un suggerimento sulla qualità dell'Intent, ma l'app della fotocamera normalmente la ignorerà. Il mio Samsung Galaxy S3 registra video per impostazione predefinita a circa 2 Mb/s. Questa è una risoluzione troppo alta. L'applicazione integrata può ovviamente modificare la risoluzione, ma ciò dipende dall'azione dell'utente che è difficile da controllare.
Capisco che potrei usare una libreria come ffmpeg per cambiare la risoluzione del video dopo l'acquisizione. Tuttavia questo mi impone di compilare la libreria per Android, e inoltre sono stato informato che per poter utilizzare legalmente i codec di codifica/codifica sul dispositivo devi pagare una licenza che ammonta a circa $ 1 per copia dell'app. Poiché questa app sarà gratuita, questa non è un'opzione.
Quindi è dove sono. Ho cercato a lungo e in alto le risposte, ma non riesco a capire come catturare video a bassa risoluzione in modo affidabile utilizzando Android.
Qualsiasi aiuto molto apprezzato!
Matthew
Hai trovato un modo per aggirare i problemi? Sto provando l'opzione 2 e ho bloccato cercando le risposte .... – Salmaan