AVCaptureVideoDataOutput

AVCaptureVideoDataOutput

我知道有许多与此主题相关的问题,但找不到可靠的解决方案,因此无法发布新的问题。

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

已执行的步骤:

第一步:

第二步:

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

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

  • 第三步:
    为了向用户显示摄像机正在记录什么,使用了AVCaptureVideoPreviewLayer的实例

    问题

    我正在将输出视为视频文件,因此将输出设置为AVCaptureMovieFileOutput并将电影数据保存到类似文件中。
    [aMovieFileOutput startRecordingToOutputFileURL:fileURL recordingDelegate:<#The delegate#>];
    

    但是我想直接在服务器上写入此数据(如果我尝试在 session 运行时显示“0”大小时读取此url文件。)以便服务器可以执行适当的任务,以便可以实现实时流式传输。

    所以我有什么办法可以连续读取AVCaptureMovieFileOutput

    谢谢你

    最佳答案

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

    本质上,您不想使用AVCaptureMovieFileOutput,而是想使用AVCaptureVideoDataOutput的另一个子类,例如AVCaptureVideoDataOutput。然后创建一个委托(delegate)以从您的AVCaptureVideoDataOutput实例接收缓冲区。

    请在此处引用这些文档:https://developer.apple.com/library/mac/documentation/AVFoundation/Reference/AVCaptureVideoDataOutputSampleBufferDelegate_Protocol/Reference/Reference.html

    10-08 15:44