2017-09-13 3 views
0

Warum AVAsset Tracks hat verschiedene timeRanges für die gleiche Videodatei?Warum AVAsset-Tracks unterschiedliche TimeRange für dieselbe Videodatei haben?

Ich habe die Mediendatei vollständig in AVAsset geladen. Ich drucke Titeleigenschaft dieser Klasse und erhalte diese Information.

▿ 2 elements 
    - 0 : <AVAssetTrack: 0x17000fed0, trackID = 1, mediaType = vide> 
    - 1 : <AVAssetTrack: 0x17000fe90, trackID = 2, mediaType = soun> 

So habe ich ein Video und ein Ton AVAssetTrack der gleichen Mediendatei.

So drucke ich timeRange von jedem AVAssetTrack.

Also für Video:

▿ 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 

Und für den Sound.

▿ 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 

Also warum ist die Dauer des Sounds AVAssetTrack länger als Video eins? Und das ist für die gleiche Videodatei.

Antwort

0

darf ich fragen woher kommt die Datei? Möglicherweise wurde es von einem Benutzer erstellt, der eine Audiospur und eine Videospur in einer Komposition zusammenführte, nachdem sie separat bearbeitet wurden. Und beim Editieren der Datei hat er diesen kleinen Unterschied geschaffen. Im Allgemeinen können Sie über AVMutableComposition das gewünschte Asset zusammenführen. Der Zeitbereich muss nicht identisch sein. Ich wäre also nicht überrascht, Ihre Ergebnisse zu erhalten.

Verwandte Themen