Android Kamera Capture mit FFmpeg

8

Ich versuche, den von der Android-Kamera erzeugten Vorschau-Frame zu nehmen und die data[] zu ffmpeg-Input-Pipe zu übergeben, um ein FLV-Video zu erzeugen. Der Befehl, den ich verwendet habe, war:

%Vor%

Ich habe auch versucht, das Eingabeformat auf yuv4mpegpipe und rawvideo zu setzen, aber ohne Erfolg ... Das Standardformat des von der Android-Kamera generierten Vorschaubildes ist NV21 . Die Art und Weise, wie 'ffmpeg aufgerufen wird, erfolgt über Process API und schreibt die Vorschaubilder data[] in den Prozess' stdin ... Die onPreviewFrame() Definition ist wie folgt:

%Vor%

processIn ist verbunden mit ffmpeg process stdin und buffersize wird basierend auf der für addCallbackBuffer() bereitgestellten Dokumentation berechnet. Gibt es etwas, was falsch ist ...?

Danke ...

    
Stryker33 07.03.2013, 20:07
quelle

1 Antwort

8

Kinda hat es perfekt funktioniert ... Der Fehler, der scheinbar passierte, hing mit dem vcodec des Bildstroms zusammen. Scheint, dass ffmpeg keine Möglichkeit hat, NV21 Format Bilder oder Bild-Stream zu dekodieren. Dazu musste der Vorschau-Frame NV21 in JPEG konvertiert werden, und da die Bilder in Echtzeit zum Prozess ffmpeg gestreamt werden mussten, musste die Konvertierung On the Fly sein. Die nächste zuverlässige Lösung für die On the Fly -Konvertierung in JPEG war wie folgt:

%Vor%

Und der ffmpeg -Befehl war:

%Vor%     
Stryker33 08.03.2013, 09:31
quelle

Tags und Links