问题标签 [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.
ios - 使用 maxRecordedFileSize 限制 AVCaptureSession 记录时间
我一直在为 iOS 8 编写一个相机应用程序,它使用 AVFoundation 来设置和处理记录和保存(不是 ImagePickerController)。我正在尝试保存使用 AVCaptureMovieFileOutput 类的 maxRecordedFileSize 属性,以允许用户填满手机上的所有可用空间(减去留给苹果东西的 250MB 缓冲区)。
}
当可用空间(减去缓冲区)减少到零时抛出 AVErrorMaximumFileSizeReached,并且没有抛出保存错误,但是视频没有出现在相机胶卷中并且没有保存。当我设置 maxRecordedDuration 字段时,会抛出 AVErrorMaximumDurationReached 并保存视频。我从最大尺寸计算最大时间,但由于帧压缩,我总是有足够的空间。
抛出两个错误时会出现“正在写入相册”。我完全被这个难住了。任何iOS见解?
xcode - SampleBufferDelegate 不工作
由于某些奇怪的原因 AVCaptureVideoDataOutputSampleBufferDelegate 没有触发。我已经添加了委托和所有内容,我不确定为什么它没有在我的代码中运行。谁能帮我弄清楚为什么?
我的 .h 中的代表
.m 代码(在 ViewDidLoad 中调用了initializeCamera)
ios - 我无法将 AVFoundation 视频保存到本地 url
我是编程和 Objective-C 的新手(约 6 周),现在我第一次使用 AVFoundation。我的目标是提高我的水平,但对于熟悉框架的人来说应该不会太难。
我的目标是创建一个“Snapchat”风格的自定义相机界面,当你点击按钮时捕捉静止图像,并在按住按钮时录制视频。
我已经能够拼凑并粉碎大部分代码(视频预览、捕获静止图像、编程按钮等),但我无法在本地成功保存视频(将其添加到构建的项目中本周晚些时候在 Parse 之上)。
ViewController.h (参考)
视图控制器.m
我构建代码的方式是在第一组方法中初始化会话,然后将图像和视频捕获分成各自独立的部分。输入设备是 AVMediaTypeVideo,它分别输出到 AVCaptureStillImageOutput 和 AVCaptureMovieFileOutput。
代码在这一行中断:
在我的脑海中,我在想这可能是几件事:
- 数据是否存在(已记录,但无法验证)?
- 我是否正确初始化了目标网址?
- 数据是否与目的地兼容?那是一回事吗?
会喜欢你对如何检查、测试或调试的观点/新鲜的眼睛/想法。
干杯,J
ios - 使用 AVCaptureMovieFileOutput 暂停/恢复视频录制
我正在AVCaptureMovieFileOutput
使用这种方法录制文件:
现在我想在录制视频时加入暂停/恢复功能。
请指导我这是如何实现的?
ios - 在 AVCaptureMovieFileOutput 之后用 AVPlayer 播放视频
我用 AVFoundation 创建了一个类似于 snapchat 的自定义相机。图片方面有效:拍照,我显示图片。现在我正在尝试拍摄视频并显示视频。
我已经捕获了一个成功的视频文件,经过测试并与 MPMoviePlayer 一起使用,但无法在 AVPlayer 上播放它。
这是我第一次使用 AVFoundation & AVPlayer。[self.player play]
资产加载后我不能吗?我需要等待项目状态为AVPlayerItemStatusReadyToPlay
?
错误: 错误域=NSURLErrorDomain 代码=-1100“在此服务器上找不到请求的 URL。”
ios - 如何找到适合录制到文件的最高分辨率 AVCaptureDeviceFormat?
我正在使用 AVFoundation 从设备的相机录制到电影文件,使用AVCaptureMovieFileOutput
. 我想让用户在录制开始之前在高帧率和高分辨率模式之间切换,但我无法弄清楚你应该如何知道哪种AVCaptureDeviceFormat
产生适合视频录制的最高分辨率。
例如,在我正在测试的 iPod touch 上,它列出了后置摄像头的以下设备格式:
选择最高帧率是相当简单的(文档中给出了一个示例);您只需遍历格式及其支持的帧速率范围即可找到具有最高帧速率的格式。据我所知,最高帧率的格式总是可以用来录制视频文件。
当我尝试找到最高分辨率的格式时,就会出现问题。在这种情况下,1080p 是您可以录制到的最高分辨率,但格式一直列出到 2448p;我可以将相机硬件切换到这种格式,但它拒绝记录到任何高于 1080p 的文件。当然,我可以将其硬编码为仅使用 1080p,但我们现在有支持 4K 录制的设备。
我的问题是,如何过滤此列表,使其仅显示适合录制的格式?我查看了AVCaptureDeviceFormat
and的文档CMFormatDescription
,但找不到任何表明给定格式是否可录制的内容。我见过这个类似的问题,但是在格式之间不断切换直到isActive
为真似乎是一种不好的做法。
我是否可以找到正确的格式来使用,而不必全部尝试以查看哪些有效?
ios - 视图控制器不符合协议 AVCaptureFileOutputRecordingDelegate
我正在尝试制作一个可以录制视频的相机,我需要 AVCaptureFileOutputRecordingDelegate 才能使其工作,但出于某种原因它说...
类型“ViewController”不符合协议“AVCaptureFileOutputRecordingDelegate”。
我在我的班级标题上方有这个,但仍然没有解决问题......
这是我的所有代码:
我不确定我为什么会得到它或如何解决它。请帮忙。谢谢!
ios - AVPlayer 不会播放 MovieFile
我AVCaptureMovieFileOutput
用来捕捉视频文件。
然后尝试用 AVPlayer 播放它,但没有任何反应。从我一直在阅读的内容来看,我认为我需要等待文件以下面的方法完成加载,而不是立即尝试播放。
avfoundation - 如何记录使用 AVCaptureSession 捕获的第一个和最后一个电影帧的确切时间?
我正在使用AVCaptureSession
将视频捕获到电影文件中。我想获得电影第一帧和最后一帧的确切时间戳。我该怎么做呢?
在AVCaptureFileOutputRecordingDelegate
中,该方法captureOutput(_:didStartRecordingToOutputFileAtURL:fromConnections:)
在电影录制开始时调用,但对于我的目的来说太不准确了,录制结束时的回调也是如此。我需要帧的确切时间戳。
在AVCaptureVideoDataOutputSampleBufferDelegate
中,该方法captureOutput:didOutputSampleBuffer:fromConnection:
每帧调用一次,可用于访问帧的显式时间戳信息,因此应该非常准确。
不幸的是,您似乎无法将捕获会话配置为同时录制到视频文件并提供原始样本数据,因此我无法在捕获到文件的同时使用它来获取帧时间戳。
或者有什么方法可以同时使用它们吗?还是我错过了另一个我可以使用的 API?