2016-10-05 7 views
1

iOS 9.3 SDK에서 AVAssetWriter을 사용하여 MP4 컨테이너에 AAC를 작성합니다. 꽤 표준적인 것들. 잘 작동하고 있습니다.AVAssetWriter를 사용하여 사용자 정의 udta 아톰을 작성하는 방법은 무엇입니까?

그러나, 지금은 (이 예를 들어 mine라고도 함) udta 원자에 포함 된 원자를 추가해야합니다, 그래서이 수행 한 '

AVAssetWriter * writer =.... 

NSData * valueData = [NSJSONSerialization dataWithJSONObject:obj options:0 error:nil]; 

AVMutableMetadataItem * item = [AVMutableMetadataItem metadataItem]; 
item.keySpace = AVMetadataKeySpaceQuickTimeUserData; //udta 
item.key = @"mine"; 
item.value = valueData; 

writer.metadata = @[item]; 

[writer startWriting]; 
... 

그리고 결국, udta 원자 아무튼를 출력 파일에 전혀 나타나지 않습니다. 여기서 뭐가 잘못 됐어?

답변

1

마지막으로 문제가 발견되었습니다. 저작자를 순수 MP4 (AVFileTypeMPEG4) 모드로 만들면 맞춤 메타 데이터가 자동으로 삭제됩니다. 해결 방법은 QuickTime 컨테이너 파일 형식을 사용하는 것입니다.

AVAssetWriter * writer = [AVAssetWriter assetWriterWithURL:url fileType:AVFileTypeQuickTimeMovie error:nil];