为什么AVAsset曲目对于相同的视频文件有不同的timeRange?
问题描述:
为什么AVAsset
音轨对于相同的视频文件有不同的timeRanges?为什么AVAsset曲目对于相同的视频文件有不同的timeRange?
我已经完全加载了媒体文件AVAsset
。我打印此类的属性并接收此信息。
▿ 2 elements
- 0 : <AVAssetTrack: 0x17000fed0, trackID = 1, mediaType = vide>
- 1 : <AVAssetTrack: 0x17000fe90, trackID = 2, mediaType = soun>
所以我有一个视频和一个声音AVAssetTrack
相同的媒体文件。
所以我打印每个AVAssetTrack
的timeRange。
所以对于视频:
▿ CMTimeRange
▿ start : CMTime
- value : 0
- timescale : 1000
▿ flags : CMTimeFlags
- rawValue : 1
- epoch : 0
▿ duration : CMTime
- value : 5000
- timescale : 1000
▿ flags : CMTimeFlags
- rawValue : 1
- epoch : 0
而对于声音。
▿ CMTimeRange
▿ start : CMTime
- value : 0
- timescale : 1000
▿ flags : CMTimeFlags
- rawValue : 1
- epoch : 0
▿ duration : CMTime
- value : 5002
- timescale : 1000
▿ flags : CMTimeFlags
- rawValue : 1
- epoch : 0
那么为什么声音AVAssetTrack
的持续时间比视频长?这是相同的视频文件。
答
请问这个文件从哪里来?也许它是由合成后的音轨和视频轨道合并后分别进行编辑的用户创建的。编辑文件时,他创造了这个小小的差异。一般来说,通过AVMutableComposition你可以合并你想要的任何资产,时间范围不一定是相同的。所以我不会感到惊讶得到你的发现。