我目前正在使用onPreviewCallback,因此我可以在预览时从相机捕获帧并通过http流式传输.
这工作但我发出一个命令开始录制,似乎我没有预览回调.
那么,如何保留预览回调,以便我可以将帧从表面发送到我的服务器并在设备上录制视频?
解决方法
我在
Android相机上工作了很长时间.但是,我记得
1)录制时不调用onPreviewCallback
在几个问题中提到了它:
Camera onPreviewFrame not called
How to show real time filtered camera preview while recording videos?
2)我看到它是在SipDroid和其他几个Android SIP客户端下载的处理(这是1 – 2年前,因此这种方法可能已经过时):
>创建了一个管道
>管道的接收套接字包装在FileDescriptor中并传递给MediaRecorder setOutputFile
>在一个线程中不断读取管道的发送套接字.
>这样您就可以收到写入文件的内容
>现在,问题是如何处理内容(因为,它是H.263或H.264编码并且可以与声音混合,如果你用声音录制视频).
>有一些启发式算法解析了内容(然而,这是屁股的痛苦)
3)您可以使用onPreviewFrame启动AudioRecorder并自行编码(使用ffmpeg或类似的东西)到mp4文件.这样您就不需要启动MediaRecorder录制.