AVFoundation捕获视频iOS sdk`AVCaptureMovieFileOutput`并在服务器上写入

Bun*_*ylm 5 iphone avfoundation live-streaming ios

我知道有很多与此主题相关的问题,但没有找到可靠的解决方案以便发布新的.

iOS SDK使用AVFoundation框架捕获视频.

遵循的步骤:

第一步 :

在此输入图像描述

第二步 :

组装对象(麦克风或摄像机)以表示输入和输出,并使用实例AVCaptureSession来协调它们之间的数据流.

  • AVCaptureDevice表示输入设备的实例,例如相机或麦克风.
  • AVCaptureInput从输入设备配置端口的具体子类的实例
  • AVCaptureOutput用于管理电影文件或静止图像输出的具体子类的实例.

第三步: 为了向用户显示摄像机正在录制的内容,使用了实例AVCaptureVideoPreviewLayer

问题

我正在将输出视为视频文件,因此将输出设置为AVCaptureMovieFileOutput并将电影数据保存到文件中.

[aMovieFileOutput startRecordingToOutputFileURL:fileURL recordingDelegate:<#The delegate#>];
Run Code Online (Sandbox Code Playgroud)

但是我想直接在服务器上写这个数据(如果我在会话运行时尝试读取这个url文件显示'0'大小.)这样服务器就可以执行合适的任务,以便实现实时流.

那么我有什么办法可以AVCaptureMovieFileOutput不断阅读.

谢谢

mor*_*lan 0

检查此答案中的示例:https ://stackoverflow.com/a/5601041/1576274

本质上,您不想使用 AVCaptureMovieFileOutput,您想使用 AVCaptureVideoDataOutput 的不同子类,例如 AVCaptureVideoDataOutput。然后创建一个委托来从 AVCaptureVideoDataOutput 实例接收缓冲区。

请参阅此处的这些文档:https://developer.apple.com/library/mac/documentation/AVFoundation/Reference/AVCaptureVideoDataOutputSampleBufferDelegate_Protocol/Reference/Reference.html