カメラを使ってビデオを録画し、自分のドキュメントフォルダに保存しています。私が直面している問題は、カメラから取得したビデオが.aviファイルであり、.mp4(または他の許可された形式)に変換する必要があることです。iOS objective-cで.aviを.mp4に変換できませんでした
私は以下のコードを使用します。
SOURCE:iOS Convert AVI to MP4 Format programatically
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"MyVideo.mp4"];
NSURL *outputURL = [NSURL fileURLWithPath:filePath];
[self convertVideoToLowQuailtyWithInputURL:localUrl outputURL:outputURL handler:^(AVAssetExportSession *exportSession)
{
if (exportSession.status == AVAssetExportSessionStatusCompleted) {
// Video conversation completed
}
}];
- (void)convertVideoToLowQuailtyWithInputURL:(NSURL*)inputURL outputURL:(NSURL*)outputURL handler:(void (^)(AVAssetExportSession*))handler {
[[NSFileManager defaultManager] removeItemAtURL:outputURL error:nil];
AVURLAsset *asset = [AVURLAsset URLAssetWithURL:inputURL options:nil];
AVAssetExportSession *exportSession = [[AVAssetExportSession alloc] initWithAsset:asset presetName:AVAssetExportPresetPassthrough];
exportSession.outputURL = outputURL;
exportSession.outputFileType = AVFileTypeMPEG4;
[exportSession exportAsynchronouslyWithCompletionHandler:^(void) {
handler(exportSession);
}];
}
exportSession状況は常に失敗します。しかし、私が.movを.mp4に変換しようとするとうまくいきません。
どのように.aviファイルを.mp4ファイルに変換できないのですか?
AVIビデオ内のビデオコーデックとは何ですか? AVIの詳細がわからない場合は、** MediaInfo **のようなツールを使用してください( 'text'モードにチェックしてください)。 –
MediaInfoが私に与える情報: 275 kb/s、640x480(4:3)、10.000 FPS、AVS(ベースライン@L3)(1 Refフレーム)@ VC.One – Milander
_ "** AVS **(ベースライン@ L3) "_?それはタイプミスですか?実際にあなたが** AVC **を意味したら、あなたはMP4コンテナ用の互換性のあるビデオコーデックを持っています...正しいコーデック(AACまたはMP3)でサウンドもありますか? _「exportSessionのステータスは常に失敗します」_他の有用なエラーメッセージはありませんか?問題がビデオコーデックではなく、オーディオコーデックでない場合、問題はAVIファイルそのものでなければなりません。カメラブランドはまた、奇妙なカスタムAVIコンテナバイトを作成している可能性があります。 –