https://github.com/sdwebimage/sdwebimagevideocoder
A toy (non-production) SDWebImage coder plugin to play Video Format like MP4 on Animated Image View
https://github.com/sdwebimage/sdwebimagevideocoder
ios macos mov mp4 sdwebimage tvos
Last synced: 22 days ago
JSON representation
A toy (non-production) SDWebImage coder plugin to play Video Format like MP4 on Animated Image View
- Host: GitHub
- URL: https://github.com/sdwebimage/sdwebimagevideocoder
- Owner: SDWebImage
- License: mit
- Created: 2019-11-17T08:07:21.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2024-07-16T11:45:28.000Z (12 months ago)
- Last Synced: 2025-06-04T02:43:46.630Z (29 days ago)
- Topics: ios, macos, mov, mp4, sdwebimage, tvos
- Language: Objective-C
- Size: 2.34 MB
- Stars: 12
- Watchers: 2
- Forks: 3
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# SDWebImageVideoCoder
[](https://travis-ci.org/SDWebImage/SDWebImageVideoCoder)
[](https://cocoapods.org/pods/SDWebImageVideoCoder)
[](https://cocoapods.org/pods/SDWebImageVideoCoder)
[](https://cocoapods.org/pods/SDWebImageVideoCoder)## What's for
This is just a toy coder plugin for [SDWebImage](https://github.com/SDWebImage). Which aim to provide a demo usage that how SDWebImage combined the Animated Image View and Player and let it works for generic usage and customization.
**Important**: This project is just a toy, which means, it does not provide any production ready features, and the performances is really slow.
For real world rendering for short video files (like [Imgur's GIFV format](https://help.imgur.com/hc/en-us/articles/208606616-What-is-GIFV-)). You should always prefers to use the video player and rendering components, like AVKit's [AVPlayerViewController](https://developer.apple.com/documentation/avkit/avplayerviewcontroller) .
This coder plugin, provide the animation loading support for video format, including:
+ MP4 (MPEG/4)
+ M4V (Apple iTunes Movie)
+ MOV (QuickTime Movie)## Requirements
+ iOS 9+
+ macOS 10.11+
+ tvOS 9+## Installation
#### CocoaPods
SDWebImageVideoCoder is available through [CocoaPods](https://cocoapods.org). To install
it, simply add the following line to your Podfile:```ruby
pod 'SDWebImageVideoCoder'
```#### Carthage
SDWebImageVideoCoder is available through [Carthage](https://github.com/Carthage/Carthage).
```
github "SDWebImage/SDWebImageVideoCoder"
```#### Swift Package Manager (Xcode 11+)
SDWebImageVideoCoder is available through [Swift Package Manager](https://swift.org/package-manager).
```swift
let package = Package(
dependencies: [
.package(url: "https://github.com/SDWebImage/SDWebImageVideoCoder.git", from: "0.2.0")
]
)
```## Usage
### Load Video URL
For coder plugin usage, see [Wiki - Coder Usage](https://github.com/SDWebImage/SDWebImage/wiki/Advanced-Usage#coder-usage)
+ Objective-C
```objective-c
// register coder
[SDImageCodersManager.sharedCoder addCoder:SDImageVideoCoder.sharedCoder];
// load URL
SDAnimatedImageView *imageView;
NSURL *videoURL = [NSURL URLWithString:@"https://i.imgur.com/FY1AbSo.mp4"];
[imageView sd_setImageWithURL:videoURL];
```+ Swift
```swift
// register coder
SDImageCodersManager.shared.addCoder(SDImageVideoCoder.shared)
// load URL
let imageView: SDAnimatedImageView
let url = URL(string: "https://i.imgur.com/FY1AbSo.mp4")
imageView.sd_setImage(url: url)
```### AVAsset player usage
For player usage, see [Wiki - Animated Image Player](https://github.com/SDWebImage/SDWebImage/wiki/Advanced-Usage#animated-player-530)
+ Objective-C
```objective-c
// AVAsset
AVAsset *asset;
AVAssetImageGenerator *generator = [AVAssetImageGenerator assetImageGeneratorWithAsset:asset];
generator.appliesPreferredTrackTransform = YES;
generator.requestedTimeToleranceBefore = kCMTimeZero;
generator.requestedTimeToleranceAfter = kCMTimeZero;
// player
SDAnimatedImagePlayer *player = [SDAnimatedImagePlayer playerWithProvider:generator];
player.animationFrameHandler = ^(NSUInteger index, UIImage * frame) {
// frames
};
[player seekToFrameAtIndex:5 loopCount:0];
[player play];
```+ Swift
```swift
let asset: AVAsset
let generator = AVAssetImageGenerator(asset: asset)
generator.appliesPreferredTrackTransform = true
generator.requestedTimeToleranceBefore = .zero
generator.requestedTimeToleranceAfter = .zero
// Player
let player = SDAnimatedImagePlayer(provider: generator)
player.animationFrameHandler = { (index, frame) in
// frames
}
player.seekToFrame(at: 5, loopCount: 0)
player.play()
```## Example
To run the example project, clone the repo, and run `pod install` from the Example directory first.
This demo MP4 video is from [Imgur](https://imgur.com/). You can always try you short video files as well.
## Author
DreamPiggy, [email protected]
## License
SDWebImageVideoCoder is available under the MIT license. See the LICENSE file for more info.