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:
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:
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 ...
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:
Und der ffmpeg
-Befehl war:
Tags und Links android android-camera ffmpeg