2011-07-31 9 views
0

AVAssetWriterを使用してMPEG2 ADTSまたはAAC ADTSをiosに書き込むことはできますか?AVAssetWriterを使用してiPhone上でMPEG-2またはAAC ADTSを作成する

まず、私はその後、私は私が正しい設定可能とライターに、しかし無駄にそれを追加しようとする疑いがあるものを使用して入力を行うAVAssetWriter

assetWriter = [[AVAssetWriter alloc] initWithURL:[NSURL fileURLWithPath:filePath] 
                   fileType:AVFileTypeCoreAudioFormat 
                    error:&er]; 

します

AudioChannelLayout channelLayout; 
memset(&channelLayout, 0, sizeof(AudioChannelLayout)); 
channelLayout.mChannelLayoutTag = kAudioChannelLayoutTag_Stereo; 
NSDictionary *outputSettings = 
[NSDictionary dictionaryWithObjectsAndKeys: 
[NSNumber numberWithInt:kAudioFormatMPEGLayer2], AVFormatIDKey, 
[NSNumber numberWithFloat:44100.0], AVSampleRateKey, 
[NSNumber numberWithInt:2], AVNumberOfChannelsKey, 
[NSNumber numberWithInt:128000], AVEncoderBitRateKey, 
[NSData dataWithBytes:&channelLayout length:sizeof(AudioChannelLayout)], AVChannelLayoutKey, 
nil]; 

assetWriterInput = [[AVAssetWriterInput alloc] initWithMediaType:AVMediaTypeAudio 
                outputSettings:outputSettings]; 
assetWriterInput.expectsMediaDataInRealTime = NO; 

if ([assetWriter canAddInput:assetWriterInput]) { 
    [assetWriter addInput:assetWriterInput]; 
} else { 
    NSLog (@"can't add asset writer input."); 
} 

答えて

1

はここに私の働く設定です。

AudioChannelLayout channelLayout; 
    memset(&channelLayout, 0, sizeof(AudioChannelLayout)); 
    channelLayout.mChannelLayoutTag = kAudioChannelLayoutTag_Stereo; 

    AVAssetWriter *assetWriter = [[AVAssetWriter assetWriterWithURL:exportURL 
                  fileType:AVFileTypeMPEG4 

                   error:&assetError] retain]; 

    NSDictionary *outputSettings = [NSDictionary dictionaryWithObjectsAndKeys: 
            [ NSNumber numberWithInt: kAudioFormatMPEG4AAC], AVFormatIDKey, 
            [ NSNumber numberWithInt: 2 ], AVNumberOfChannelsKey, 
            [ NSNumber numberWithFloat: 44100.0 ], AVSampleRateKey, 
            [NSData dataWithBytes:&channelLayout length:sizeof(AudioChannelLayout)], AVChannelLayoutKey, 
            [ NSNumber numberWithInt: 128000 ], AVEncoderBitRateKey,nil]; 
+1

MPEG2ではなくMPEG4ですのでご注意ください。 –

関連する問題