Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Video Editing in iOS
potatotips #2
2013.12.11
Yusei Nishiyama
自己紹介
name : 西山勇世
twitter : @yuseinishiyama
blog : http://yuseinishiyama.com
・iOS / Unity
・動画編集 / AR
・最近は色々と拗らせてSchemeとか......
動画編集してますか??
AVFoundation便利最高!!!!
AVFoundationで出来ること
Composing a Timeline

複数の動画をつないだり...。

AVMutableComposition *composition = [AVMutableComposition
composition];
AVMutableCo...
Audio Mixing

ボリュームランプをつけてみたり...。
AVMutableAudioMixInputParameters *trackMix =
[AVMutableAudioMixInputParameters
audioMixI...
Building Transitions
複数の動画を同時に表示したり...。
ディゾルブやコーナーワイプなどに
使えそう。
長い...

AVMutableVideoCompositionInstruction *transition =
[...
CALayers in Movies

さらには、CALayerをオーバレイしたり
なんてことも可能!
CALayer *parentLayer = [CALayer layer];
CALayer *videoLayer = [CALayer...
videoComposition.animationTool =
[AVVideoCompositionCoreAnimationTool
videoCompositionCoreAnimationToolWithPostProce
ssing...
Advanced Editing
ピクセル単位での編集
• 録画やファイル読み込みなどに、低レベルの
APIを利用すればPixelBufferにアクセス可能
(cf.AVAssetReader/Writer、
AVCaptureVideoDataOutput)

• それらをCPUで編集するのは流石に...
一応、iOS7にも触れておくと...
・Custom Video Composition
パイプラインがより柔軟になった。
AVAssetReader/Writerに比べると、容易にpixelBufferにアクセスできるた
め、コードの見通しが...
Summary
• AVFoundationには、動画編集を柔軟に
行うためのAPIが多数存在する。

• GPUImageを使用することで、
OpenGLを利用したピクセル単位での処
理が簡単に行える。
More Information
• WWDC 2011
Working with Media in AVFoundation

• WWDC 2013
Advanced Editing with AV Foundation
ありがとうございました
Video Editing in iOS
Upcoming SlideShare
Loading in …5
×

Video Editing in iOS

4,373 views

Published on

iOSで動画編集をするためのTips。主に、AVFoundationの機能について解説しています。

Published in: Technology
  • Be the first to comment

Video Editing in iOS

  1. 1. Video Editing in iOS potatotips #2 2013.12.11 Yusei Nishiyama
  2. 2. 自己紹介 name : 西山勇世 twitter : @yuseinishiyama blog : http://yuseinishiyama.com ・iOS / Unity ・動画編集 / AR ・最近は色々と拗らせてSchemeとか... これからグイグイ ・社会人2年目( ) くる予定
  3. 3. 動画編集してますか??
  4. 4. AVFoundation便利最高!!!! AVFoundationで出来ること
  5. 5. Composing a Timeline 複数の動画をつないだり...。 AVMutableComposition *composition = [AVMutableComposition composition]; AVMutableCompositionTrack *compositionVideoTrack = [composition addMutableTrackWithMediaType:AVMediaTypeVideo preferredTrackID:...]; [compositionVideoTrack insertTimeRange:... ofTrack:clipVideoTrack atTime:... error:...];
  6. 6. Audio Mixing ボリュームランプをつけてみたり...。 AVMutableAudioMixInputParameters *trackMix = [AVMutableAudioMixInputParameters audioMixInputParametersWithTrack:mainAudioTrack]; [trackMix setVolume:1.0 atTime:kCMTimeZero]; [trackMix setVolumeRampFromStartVolume:1.0 toEndVolume:0.2 timeRange:CMTimeRangeMake(x,y-x)]; ... AVMutableAudioMix *audioMix = [AVMutableAudioMix audioMix]; audioMix.inputParameters = [NSArray arrayWithObject:trackMix];
  7. 7. Building Transitions 複数の動画を同時に表示したり...。 ディゾルブやコーナーワイプなどに 使えそう。 長い... AVMutableVideoCompositionInstruction *transition = [AVMutableVideoCompositionInstruction videoCompositionInstruction]; transition.timeRange = transitionTimeRange; AVMutableVideoCompositionLayerInstruction *fromLayer = [AVMutableVideoCompositionLayerInstruction videoCompositionLayerInstructionWithAssetTrack:trackA]; [fromLayer setOpacityRampFromStartOpacity:1.0 toEndOpacity:0.0 timeRange:transitionTimeRange]; AVMutableVideoCompositionLayerInstruction *toLayer = ... layerInstructions = [NSArray arrayWithObjects:fromLayer, toLayer, nil];
  8. 8. CALayers in Movies さらには、CALayerをオーバレイしたり なんてことも可能! CALayer *parentLayer = [CALayer layer]; CALayer *videoLayer = [CALayer layer]; parentLayer.frame = CGRectMake(0, 0, VIDEO_SIZE.width, VIDEO_SIZE.height); videoLayer.frame = CGRectMake(0, 0, VIDEO_SIZE.width, VIDEO_SIZE.height); [parentLayer addSublayer:videoLayer]; [parentLayer addSublayer:[self textLayerWithStartTime:startTime withText:text]]; videoComposition.animationTool = [AVVideoCompositionCoreAnimationTool videoCompositionCoreAnimationToolWithPostProcessingAsVideoLayer:videoLayer inLayer:parentLayer];
  9. 9. videoComposition.animationTool = [AVVideoCompositionCoreAnimationTool videoCompositionCoreAnimationToolWithPostProce ssingAsVideoLayer:videoLayer inLayer:parentLayer];
  10. 10. Advanced Editing ピクセル単位での編集
  11. 11. • 録画やファイル読み込みなどに、低レベルの APIを利用すればPixelBufferにアクセス可能 (cf.AVAssetReader/Writer、 AVCaptureVideoDataOutput) • それらをCPUで編集するのは流石に重い... →GPUで処理したい。 • なんだかんだでGPUImageがおすすめ。OpenGLの セットアップのためにboilerplate codeを 書かなくて良いのは大きい。
  12. 12. 一応、iOS7にも触れておくと... ・Custom Video Composition パイプラインがより柔軟になった。 AVAssetReader/Writerに比べると、容易にpixelBufferにアクセスできるた め、コードの見通しが良くなる。 @protocol AVVideoCompositingに 準拠したクラス。
  13. 13. Summary
  14. 14. • AVFoundationには、動画編集を柔軟に 行うためのAPIが多数存在する。 • GPUImageを使用することで、 OpenGLを利用したピクセル単位での処 理が簡単に行える。
  15. 15. More Information • WWDC 2011 Working with Media in AVFoundation • WWDC 2013 Advanced Editing with AV Foundation
  16. 16. ありがとうございました

×