【发布时间】:2013-02-23 05:08:10
【问题描述】:
我正在尝试获取android相机生成的预览帧并将data[]传递给ffmpeg输入管道以生成flv视频。
我使用的命令是:
ffmpeg -f image2pipe -i pipe: -f flv -vcodec libx264 out.flv
我也尝试将输入格式强制为yuv4mpegpipe 和rawvideo,但没有成功...
android-camera 生成的预览帧默认格式为NV21。
调用 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() 提供的文档计算的。
有什么做错了吗...?
谢谢...
【问题讨论】:
-
你能解释一下你是如何使用进程api调用ffmpeg进程的吗?
-
永远不要尝试
camera.addCallbackBuffer(new byte[bufferSize]):您应该返回(即addCallbackBuffer())您从相机回调收到的数据数组。
标签: android ffmpeg android-camera