Upload
ruijun-li
View
114
Download
14
Embed Size (px)
Citation preview
iOS APP iOS APP
iOS APP
iOS app
Remix app AVFoundation GPUImage iOS app
iOS AVFoundation
OpenGL
GPUImage OpenGL
VideoToolbox
C ffmpeg
iOS
AVFoundation ffmpeg ffmpeg
OpenGL GPUImage OpenGL
GPUImage OpenGL iOS
Video Toolbox AV
AVFoundation AVCaptureDevice
AVPlayerAVAudioPlayer
AVComposation
AVAssetWriterAVAssetReader
AVFoundation
AVFoundation API
AVFoundation API AVAudioPlayer AVAudioRecorder
https://developer.apple.com/reference/avfoundation/avcapturedevice
AVFoundation -
iOS ImagePicker
AVCMoFOutStillOutPreviewLayer
Capture Session Input Input
Output Input
AVFoundation -
AVCaptureVideoDataOutput
AVFoundation -
AVAsset
AVFoundation Asset AVAsset
AVFoundation -
AVAsset
AVURLAsset
AVAsset AVURLAsset
AVFoundation -
AVAsset
AVAssertTracks Transform Metadata
AVAsset Tracks
AVFoundation -
AVPlayer
AVPlayerItem AVAsset
AVPlayerLayer
AVPlayer Asset AVPlayerLater
AVFoundation - Plus
AVPlayer
AVPlayerItem AVAsset
AVPlayerLayerAVPlayerLayerAVPlayerLayerAVPlayerLayerAVPlayerLayerAVPlayerLayer
AVPlayer PlayerLayer 200%
AVFoundation - Plus
AVPlayer
AVPlayerItem AVAsset
AVPlayerLayerAVPlayerLayerAVPlayerLayerAVPlayerLayerAVPlayerLayerAVPlayerLayer
AVPlayer PlayerLayer 200%
--
2015 Http
2015
AVFoundation -
AVPlayer
AVPlayerItem AVURLAsset
AVPlayerLayer
Local Http Server Video URL
AVFoundation -
AVPlayer
AVPlayerItem AVURLAsset
AVPlayerLayer
Local Http Server Video URL
B ijkplayer
B ijkplayer
B ijkplayer
B ijkplayer
B ijkplayer
AVFoundation -
AVPlayer
AVPlayerItem AVURLAsset
AVPlayerLayer
Local Http Server Video URL
Local Proxy Server
AVURLAsset Http
http://www.codeproject.com/Articles/875105/Audio-streaming-and-caching-in-iOS-using
https://github.com/renjithn/AVAssetResourceLoader-Video-Example
iOS 6 AVAssetResourceLoader
http://www.codeproject.com/Articles/875105/Audio-streaming-and-caching-in-iOS-usinghttp://www.codeproject.com/Articles/875105/Audio-streaming-and-caching-in-iOS-using
AVFoundation -
AVURLAsset
Video URL
AVAssetResourceLoader
AVAssetResourceLoadingRequest
AVAssetResourceLoaderDelegate
iOS 6 ResourceLoader
AVURLAsset URL ResourceLoader delegate URL
delegate delegate Request
demo
AVFoundation -
AVURLAsset
Video URL
AVAssetResourceLoader
AVAssetResourceLoadingRequest
AVAssetResourceLoaderDelegate
https://github.com/renjithn/AVAssetResourceLoader-Video-Example
iOS 6 ResourceLoader
AVURLAsset URL ResourceLoader delegate URL
delegate delegate Request
demo
AVFoundation -
AVURLAsset
Video URL
AVAssetResourceLoader
AVAssetResourceLoadingRequest
AVAssetResourceLoaderDelegate
https://github.com/renjithn/AVAssetResourceLoader-Video-Example
iOS 6 ResourceLoader
AVURLAsset URL ResourceLoader delegate URL
delegate delegate Request
demo
iOS
AVFoundation -
AVAsset
AssetAsset AV
AVFoundation -
AVAsset
AVComposition
AVMutableComposition
Asset AVComxxxxxxx
Asset Asset
AVFoundation -
AVAsset AVMutableComposition Asset
Asset Asset Track track VCD track
Asset
Composition Asset
MutableComposition Composition
AVFoundation -
CompositionTrack video CompositionLayerInstructioninstruction VideoComposition Core Animation
AVFoundation -
AudioMixInputParameters AudioComposition audio pitch
AVFoundation -
AssetExportSession
Composition app
AssetVideoComposition Asset ExportSession
demo
demo
Core Video
iOS
Core Video -
Core Video Core Video AVFoundation
Core Video iOS Objective-C API C API
Core Video -
CMSampleBuffer
CVPixelBuffer
CVImageBuffer
buffer
CMSB Buffer CVImageBuffer
CVPixelBuffer CVImageBuffer CVPB CVIB
Core Video - Pixel Format32 ARGB k32ARGBPixelFormat
32 BGRA k32BGRAPixelFormat
YUV YUV 411
Core Video -
CVImageBuffer/CVPixelBuffer
WidthHeight Data Size
Bytes Per Row Base Address
buffer Byte Base Address
Core Video - Bitmap BGRA ARGB
http://neareal.com/470/
RGB 32ARGB 32BGRA32 AlphaRedGreenBlue
BGRA BGRA RGB
4 byte BGRABGRABGRA
0 Bytes Per Row
Core Video - YUV Y
U
V
YUV YUVYUVYCbCrYPbPr YUV
YUV YUV
YCbCr
PbPr SDTV HDTV
Core Video - YUV
YUV YUV UV Y YUV
iPhone
Core Video - YUV
UV
Core Video - YUV 444Y:U:V=4:4:4YUV
422Y:U:V=4:2:2YUV2:1
411Y:U:V=4:1:1YUV4:1
420Y:UV=4:2Y:U:V=4:1:1YUV2:1
http://www.codernote.top/blog/info/119
RGBA 32 bitYUV UV
YUV RGB BGRA
http://www.codernote.top/blog/info/119
Core Video -
x.mp4
AVPlayerItem AVPlayer
AVPlayerItemVideoOutput
CVPixelBuffer
CADisplayLink
Player Item
PlayerOutput buffer
DisplayLink Output buffer
DisplayLink View
Core Video - Plus
demo
demo
GPUImage
OpenGL iOS GPUImage
GPUImage -
Objective-C OpenGL
showcase
GPUImageToneCurveFilterGPUImage
Photoshop ACV
ACV
GPUImage
GPUImageFilter -
texture GPUImageFilter
texture OpenGL texture
GPUImageFilter -
GPUImage shader
shadertoy texture
GPUImageFilter -
shader run
shader language c
highp vec4 4
GPUImageFilter -
shader run
shader language c
highp vec4 4
GPUImageFilter -
shader run
shader language c
highp vec4 4
GPUImageFilter -
GPUImageFilter -
GPUImageTwoInputFilterGPUImage
texture texture
texture
GPUImageTwoInputFilter
GPUImageTwoInputFilterGPUImage
texture texture
texture
texture1
texture2
GPUImageTwoInputFilter
GPUImageTwoInputFilterGPUImage
texture texture
texture
texture1
texture2
GPUImageTwoInputFilter
GPUImageTwoInputFilterGPUImage
texture texture
texture
texture1
texture2
GPUImageTwoInputFilter
demo
gpuimage demo
GPUImageFilter - Advanced
x.mp4
AVPlayerItem AVPlayer
AVPlayerItemVideoOutput
CVPixelBuffer
CADisplayLink
Filter
CVPixelBuffer
CVPixelBuffer AVPlayerItemVideoOutput
AVCaptureVideoDataOutput
AVAssetWriterInputPixelBufferAdaptor
buffer AVAssetWriterInputPixelBufferAdaptor pixel buffer SDAVAssetExportSession export session composition instructions pixel buffer
demo
demo demo
AVFoundation
Core Video
GPUImage OpenGL
SDAVAssetExportSession
SCRecorder
iOS
iOS
GPUImage CPU CPU OpenGL
OpenGL
Shader Language
Video Toolbox / ffmpeg
librtmp
VideoToolbox