问题标签 [avcapturemoviefileoutput]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
41 浏览

ios - 如何使用委托方法从捕获会话中提取视频?

我正在尝试学习相机如何快速工作,所以我创建了一个简单的 viewController 设置会话、输入和输出实例,然后开始录制,但是视频的长度始终为零并且 AVCaptureOutput.isRunning 始终错误...这是我的代码

我可以正常在视图层上看到来自相机的输入视频,但是当我点击录制按钮时似乎没有任何效果,委托方法立即打印出录制的持续时间为零,并且@objc func startRecording(button: UIButton)从不打印出“录制即将停止"但总是"录制即将开始"..

我应该在方法上放哪个网址output.startRecording(to: url, recordingDelegate: self)?一旦数据进入委托方法,我有点困惑为什么我需要指定这个 URL 我应该在那里放什么?

我在这里想念什么?

提前谢谢你的回答!!

0 投票
0 回答
231 浏览

ios - iOS 12 Swift 将 TrueDepth 数据保存到视频

我一直在尝试将 TrueDepth 数据编写为快速电影。我已经检查了来自https://developer.apple.com/documentation/avfoundation/cameras_and_media_capture/streaming_depth_data_from_the_truedepth_camera的示例 我知道可以使用AVCaptureMovieFileOutput()输出快速电影,但我不知道如何实现这一点。我一直在尝试做一些简单的事情,例如将前置摄像头的捕获会话保存到快速时间。任何帮助将不胜感激。这是我到目前为止所拥有的:

0 投票
2 回答
2680 浏览

swift - 在 Swift 中录制视频时如何添加叠加层?

我正在尝试使用AVFoundation. 这行得通。我还尝试在视频中添加叠加层,例如包含日期的文本标签。

例如:保存的视频不仅是相机看到的,还有时间戳。

这是我保存视频的方式:

我有movieOuput一个AVCaptureMovieFileOutput. 我的预览图层不包含任何子图层。我尝试将时间戳标签的图层添加到 previewLayer,但这没有成功。

我已经尝试过Ray Wenderlich 的示例以及这个堆栈溢出问题。最后,我也试过这个教程,但都无济于事。

如何在相机胶卷中保存的视频中为我的视频添加叠加层?

0 投票
2 回答
969 浏览

ios - AVCaptureSession - 并行添加多个输出

我正在尝试将捕获的帧记录为视频,同时同时对帧执行图像处理任务。

我有一个 AVCaptureSession,我添加了两个单独的输出到 -

  1. AVCaptureVideoData输出
  2. AVCaptureMovieFile输出

我确认了AVCaptureVideoDataOutputSampleBufferDelegateAVCaptureFileOutputRecordingDelegate

captureOutput(_ output: AVCaptureOutput, didOutput sampleBuffer: CMSampleBuffer, from connection: AVCaptureConnection) 用于帧捕获和分析以及func fileOutput(_ output: AVCaptureFileOutput, didStartRecordingTo fileURL: URL, from connections: [AVCaptureConnection])视频录制

出于某种原因,每种方法都单独工作,但是当我添加两个输出时,只有视频录制工作并且根本不调用“captureOutput”函数。

任何想法为什么会发生这种情况,我做错了什么?或者在设置和配置会话时我应该确保什么?

0 投票
0 回答
51 浏览

swift - iOS:达到 maxDuration 时,AVCaptureSession 没有音频

今天我对 AVCaptureSession 有疑问。

我的问题是,当我将 MaxRecordedDuration 设置为 23 秒时,如果达到 23 秒并且录音机仍在录音,那么它将因错误而停止。我对这个过程中发生的事情没有任何问题,但是达到最大录制持续时间后的视频不包含任何音频!这就是我设置 maxDuration 的方式:

我得到的 Fileoutput 错误代码是“-11810”,消息是“Recording Stopped”,虽然我得到一个错误,但我也收到了 outputFileURL。

在尝试提供帮助之前要考虑的一件事,只有在达到最大持续时间时才会丢失音频。

0 投票
0 回答
134 浏览

swift - AVCaptureMovieFileOutput.startRecording(to:recordingDelegate:) 有时挂起且没有错误/异常

我正在使用 AVCaptureSession 从 macOS 设备录制 iPad 屏幕。录制时间长,我AVCaptureMovieFileOutput.startRecording(to:recordingDelegate:)习惯根据特定条件开始新的录制。(除非我想停止录制会话,否则我不会使用该stopRecording()方法,这是为了确保录制文件之间没有丢失数据)

现在,它不会以一致的模式发生,但有时整个应用程序会冻结,当我暂停它时,我总是看到应用程序在此方法处停止执行。(具体在0x7fff2b6deb22 <+598>: movq (%r14,%r12), %rax

AVCaptureMovieFileOutput.startRecording(to:recordingDelegate:)

我现在可以用这些信息做什么,有什么可能的方法可以防止这种情况发生?我还需要把它放在上下文中吗?

该方法在委托startRecording中被调用,如下所示:captureOutput

0 投票
2 回答
106 浏览

swift - 如何裁剪由 AVCaptureMovieFileOutput 录制的视频?

我制作了 CustomCamera,它将视频录制到全屏(通过将 AVCaptureVideoPreviewLayer 的 videoGravity 设置为 resizeAspectFill)并使用 AVCaptureMovieFileOutput 保存录制。录制效果很好,但是当我将录制的视频保存到图库时,它没有全屏播放。它的顶部和底部都有黑条。因此,在录制时,由于 resizeAspectFill,它会以全屏显示,但在导出视频后,会在没有任何转换的情况下导出视频,因此它会按照录制的比例播放(我猜)。我试图使视频导出全屏的代码如下,但它不起作用。

0 投票
1 回答
65 浏览

ios - 基于 TensorFlow 示例 Swift 录制和播放视频

#定义更新

我意识到我忘记请求录音许可了。现在已经解决了。但是,当我按下“录制按钮”时,我得到了错误Cannot create file。所以当我开始录制时,路径可能有问题?

#UNDEF 更新

我正在开发一个应用程序,我想在其中拥有自己的神经网络,并具有开始录制视频的功能。此后我想播放视频并使用来自神经网络的信息。

我在 Android 中有一个工作功能,现在我正在尝试为 iPhone 制作类似的东西。作为开始,我使用了ImageClassifierExamplefrom TensorFlowLite。第一个任务是添加一个Record开始录制视频的按钮,然后添加一个Play播放视频的按钮。

我已经实现了这两个功能,但是当我尝试播放视频时,它只是在加载。可能是录制不工作,或者视频播放器不工作(或两者兼而有之)。我已经检查过,所以路径是相同的。

我对iOS开发不太熟悉,所以一些帮助会很好。

这是我开始的基础。

这是我略微采用的ViewController

CameraFeedManager

玩家控制器:

0 投票
1 回答
22 浏览

ios - AVKit 与 Swift 一起使用,但没有创建文件。为什么?

这是一些尝试在 Swift 中使用 AVKit 将视频录制到文件的简化代码。没有抛出错误,但检查时不存在文件。我遗漏了什么?

我尝试了几种不同的变体,结果都一样。没有创建文件。