我正在开发一个Mac应用程序,需要为主屏幕(桌面)提供HTTP Live Stream(仅最后2秒左右)。
我正在考虑以下过程:
- 使用 AVCaptureScreenInput 作为输入创建 AVCaptureSession (sessionPreset = AVCaptureSessionPresetPhoto)
- 将 AVCaptureVideoDataOutput 输出添加到 session
- 在 captureOutput:didDropSampleBuffer:fromConnection: 中捕获帧(采用 kCVPixelFormatType_32BGRA 格式),并将这些帧写入 ffmpeg 进程以进行分段(使用管道等),从而创建 MPEG-TS 和播放列表文件。
- 使用嵌入式 HTTP 服务器来提供分段文件和播放列表文件。
这是最好的方法吗?是否没有办法绕过 ffmpeg 部分对视频流进行编码和分段?
将原始帧传输到 ffmpeg 的最佳方法是什么?
最佳答案
这听起来是个好方法。您可以使用 ffmpeg 输出到流并使用 Apple 的分段工具对其进行分段。我相信 Apple 工具的复用率稍好一些,但这对您的用例来说可能并不重要。
关于objective-c - HTTP 直播 Mac 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15203673/