GPUImageを使用すると、ビデオファイルを希望どおりに非常に効率的に操作できますが、のを指定するときに使用する場合AVFileTypeQuickTimeMovie
に限ります。fileType
GPUImageMovieWriter
私のアプリケーションは、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のコードはこれまでのところうまく機能しているので、あまりいじりたくないので、コミュニティに問い合わせて、同様の問題が発生していて、提案できるかどうかを確認します。より多くのコードを提供できてうれしいですが、何が関連していて何が関連していないのかわかりません。
前もって感謝します。