Sto provando a prendere il fotogramma di anteprima generato dalla videocamera Android e passare il data[]
alla pipe di input ffmpeg per generare un video flv. Il comando che ho usato è stato:Fotocamera Android Cattura utilizzando FFmpeg
ffmpeg -f image2pipe -i pipe: -f flv -vcodec libx264 out.flv
Ho anche provato a forzare il formato di ingresso per yuv4mpegpipe
e rawvideo
ma senza successo ... Il formato predefinito del telaio anteprima generata da android-fotocamera è NV21
. Il modo in cui am invokin' ffmpeg è attraverso il Process API
e scrivendo l'anteprima incornicia data[]
al processo stdin
... La definizione onPreviewFrame()
è la seguente:
public void onPreviewFrame(byte[] data, Camera camera)
{
try
{
processIn.write(data);
}
catch(Exception e)
{
Log.e(TAG, FUNCTION + " : " + e.getMessage());
}
camera.addCallbackBuffer(new byte[bufferSize]);
}
processIn
è collegato al processo ffmpeg
stdin
e buffersize
è calcolato in base alla documentazione fornita per addCallbackBuffer()
. C'è qualcosa che sto sbagliando ...?
Grazie ...
si potrebbe spiegare come è stato richiamato il processo ffmpeg utilizzando l'API processo? – datayeah