4

GPUImageを使用すると、ビデオファイルを希望どおりに非常に効率的に操作できますが、のを指定するときに使用する場合AVFileTypeQuickTimeMovieに限ります。fileTypeGPUImageMovieWriter

私のアプリケーションは、QuickTimeムービーファイルを再生できないAndroidデバイスと対話する必要があるため、次のようにエンコードするようにコードを変更しようとしました。

movieWriter = [[GPUImageMovieWriter alloc] initWithMovieURL:movieURL size:CGSizeMake([UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height) 
              fileType:AVFileTypeMPEG4 outputSettings:videoCompressionSettings];

setHasAudioTrackブラッドが映画作家の例で示しているように音声を渡しますが、関数内のGPUImageMovieWriter.mファイルの音声に関連する次の行でアプリがクラッシュします。

[assetWriter addInput:assetWriterAudioInput];

オーディオを完全に削除すると、GPUImageはAndroidで適切に再生されるMPEG4ファイルを出力できることがわかりました。私はオーディオを通過させようとしませんでしたが、その後、メソッドの[assetWriterAudioInput appendSampleBuffer:audioBuffer];行でクラッシュに直面しました。processAudioBuffer

Bradのコードはこれまでのところうまく機能しているので、あまりいじりたくないので、コミュニティに問い合わせて、同様の問題が発生していて、提案できるかどうかを確認します。より多くのコードを提供できてうれしいですが、何が関連していて何が関連していないのかわかりません。

前もって感謝します。

4

0 に答える 0