Попробуйте взять рамку предварительного просмотра, сгенерированную камерой android, и передайте data[]
на входной канал ffmpeg для создания FLV-видео. Команда, я использовал:Захват камеры Android с помощью FFmpeg
ffmpeg -f image2pipe -i pipe: -f flv -vcodec libx264 out.flv
Я также пытался заставить формат ввода в yuv4mpegpipe
и rawvideo
, но без успеха ... формат по умолчанию для предварительного просмотра кадра, сформированного андроида-камеры NV21
. Путь утра invokin' FFmpeg это через Process API
и написание предварительного просмотра кадры data[]
к процессу stdin
... onPreviewFrame()
определение следующим образом:
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
подключен к ffmpeg
процесса stdin
и buffersize
рассчитывается на основании документации, предоставленной для addCallbackBuffer()
. Есть ли что-то, что неправильно?
Спасибо ...
могли бы вы объяснить, как вы запустили процесс FFmpeg с помощью процесса апи? – datayeah