objective-c - HTTP 直播 Mac 应用程序

标签 objective-c cocoa ffmpeg avfoundation http-live-streaming

我正在开发一个Mac应用程序,需要为主屏幕(桌面)提供HTTP Live Stream(仅最后2秒左右)。

我正在考虑以下过程:

  1. 使用 AVCaptureScreenInput 作为输入创建 AVCaptureSession (sessionPreset = AVCaptureSessionPresetPhoto)
  2. 将 AVCaptureVideoDataOutput 输出添加到 session
  3. 在 captureOutput:didDropSampleBuffer:fromConnection: 中捕获帧(采用 kCVPixelFormatType_32BGRA 格式),并将这些帧写入 ffmpeg 进程以进行分段(使用管道等),从而创建 MPEG-TS 和播放列表文件。
  4. 使用嵌入式 HTTP 服务器来提供分段文件和播放列表文件。

这是最好的方法吗?是否没有办法绕过 ffmpeg 部分对视频流进行编码和分段?

将原始帧传输到 ffmpeg 的最佳方法是什么?

最佳答案

这听起来是个好方法。您可以使用 ffmpeg 输出到流并使用 Apple 的分段工具对其进行分段。我相信 Apple 工具的复用率稍好一些,但这对您的用例来说可能并不重要。

关于objective-c - HTTP 直播 Mac 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15203673/

相关文章:

objective-c - 没有 NavigationBar 的 UINavigationController

ios - 如何动态准备选择器以与respondsToSelector匹配

iphone - 使用正则表达式在 Xcode 中查找/替换

objective-c - 为什么我不能在 iOS 中删除 NSMutableArray 的所有对象?

android - cvCreateVideoWriter (OpenCV 2.2 + FFMPEG)

video - 哪些视频编解码器适用于 Google Chromebook

iphone - 应用程序加载时 iOS 内存泄漏

cocoa - 显示与 setNeedsDisplay

objective-c - 打开和关闭 window

python - Windows 视频播放器无法播放 ffmpeg 中裁剪的视频