问题标签 [avasset]
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.
objective-c - 如何获取 AVURLAsset 的文件名?
我像这样获得 AVURLAsset 的 URL:
在控制台中,AVURLAsset 的 url 如下所示:
assets-library://asset/asset.mov?id=A3210417-4BAC-1C78-BD93-4BDD286247D9&ext=mov
我尝试从 URL 获取带有扩展名的文件名,如下所示:
这是 tnFileName 的控制台日志:
tnFileName =asset_tn.mov
如何获得 A3210417-4BAC-1C78-BD93-4BDD286247D9 部分的字符串?或者资产是否有不同的唯一 ID 用于缓存资产的静止图像?
为了澄清,我需要将缩略图存储到磁盘,并且我想使用与资产匹配的名称。
avplayer - 将电影中的帧绘制到 CGBitmapContext
我有一个应用程序需要使用任意 CGAffineTransform 将视频/电影中的帧渲染到 CGBitmapContext 中。我希望它有一个不错的帧速率,至少像 20fps。
我尝试过使用 AVURLAsset 和 [AVAssetImageGenerator copyCGImageAtTime:],并且正如该方法的文档明确指出的那样,它非常慢,有时会降低到 5fps。
有什么更好的方法来做到这一点?我想我可以使用 AVPlayerLayer 设置 AVPlayer,然后将 [CGLayer renderInContext:] 与我的转换一起使用。这行得通吗?或者当 AVPlayerLayer 注意到它没有显示在屏幕上时,它可能不会运行?
还有什么方法可以推荐吗?
ios - Loop AVMutableCompositionTrack
I have got two audio tracks on me that I combine with one another like this:
As you can see, the first AVAsset
is the base length for the second track, meaning that if I have a long second track it will be cut, which is just the way that I want.
However, I need to be able to loop the second track so that if the first one is too long, the second one goes on and on. I later have to save the resulting track on disc which is an important factor as well.
After a research I've made I found out there's no convenient way to actually loop a track in iOS. One of the ways out would be inserting the second track at AVMutableComposition
multiple times over and over but that sounds quite strange to me. Any ideas based on the topic would be really useful.
iphone - 如何使用 iOS SDK 修剪视频文件并转换为 15 秒视频?
我想修剪视频文件。我只想从画廊中挑选视频并将其转换为 15 秒视频。如果我使用选择器视图控制器进行正常修剪,它不会指定时间而只显示帧,但我需要固定 15 秒。我怎样才能做到这一点?
ios - 如何获取视频 AVAsset 的大小 (KB)
我想获得AVAsset
视频文件的大小,而不是视频的分辨率,而是以 KB 为单位的文件重量。
一种解决方案是根据持续时间和估计的DataRate 计算估计的文件大小,但这似乎只是为了获得文件大小。
我检查了嵌入其中的所有数据AVAssetTrack
似乎不在那里。即使是估计的文件大小也会很好。
ios - AVAssetReaderOutput copyNextSampleBuffer 在设备上编码带音频的视频时挂起
在这个问题中实现了对视频(带音频)进行编码的解决方案之后,Video Encoding using AVAssetWriter - CRASHES,我发现代码在 iPhone 模拟器中可以正常工作。不幸的是,某些视频在实际的 iPhone 5(和其他设备)上运行时无法对其音频进行编码。
例如,从 WWDC 2011 示例代码 RosyWriter ( https://developer.apple.com/library/IOS/samplecode/RosyWriter/Introduction/Intro.html ) 生成的视频不会完全编码,因为该函数-[AVAssetReaderOutput copyNextSampleBuffer]
永远不会返回。
视频缓冲区正确进入,但一旦它尝试复制第一个音频 CMSampleBufferRef,调用就会挂起。当我对来自其他来源的视频(例如在本机 iOS 相机应用程序中录制的视频)尝试此操作时,音频会正确导入。
该线程https://groups.google.com/forum/#!topic/coreaudio-api/F4cqCu99nUI记录了copyNextSampleBuffer
与 AudioQueues 一起使用时挂起的函数,并建议将操作保留在单个线程上。我试过把所有东西都放在一个单独的线程上,在主线程上,但没有运气。
有没有其他人遇到过这种情况并有可能的解决方案?
编辑:从 RosyWriter 生成的视频的轨道似乎与来自本机相机应用程序的视频相反,即音频流作为流 0,视频流作为流 1。
不确定这是否会对 AVAssetReader 产生影响。
ios - 从使用 AVAssetImageGenerator 获得的视频或拇指获取方向
在我的应用程序中,我从单个图像创建视频。一切正常,视频以正确的大小和方向正确组装。它们在 Apple 照片应用程序、MPMoviePlayer 和我保存它们的沙盒目录中都正确显示。
当我试图从电影中获得大拇指时,问题就出现了。方向不正确,我不知道如何解决,我看到有一个 -preferredTransform
属性,但横向和纵向视频的结果是相同的。
我使用的 url 是沙盒目录路径。这是片段:
macos - 合并视频在 iOS 应用程序中不起作用
我正在研究合并视频功能。
在我的应用程序中,我有一个带有多个轨道的视频(共有 10 个轨道、9 个视频轨道和一个音频轨道是常见的)。现在我想从这多个音轨中获取 3 个视频。第一个视频与 1,4,7 轨道结合,第二个视频与 2,5,8 轨道结合,第三个视频与 3,6,9 轨道结合,音频轨道对于这三个视频是常见的。
我想使用以下代码执行此操作。
使用此代码创建 3 个单独的视频,但每个视频有 3 个不同的轨道。现在,我的问题是如何创建只有一个轨道的视频?
ios - 使用 AVAssetReaderVideoCompositionOutput 导出中途,然后以 AVFoundationErrorDomain Code=-11800 退出
我已经从 AVAssets 构建了 AVMutableComposition 和 VideoComposition 并且能够播放它。我也可以使用 AVAssetExportSession 导出它,但是 AVAssetExportSession 不能提供太多的设置控制,所以我使用 AVAssetReader/AVAssetWriter 导出它,但不幸的是我遇到了一个我不明白的错误,并且只是部分写入输出文件。
这是我到目前为止的代码。我已经省略了作者和尽可能多的其他内容(包括一些错误检查),我认为这些内容与使代码更易于阅读无关,因为它很多。请注意,我还没有处理音轨——我正在尝试一步一步来,但这也许是我的问题?
变量asset
是 AVMutableComposition。
问题是循环在短时间内退出,我得到这个输出:
ios - 来自 AVMetadataItem 目标 c 的 ISRC 代码
我想获取本地 iTunes 歌曲的 ISRC 代码。我可以通过以下代码获取元数据:
但我真的很想知道如何获得 ISRC(国际标准记录编码)。