2016-10-05 44 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原子はdoesnのを出力ファイルには何も表示されません。ここで何がうまくいかないのですか?

答えて

1

最後に問題が見つかりました。アセットライターを純粋なMP4(AVFileTypeMPEG4)モードで作成すると、カスタムメタデータが静かに削除されているように見えます。解決策は、QuickTimeコンテナファイルタイプを使用することです。

AVAssetWriter * writer = [AVAssetWriter assetWriterWithURL:url fileType:AVFileTypeQuickTimeMovie error:nil]; 
関連する問題