我正在开发一个 Mac 应用程序,它需要为主屏幕(桌面)提供 HTTP 实时流(仅最后 2 秒左右)。
我正在考虑以下过程:
- 使用 AVCaptureScreenInput 作为输入创建 AVCaptureSession (sessionPreset = AVCaptureSessionPresetPhoto)
- 将 AVCaptureVideoDataOutput 输出添加到会话
- 在 captureOutput:didDropSampleBuffer:fromConnection: 中捕获帧(采用 kCVPixelFormatType_32BGRA 格式)并将它们写入 ffmpeg 进程以进行分段(使用管道或其他东西),从而创建 MPEG-TS 和播放列表文件。
- 使用嵌入式 HTTP 服务器来提供分段文件和播放列表文件。
这是最好的方法吗?是否没有办法绕过 ffmpeg 部分来编码和分割视频流?
将原始帧传输到 ffmpeg 的最佳方法是什么?