我正在使用AVCaptureSession录制带有音频的视频。一切似乎都适用于短视频,但出于某种原因,如果我录制的视频长度大于12秒,则音频不起作用。AVCaptureSession音频不适用于长视频
回答
我发现解决方案为an answer to a completely different question。
问题是AVCaptureMovieFileOutput中的movieFragmentInterval
属性。
此属性的文档解释什么这些片段有:
QuickTime电影是由媒体样本的和试样台 标识所述文件中其位置。没有示例 表的电影文件不可读。
在处理的文件中,示例表通常出现在文件的起始处 处。它也可能出现在文件的末尾,在 这种情况下,头部包含一个指向 末端的样本表的指针。当正在记录新的电影文件时,由于文件的大小尚未知道,因此不可能 写入示例表。 而是,记录完成时必须写入表格。如果 没有采取其他操作,这意味着如果记录不成功(例如,在发生崩溃时) 数据不可用(因为没有样本表)。通过定期向电影文件插入“电影片段” ,可以递增地构建示例表格 。这意味着如果文件没有完全写入 ,电影文件仍然可用(直到写入最后一个片段的位置)。
它还说:
默认为10秒。设置为kCMTimeInvalid以禁用片段写入(通常不推荐) 片段写入。
因此,出于某种原因,我的录音在编写片段时会越来越混乱。我刚刚添加了行movieFileOutput.movieFragmentInterval = kCMTimeInvalid;
(其中movieFileOutput
是我添加到AVCaptureSession的AVCaptureMovieFileOutput)来禁用片段写入,并且音频现在可以工作。
正在更新videoFileOutput.movieFragmentInterval = kCMTimeInvalid
为我解决了这个问题。
但是,我在拨打startRecordingToOutputFileURL
后意外设置了movieFragmentInterval
。一个小时后,我意识到自己的错误。对于像我这样的新手,注意这个明显的序列。
videoFileOutput.movieFragmentInterval = kCMTimeInvalid
videoFileOutput.startRecordingToOutputFileURL(filePath, recordingDelegate: recordingDelegate)
我们也遇到过这个问题。基本上禁用电影片段的写作会起作用,但并不能真正解释问题。很可能您正在使用不支持此功能的文件扩展名录制到输出文件,如mp4
。如果您传递扩展名为mov
的输出文件,则使用电影片段写入时应该没有问题,并且输出文件将具有音频。
- 1. AVCaptureSession录制带有音频的视频
- 2. 用于音频和视频组合的AVCaptureSession - 音频部分提供EXC_BAD_ACCESS
- 3. PHP - move_uploaded_file不适用于音乐/视频
- 4. AVCaptureSession视频不保存
- 5. 同时录制带有AVCaptureSession和回放音频的音频/视频?
- 6. AVCaptureSession取消背景音频
- 7. 适用于Android和iOS的视频/音频框架
- 8. 适用于Android平台的音频/视频编解码器
- 9. 撰写视频和音频 - 视频音频不见了
- 10. 流媒体音频不适用于Android
- 11. H264用于视频音频流
- 12. 使用AVCaptureSession仅录制音频
- 13. AVCaptureSession视频方向iOS
- 14. FFMPEG添加音频到视频,但它夹到视频长度
- 15. 复制不适用于包含音频/视频文件的CouchDB数据库
- 16. z-index不适用于HTML5视频
- 17. move_upload_file不适用于上传视频
- 18. HTML5视频标签不适用于iPad?
- 19. 独立于视频的音频
- 20. 更改AVAudioSession后AVCaptureSession没有音频
- 21. 当长度不同时合并音频和视频
- 22. 将不同长度的视频和音频合并为批量
- 23. 视频不适合
- 24. Web音频API声音适用于台式机和Android,但不适用于iPhone
- 25. 适用于Android的音频过滤器
- 26. 适用于Android的3D音频库
- 27. 适用于Java的AU音频文件
- 28. 适用于Android的低级音频API
- 29. 构建适用于Android应用程序的WebRTC - 视频和音频流
- 30. 用mplayer来确定音频/视频文件的长度