Android-Kamera-Aufnahme mit FFmpeg

Bin tryin' zu nehmen Vorschaubild generiert, die von der android-Kamera, und übergeben Sie die data[] zu ffmpeg input pipe generieren, die eine flv-video.
Der Befehl, den ich verwendet wurde, war :

ffmpeg -f image2pipe -i pipe: -f flv -vcodec libx264 out.flv

Habe ich auch versucht zu zwingen, die input-format zu yuv4mpegpipe und rawvideo aber ohne Erfolg...
Das Standard-format der Vorschau-frame erzeugt durch android-Kamera ist NV21.
Die Art und Weise bin invokin' ffmpeg ist durch die Process API schreiben und die Vorschau auf die Bilder data[] der Prozess stdin...
Die onPreviewFrame() definition ist wie folgt :

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 verbunden ist, um die ffmpeg Prozess stdin und buffersize berechnet auf der Grundlage der Dokumentation für addCallbackBuffer().
Gibt es etwas, das bin doin' falsch...?

Dank...

  • könnten Sie erklären, wie Sie aufgerufen wird, der ffmpeg-Prozess mit der Prozess-api?
  • Versuchen Sie niemals camera.addCallbackBuffer(new byte[bufferSize]): sollten Sie zurückkehren (d.h. addCallbackBuffer()) die Daten - array, das Sie erhalten von der Kamera Rückruf.
InformationsquelleAutor Stryker33 | 2013-03-07
Schreibe einen Kommentar