質問編集履歴

12 文法の修正

daigakusei

daigakusei score 18

2016/06/30 17:35  投稿

Swiftで動画をMP4に変換したい
Swiftでカメラロールにある動画を取り出した(~.movの)ものをmp4に変換したいと思い調べていると、
下記の記事を見つけて実装してみましたが変換がうまくいかなかったので質問させていただきました。
[Swift で録画したビデオ(mov)を MP4 に変換する](http://qiita.com/takecian/items/2083a61f07167a67e792)
コード内の moviePath はString型で既にカメラロールから選択した動画のパスが入っている状態です。
```Swift
// mp4変換
               let filename = "testVideo.mp4"
               
               let filePath = NSTemporaryDirectory().stringByAppendingString(filename)
               let outputURL = NSURL(fileURLWithPath: filePath)
               
               let myUrl: NSURL = NSURL(string: moviePath)!
               let avAsset = AVURLAsset(URL: myUrl, options: nil)
               let exportSession = AVAssetExportSession(asset: avAsset, presetName: AVAssetExportPresetPassthrough)
               
               exportSession!.outputFileType = AVFileTypeMPEG4 // ファイルタイプの指定
               exportSession!.outputURL = outputURL // 保管場所を指定
exportSession!.exportAsynchronouslyWithCompletionHandler { () -> Void in
                   do {
                       try NSFileManager.defaultManager().removeItemAtPath(filePath)
                       switch exportSession!.status {
                       case AVAssetExportSessionStatus.Completed:
                           PHAssetChangeRequest.creationRequestForAssetFromVideoAtFileURL(NSURL(fileURLWithPath: self.moviePath))
                           break
                       case AVAssetExportSessionStatus.Failed:
                           print("failed \(exportSession?.error)")
                           break
                       case AVAssetExportSessionStatus.Cancelled:
                           print("cancelled \(exportSession?.error)")
                           break
                       default:
                           break
                       }
                   } catch {
                       print("Error")
                   }
               }
```
実行してもエラーはでないものの、ローカルにも保存されていません。
outputURLで管理場所を指定しているにもかかわらずその場所に~.mp4が入らない原因はなぜでしょうか。
どなたか教えていただけると助かります。
下記のコードがimagePickerController内で上記の内容を行ったものになります。
```Swift
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
   let mediaType = info[UIImagePickerControllerMediaType] as! NSString
   let urlM: NSURL = info[UIImagePickerControllerMediaURL] as! NSURL
       if mediaType == kUTTypeMovie {
           let urlM: NSURL = info[UIImagePickerControllerMediaURL] as! NSURL
       }
   
   let filePath = NSTemporaryDirectory().stringByAppendingString(filename)   
   let filename = "testVideo.mp4"
   let outputURL = NSURL(fileURLWithPath: filePath)
   
   let avAsset = AVURLAsset(URL: myUrl, options: nil)
   let exportSession = AVAssetExportSession(asset: avAsset, presetName: AVAssetExportPresetPassthrough)
   
   exportSession!.outputFileType = AVFileTypeMPEG4
   exportSession!.outputURL = outputURL
   
   exportSession!.exportAsynchronouslyWithCompletionHandler { () -> Void in
               do {
                   try NSFileManager.defaultManager().removeItemAtPath(filePath)
                   switch exportSession!.status {
                   case AVAssetExportSessionStatus.Completed:
                       PHAssetChangeRequest.creationRequestForAssetFromVideoAtFileURL(NSURL(fileURLWithPath: urlR)) // エラー
                       break
                   case AVAssetExportSessionStatus.Failed:
                       print("failed \(exportSession?.error)")
                       break
                   case AVAssetExportSessionStatus.Cancelled:
                       print("cancelled \(exportSession?.error)")
                       break
                   default:
                       break
                   }
               } catch {
                   print("Error")
               }
   }
}
```
  • Swift 2

    1353 questions

    Swift 2は、Apple社が独自に開発を行っている言語「Swift」のアップグレード版です。iOSやOS X、さらにLinuxにも対応可能です。また、throws-catchベースのエラーハンドリングが追加されています。

11 誤字

daigakusei

daigakusei score 18

2016/06/30 17:33  投稿

Swiftで動画をMP4に変換したい
Swiftでカメラロールにある動画を取り出した(~.movの)ものをmp4に変換したいと思い調べていると、
下記の記事を見つけて実装してみましたが変換がうまくいかなかったので質問させていただきました。
[Swift で録画したビデオ(mov)を MP4 に変換する](http://qiita.com/takecian/items/2083a61f07167a67e792)
コード内の moviePath はString型で既にカメラロールから選択した動画のパスが入っている状態です。
```Swift
// mp4変換
               let filename = "testVideo.mp4"
               
               let filePath = NSTemporaryDirectory().stringByAppendingString(filename)
               let outputURL = NSURL(fileURLWithPath: filePath)
               
               let myUrl: NSURL = NSURL(string: moviePath)!
               let avAsset = AVURLAsset(URL: myUrl, options: nil)
               let exportSession = AVAssetExportSession(asset: avAsset, presetName: AVAssetExportPresetPassthrough)
               
               exportSession!.outputFileType = AVFileTypeMPEG4 // ファイルタイプの指定
               exportSession!.outputURL = outputURL // 保管場所を指定
exportSession!.exportAsynchronouslyWithCompletionHandler { () -> Void in
                   do {
                       try NSFileManager.defaultManager().removeItemAtPath(filePath)
                       switch exportSession!.status {
                       case AVAssetExportSessionStatus.Completed:
                           PHAssetChangeRequest.creationRequestForAssetFromVideoAtFileURL(NSURL(fileURLWithPath: self.moviePath))
                           break
                       case AVAssetExportSessionStatus.Failed:
                           print("failed \(exportSession?.error)")
                           break
                       case AVAssetExportSessionStatus.Cancelled:
                           print("cancelled \(exportSession?.error)")
                           break
                       default:
                           break
                       }
                   } catch {
                       print("Error")
                   }
               }
```
実行してもエラーはでないものの、ローカルにも保存されていません。
outputURLで管理場所を指定しているにもかかわらずその場所に~.mp4が入らない原因はなぜでしょうか。
どなたか教えていただけると助かります。
下記のコードがimagePickerController内で上記の内容を行ったものになります。
```Swift
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
   let mediaType = info[UIImagePickerControllerMediaType] as! NSString
   let urlM: NSURL = info[UIImagePickerControllerMediaURL] as! NSURL
   
   let filePath = NSTemporaryDirectory().stringByAppendingString(filename)   
   let filename = “testVideo.mp4"
   let filename = "testVideo.mp4"
   let outputURL = NSURL(fileURLWithPath: filePath)
   
   let avAsset = AVURLAsset(URL: myUrl, options: nil)
   let exportSession = AVAssetExportSession(asset: avAsset, presetName: AVAssetExportPresetPassthrough)
   
   exportSession!.outputFileType = AVFileTypeMPEG4
   exportSession!.outputURL = outputURL
   
   exportSession!.exportAsynchronouslyWithCompletionHandler { () -> Void in
               do {
                   try NSFileManager.defaultManager().removeItemAtPath(filePath)
                   switch exportSession!.status {
                   case AVAssetExportSessionStatus.Completed:
                       PHAssetChangeRequest.creationRequestForAssetFromVideoAtFileURL(NSURL(fileURLWithPath: urlR)) // エラー
                       break
                   case AVAssetExportSessionStatus.Failed:
                       print("failed \(exportSession?.error)")
                       break
                   case AVAssetExportSessionStatus.Cancelled:
                       print("cancelled \(exportSession?.error)")
                       break
                   default:
                       break
                   }
               } catch {
                   print("Error")
               }
   }
}
```
  • Swift 2

    1353 questions

    Swift 2は、Apple社が独自に開発を行っている言語「Swift」のアップグレード版です。iOSやOS X、さらにLinuxにも対応可能です。また、throws-catchベースのエラーハンドリングが追加されています。

10 誤字

daigakusei

daigakusei score 18

2016/06/30 17:32  投稿

Swiftで動画をMP4に変換したい
Swiftでカメラロールにある動画を取り出した(~.movの)ものをmp4に変換したいと思い調べていると、
下記の記事を見つけて実装してみましたが変換がうまくいかなかったので質問させていただきました。
[Swift で録画したビデオ(mov)を MP4 に変換する](http://qiita.com/takecian/items/2083a61f07167a67e792)
コード内の moviePath はString型で既にカメラロールから選択した動画のパスが入っている状態です。
```Swift
// mp4変換
let filename = "testVideo.mp4"
let filePath = NSTemporaryDirectory().stringByAppendingString(filename)
let outputURL = NSURL(fileURLWithPath: filePath)
let myUrl: NSURL = NSURL(string: moviePath)!
let avAsset = AVURLAsset(URL: myUrl, options: nil)
let exportSession = AVAssetExportSession(asset: avAsset, presetName: AVAssetExportPresetPassthrough)
exportSession!.outputFileType = AVFileTypeMPEG4 // ファイルタイプの指定
exportSession!.outputURL = outputURL // 保管場所を指定
exportSession!.exportAsynchronouslyWithCompletionHandler { () -> Void in
do {
try NSFileManager.defaultManager().removeItemAtPath(filePath)
switch exportSession!.status {
case AVAssetExportSessionStatus.Completed:
PHAssetChangeRequest.creationRequestForAssetFromVideoAtFileURL(NSURL(fileURLWithPath: self.moviePath))
break
case AVAssetExportSessionStatus.Failed:
print("failed \(exportSession?.error)")
break
case AVAssetExportSessionStatus.Cancelled:
print("cancelled \(exportSession?.error)")
break
default:
break
}
} catch {
print("Error")
}
}
```
実行してもエラーはでないものの、ローカルにも保存されていません。
outputURLで管理場所を指定しているにもかかわらずその場所に~.mp4が入らない原因はなぜでしょうか。
どなたか教えていただけると助かります。
下記のコードがimagePickerController内で上記の内容を行ったものになります。
```Swift
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
let mediaType = info[UIImagePickerControllerMediaType] as! NSString
let urlM: NSURL = info[UIImagePickerControllerMediaURL] as! NSURL
let filePath = NSTemporaryDirectory().stringByAppendingString(filename)
let filename = “testVideo.mp4"
let outputURL = NSURL(fileURLWithPath: filePath)
let avAsset = AVURLAsset(URL: myUrl, options: nil)
let exportSession = AVAssetExportSession(asset: avAsset, presetName: AVAssetExportPresetPassthrough)
exportSession!.outputFileType = AVFileTypeMPEG4
exportSession!.outputURL = outputURL
exportSession!.exportAsynchronouslyWithCompletionHandler { () -> Void in
do {
try NSFileManager.defaultManager().removeItemAtPath(filePath)
switch exportSession!.status {
case AVAssetExportSessionStatus.Completed:
PHAssetChangeRequest.creationRequestForAssetFromVideoAtFileURL(NSURL(fileURLWithPath: urlR)) // エラー
break
case AVAssetExportSessionStatus.Failed:
print("failed \(exportSession?.error)")
break
case AVAssetExportSessionStatus.Cancelled:
print("cancelled \(exportSession?.error)")
break
default:
break
}
} catch {
print("Error")
}
}
}
```
  • Swift 2

    1353 questions

    Swift 2は、Apple社が独自に開発を行っている言語「Swift」のアップグレード版です。iOSやOS X、さらにLinuxにも対応可能です。また、throws-catchベースのエラーハンドリングが追加されています。

9 コードの追加

daigakusei

daigakusei score 18

2016/06/30 17:31  投稿

Swiftで動画をMP4に変換したい
Swiftでカメラロールにある動画を取り出した(~.movの)ものをmp4に変換したいと思い調べていると、
下記の記事を見つけて実装してみましたが変換がうまくいかなかったので質問させていただきました。
[Swift で録画したビデオ(mov)を MP4 に変換する](http://qiita.com/takecian/items/2083a61f07167a67e792)
コード内の moviePath はString型で既にカメラロールから選択した動画のパスが入っている状態です。
```Swift
// mp4変換
               let filename = "testVideo.mp4"
               
               let filePath = NSTemporaryDirectory().stringByAppendingString(filename)
               let outputURL = NSURL(fileURLWithPath: filePath)
               
               let myUrl: NSURL = NSURL(string: moviePath)!
               let avAsset = AVURLAsset(URL: myUrl, options: nil)
               let exportSession = AVAssetExportSession(asset: avAsset, presetName: AVAssetExportPresetPassthrough)
               
               exportSession!.outputFileType = AVFileTypeMPEG4 // ファイルタイプの指定
               exportSession!.outputURL = outputURL // 保管場所を指定
exportSession!.exportAsynchronouslyWithCompletionHandler { () -> Void in
                   do {
                       try NSFileManager.defaultManager().removeItemAtPath(filePath)
                       switch exportSession!.status {
                       case AVAssetExportSessionStatus.Completed:
                           PHAssetChangeRequest.creationRequestForAssetFromVideoAtFileURL(NSURL(fileURLWithPath: self.moviePath))
                           break
                       case AVAssetExportSessionStatus.Failed:
                           print("failed \(exportSession?.error)")
                           break
                       case AVAssetExportSessionStatus.Cancelled:
                           print("cancelled \(exportSession?.error)")
                           break
                       default:
                           break
                       }
                   } catch {
                       print("Error")
                   }
               }
```
実行してもエラーはでないものの、ローカルにも保存されていません。
outputURLで管理場所を指定しているにもかかわらずその場所に~.mp4が入らない原因はなぜでしょうか。
どなたか教えていただけると助かります。
どなたか教えていただけると助かります。
下記のコードがimagePickerController内で上記の内容を行ったものになります。
```Swift
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
   let mediaType = info[UIImagePickerControllerMediaType] as! NSString
   let urlM: NSURL = info[UIImagePickerControllerMediaURL] as! NSURL
   
   let filePath = NSTemporaryDirectory().stringByAppendingString(filename)   
   let filename = “testVideo.mp4"
   let outputURL = NSURL(fileURLWithPath: filePath)
   
   let avAsset = AVURLAsset(URL: myUrl, options: nil)
   let exportSession = AVAssetExportSession(asset: avAsset, presetName: AVAssetExportPresetPassthrough)
   
   exportSession!.outputFileType = AVFileTypeMPEG4
   exportSession!.outputURL = outputURL
   
   exportSession!.exportAsynchronouslyWithCompletionHandler { () -> Void in
               do {
                   try NSFileManager.defaultManager().removeItemAtPath(filePath)
                   switch exportSession!.status {
                   case AVAssetExportSessionStatus.Completed:
                       PHAssetChangeRequest.creationRequestForAssetFromVideoAtFileURL(NSURL(fileURLWithPath: urlR)) // エラー
                       break
                   case AVAssetExportSessionStatus.Failed:
                       print("failed \(exportSession?.error)")
                       break
                   case AVAssetExportSessionStatus.Cancelled:
                       print("cancelled \(exportSession?.error)")
                       break
                   default:
                       break
                   }
               } catch {
                   print("Error")
               }
   }
}
```
  • Swift 2

    1353 questions

    Swift 2は、Apple社が独自に開発を行っている言語「Swift」のアップグレード版です。iOSやOS X、さらにLinuxにも対応可能です。また、throws-catchベースのエラーハンドリングが追加されています。

8 コードの追加

daigakusei

daigakusei score 18

2016/06/30 12:04  投稿

Swiftで動画をMP4に変換したい
Swiftでカメラロールにある動画を取り出した(~.movの)ものをmp4に変換したいと思い調べていると、
下記の記事を見つけて実装してみましたが変換がうまくいかなかったので質問させていただきました。
[Swift で録画したビデオ(mov)を MP4 に変換する](http://qiita.com/takecian/items/2083a61f07167a67e792)
コード内の moviePath はString型で既にカメラロールから選択した動画のパスが入っている状態です。
```Swift
// mp4変換
               let filename = "testVideo.mp4"
               
               let filePath = NSTemporaryDirectory().stringByAppendingString(filename)
               let outputURL = NSURL(fileURLWithPath: filePath)
               
               let myUrl: NSURL = NSURL(string: moviePath)!
               let avAsset = AVURLAsset(URL: myUrl, options: nil)
               let exportSession = AVAssetExportSession(asset: avAsset, presetName: AVAssetExportPresetPassthrough)
               
               exportSession!.outputFileType = AVFileTypeMPEG4 // ファイルタイプの指定
               exportSession!.outputURL = outputURL // 保管場所を指定
exportSession!.exportAsynchronouslyWithCompletionHandler { () -> Void in
                   do {
                       try NSFileManager.defaultManager().removeItemAtPath(filePath)
                       switch exportSession!.status {
                       case AVAssetExportSessionStatus.Completed:
                           PHAssetChangeRequest.creationRequestForAssetFromVideoAtFileURL(NSURL(fileURLWithPath: self.moviePath))
                           break
                       case AVAssetExportSessionStatus.Failed:
                           print("failed \(exportSession?.error)")  
                           break
                       case AVAssetExportSessionStatus.Cancelled:
                           print("cancelled \(exportSession?.error)")  
                           break
                       default:
                           break
                       }
                   } catch {
                       print("Error")
                   }
               }
```
実行してもエラーはでないものの、ローカルにも保存されていません。
outputURLで管理場所を指定しているにもかかわらずその場所に~.mp4が入らない原因はなぜでしょうか。
どなたか教えていただけると助かります。
  • Swift 2

    1353 questions

    Swift 2は、Apple社が独自に開発を行っている言語「Swift」のアップグレード版です。iOSやOS X、さらにLinuxにも対応可能です。また、throws-catchベースのエラーハンドリングが追加されています。

7 誤字

daigakusei

daigakusei score 18

2016/06/30 12:02  投稿

Swiftで動画をMP4に変換したい
Swiftでカメラロールにある動画を取り出した(~.movの)ものをmp4に変換したいと思い調べていると、
下記の記事を見つけて実装してみましたが変換がうまくいかなかったので質問させていただきました。
[Swift で録画したビデオ(mov)を MP4 に変換する](http://qiita.com/takecian/items/2083a61f07167a67e792)
コード内の moviePath はString型で既にカメラロールから選択した動画のパスが入っている状態です。
```Swift
// mp4変換
               let filename = "testVideo.mp4"
               
               let filepath = NSTemporaryDirectory().stringByAppendingString(filename)
               let outputURL = NSURL(fileURLWithPath: filepath)
               let filePath = NSTemporaryDirectory().stringByAppendingString(filename)
               let outputURL = NSURL(fileURLWithPath: filePath)
               
               let myUrl: NSURL = NSURL(string: moviePath)!
               let avAsset = AVURLAsset(URL: myUrl, options: nil)
               let exportSession = AVAssetExportSession(asset: avAsset, presetName: AVAssetExportPresetPassthrough)
               
               exportSession!.outputFileType = AVFileTypeMPEG4 // ファイルタイプの指定
               exportSession!.outputURL = outputURL // 保管場所を指定
exportSession!.exportAsynchronouslyWithCompletionHandler { () -> Void in
                   do {
                       try NSFileManager.defaultManager().removeItemAtPath(filePath)
                       switch exportSession!.status {
                       case AVAssetExportSessionStatus.Completed:
                           PHAssetChangeRequest.creationRequestForAssetFromVideoAtFileURL(NSURL(fileURLWithPath: self.moviePath))
                           break
                       case AVAssetExportSessionStatus.Failed:
                           break
                       case AVAssetExportSessionStatus.Cancelled:
                           break
                       default:
                           break
                       }
                   } catch {
                       print("Error")
                   }
               }
```
実行してもエラーはでないものの、ローカルにも保存されていません。
outputURLで管理場所を指定しているにもかかわらずその場所に~.mp4が入らない原因はなぜでしょうか。
どなたか教えていただけると助かります。
  • Swift 2

    1353 questions

    Swift 2は、Apple社が独自に開発を行っている言語「Swift」のアップグレード版です。iOSやOS X、さらにLinuxにも対応可能です。また、throws-catchベースのエラーハンドリングが追加されています。

6 誤字

daigakusei

daigakusei score 18

2016/06/29 23:08  投稿

Swiftで動画をMP4に変換したい
Swiftでカメラロールにある動画を取り出した(~.movの)ものをmp4に変換したいと思い調べていると、
下記の記事を見つけて実装してみましたが変換がうまくいかなかったので質問させていただきました。
[Swift で録画したビデオ(mov)を MP4 に変換する](http://qiita.com/takecian/items/2083a61f07167a67e792)
コード内の moviePath はString型で既にカメラロールから選択した動画のパスが入っている状態です。
```Swift
// mp4変換
               let filename = "testVideo.mp4"
               
               let filepath = NSTemporaryDirectory().stringByAppendingString(filename)
               let outputURL = NSURL(fileURLWithPath: filepath)
               
               let myUrl: NSURL = NSURL(string: moviePath)!
               let avAsset = AVURLAsset(URL: myUrl, options: nil)
               let exportSession = AVAssetExportSession(asset: avAsset, presetName: AVAssetExportPresetPassthrough)
               
               exportSession!.outputFileType = AVFileTypeMPEG4 // ファイルタイプの指定
               exportSession!.outputURL = outputURL // 保管場所を指定
exportSession!.exportAsynchronouslyWithCompletionHandler { () -> Void in
                   do {
                       try NSFileManager.defaultManager().removeItemAtPath(filePath)
                       switch exportSession!.status {
                       case AVAssetExportSessionStatus.Completed:
                           PHAssetChangeRequest.creationRequestForAssetFromVideoAtFileURL(NSURL(fileURLWithPath: self.moviePath))
                           print(self.moviePath)  
                           break
                       case AVAssetExportSessionStatus.Failed:
                           break
                       case AVAssetExportSessionStatus.Cancelled:
                           break
                       default:
                           break
                       }
                   } catch {
                       print("Error")
                   }
               }
```
実行してもエラーはでないものの、ローカルにも保存されていません。
outputURLで管理場所を指定しているにもかかわらずその場所に~.mp4が入らない原因はなぜでしょうか。
どなたか教えていただけると助かります。
  • Swift 2

    1353 questions

    Swift 2は、Apple社が独自に開発を行っている言語「Swift」のアップグレード版です。iOSやOS X、さらにLinuxにも対応可能です。また、throws-catchベースのエラーハンドリングが追加されています。

5 修正

daigakusei

daigakusei score 18

2016/06/29 23:07  投稿

Swiftで動画をMP4に変換したい
Swiftでカメラロールにある動画を取り出した(~.movの)ものをmp4に変換したいと思い調べていると、
下記の記事を見つけて実装してみましたが変換がうまくいかなかったので質問させていただきました。
[Swift で録画したビデオ(mov)を MP4 に変換する](http://qiita.com/takecian/items/2083a61f07167a67e792)
コード内の moviePath はString型で既にカメラロールから選択した動画のパスが入っている状態です。
```Swift
// mp4変換
               let filename = "testVideo.mp4"
               
               let filepath = NSTemporaryDirectory().stringByAppendingString(filename)
               let outputURL = NSURL(fileURLWithPath: filepath)
               
               let myUrl: NSURL = NSURL(string: moviePath)!
               let avAsset = AVURLAsset(URL: myUrl, options: nil)
               let exportSession = AVAssetExportSession(asset: avAsset, presetName: AVAssetExportPresetPassthrough)
               
               exportSession!.outputFileType = AVFileTypeMPEG4 // ファイルタイプの指定
               exportSession!.outputURL = outputURL // 保管場所を指定
exportSession!.exportAsynchronouslyWithCompletionHandler { () -> Void in
                   do {
                       try NSFileManager.defaultManager().removeItemAtPath(filePath)
                       switch exportSession!.status {
                       case AVAssetExportSessionStatus.Completed:
                           //let phphotoLib = PHPhotoLibrary()  
                           PHAssetChangeRequest.creationRequestForAssetFromVideoAtFileURL(NSURL(fileURLWithPath: self.moviePath))
                           print(self.moviePath)
                           break
                       case AVAssetExportSessionStatus.Failed:
                           break
                       case AVAssetExportSessionStatus.Cancelled:
                           break
                       default:
                           break
                       }
                   } catch {
                       print("Error")
                   }
               }
```
実行してもエラーはでないものの、ローカルにも保存されていません。
outputURLで管理場所を指定しているにもかかわらずその場所に~.mp4が入らない原因はなぜでしょうか。
どなたか教えていただけると助かります。
  • Swift 2

    1353 questions

    Swift 2は、Apple社が独自に開発を行っている言語「Swift」のアップグレード版です。iOSやOS X、さらにLinuxにも対応可能です。また、throws-catchベースのエラーハンドリングが追加されています。

4 コードの修正

daigakusei

daigakusei score 18

2016/06/29 23:05  投稿

Swiftで動画をMP4に変換したい
Swiftでカメラロールにある動画を取り出した(~.movの)ものをmp4に変換したいと思い調べていると、
下記の記事を見つけて実装してみましたが変換がうまくいかなかったので質問させていただきました。
[Swift で録画したビデオ(mov)を MP4 に変換する](http://qiita.com/takecian/items/2083a61f07167a67e792)
コード内の moviePath はString型で既にカメラロールから選択した動画のパスが入っている状態です。
```Swift
// mp4変換
               let filename = "testVideo.mp4"
               
               let filepath = NSTemporaryDirectory().stringByAppendingString(filename)
               let outputURL = NSURL(fileURLWithPath: filepath)
               
               let myUrl: NSURL = NSURL(string: moviePath)!
               let avAsset = AVURLAsset(URL: myUrl, options: nil)
               let exportSession = AVAssetExportSession(asset: avAsset, presetName: AVAssetExportPresetPassthrough)
               
               exportSession!.outputFileType = AVFileTypeMPEG4 // ファイルタイプの指定
               exportSession!.outputURL = outputURL // 保管場所を指定
 
exportSession!.exportAsynchronouslyWithCompletionHandler { () -> Void in  
                   do {  
                       try NSFileManager.defaultManager().removeItemAtPath(filePath)  
                       switch exportSession!.status {  
                       case AVAssetExportSessionStatus.Completed:  
                           //let phphotoLib = PHPhotoLibrary()  
                           PHAssetChangeRequest.creationRequestForAssetFromVideoAtFileURL(NSURL(fileURLWithPath: self.moviePath))  
                           print(self.moviePath)  
                           break  
                       case AVAssetExportSessionStatus.Failed:  
                           break  
                       case AVAssetExportSessionStatus.Cancelled:  
                           break  
                       default:  
                           break  
                       }  
                   } catch {  
                       print("Error")  
                   }  
               }  
```
実行してもエラーはでないものの、ローカルにも保存されていません。
outputURLで管理場所を指定しているにもかかわらずその場所に~.mp4が入らない原因はなぜでしょうか。
どなたか教えていただけると助かります。
  • Swift 2

    1353 questions

    Swift 2は、Apple社が独自に開発を行っている言語「Swift」のアップグレード版です。iOSやOS X、さらにLinuxにも対応可能です。また、throws-catchベースのエラーハンドリングが追加されています。

3 質問内容の訂正

daigakusei

daigakusei score 18

2016/06/27 11:21  投稿

Swiftで動画をMP4に変換したい
Swiftでカメラロールにある動画を取り出した(~.movの)ものをmp4に変換したいと思い調べていると、
下記の記事を見つけて実装してみましたが変換がうまくいかなかったので質問させていただきました。
[Swift で録画したビデオ(mov)を MP4 に変換する](http://qiita.com/takecian/items/2083a61f07167a67e792)
コード内の moviePath はString型で既にカメラロールから選択した動画のパスが入っている状態です。
```Swift
// mp4変換
let filename = "testVideo.mp4"
let filepath = NSTemporaryDirectory().stringByAppendingString(filename)
let outputURL = NSURL(fileURLWithPath: filepath)
let myUrl: NSURL = NSURL(string: moviePath)!
let avAsset = AVURLAsset(URL: myUrl, options: nil)
let exportSession = AVAssetExportSession(asset: avAsset, presetName: AVAssetExportPresetPassthrough)
exportSession!.outputFileType = AVFileTypeMPEG4 // ファイルタイプの指定
exportSession!.outputURL = outputURL // 保管場所を指定
```
実行してもエラーはでないものの、ローカルにも保存されていません。
outputURLで管理場所を指定しているにもかかわらずその場所に~.mp4が入らない原因はなぜでしょうか。
どなたか教えていただけると助かります。
  • Swift 2

    1353 questions

    Swift 2は、Apple社が独自に開発を行っている言語「Swift」のアップグレード版です。iOSやOS X、さらにLinuxにも対応可能です。また、throws-catchベースのエラーハンドリングが追加されています。

2 質問の仕方の訂正

daigakusei

daigakusei score 18

2016/06/27 11:21  投稿

Swiftで動画をMP4に変換したい
Swiftでカメラロールにある動画を取り出した(~.movの)ものをmp4に変換したいと思い調べていると、
下記の記事を見つけて実装してみましたが記載されている内容を理解できずにコードを書いてしまっており、
案の定変換がうまくいかなかったので質問させていただきました。
下記の記事を見つけて実装してみましたが変換がうまくいかなかったので質問させていただきました。
[Swift で録画したビデオ(mov)を MP4 に変換する](http://qiita.com/takecian/items/2083a61f07167a67e792)
コード内の moviePath はString型で既にカメラロールから選択した動画のパスが入っている状態です。
```Swift
// mp4変換
               let filename = "testVideo.mp4"
               
               let filepath = NSTemporaryDirectory().stringByAppendingString(filename)
               let outputURL = NSURL(fileURLWithPath: filepath)
               
               let myUrl: NSURL = NSURL(string: moviePath)!
               let avAsset = AVURLAsset(URL: myUrl, options: nil)
               let exportSession = AVAssetExportSession(asset: avAsset, presetName: AVAssetExportPresetPassthrough)
               
               exportSession!.outputFileType = AVFileTypeMPEG4 // ファイルタイプの指定
               exportSession!.outputURL = outputURL // 保管場所を指定
```
実行してもエラーはでないものの、ローカルにも保存されていません。
どんな記述が足りないのか、またこの方法であっているのかどうかわかりません。
outputURLで管理場所を指定しているにもかかわらずその場所に~.mp4が入らない原因はなぜでしょうか。
どなたか教えていただけると助かります。
  • Swift 2

    1353 questions

    Swift 2は、Apple社が独自に開発を行っている言語「Swift」のアップグレード版です。iOSやOS X、さらにLinuxにも対応可能です。また、throws-catchベースのエラーハンドリングが追加されています。

1 誤字

daigakusei

daigakusei score 18

2016/06/26 17:19  投稿

Swiftで動画をMP4に変換したい
Swiftでカメラロールにある動画を取り出した(~.movの)ものをmp4に変換したいと思い調べていると、
下記の記事を見つけて実装してみましたが記載されている内容を理解できずにコードを書いてしまっており、
案の定変換がうまくいかなかったので質問させていただきました。
[Swift で録画したビデオ(mov)を MP4 に変換する](http://qiita.com/takecian/items/2083a61f07167a67e792)
コード内の moviePath はString型で既にカメラロールから選択した動画のパスが入っている状態です。
```Swift
// mp4変換
               let filename = "testVideo.mp4"
               
               let filepath = NSTemporaryDirectory().stringByAppendingString(filename)
               let outputURL = NSURL(fileURLWithPath: filepath)
               
               let myUrl: NSURL = NSURL(string: moviePath)!
               let avAsset = AVURLAsset(URL: myUrl, options: nil)
               let exportSession = AVAssetExportSession(asset: avAsset, presetName: AVAssetExportPresetPassthrough)
               
               exportSession!.outputFileType = AVFileTypeMPEG4 // ファイルタイプの指定
               exportSession!.outputURL = outputURL // 保管場所を指定
```
実行してもエラーはでないもの、ローカルにも保存されていません。
実行してもエラーはでないものの、ローカルにも保存されていません。
どんな記述が足りないのか、またこの方法であっているのかどうかわかりません。
どなたか教えていただけると助かります。
  • Swift 2

    1353 questions

    Swift 2は、Apple社が独自に開発を行っている言語「Swift」のアップグレード版です。iOSやOS X、さらにLinuxにも対応可能です。また、throws-catchベースのエラーハンドリングが追加されています。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る