Resize the video to particular resolution 1280X720 selected by AssetsPickerViewController in Swift3 iOS
up vote
0
down vote
favorite
I am creating a Video based App in Swift3. Where user can select multiple videos from device gallery using AssetsPickerViewController. My requirement is I have to first check the selected video resolution, if the resolution is already 1280X720 then I don't have to resize it otherwise I have to resize to video resolution 1280X720.
Here is my code for resolution comparison:
func assetsPicker(controller: AssetsPickerViewController, selected assets: [PHAsset]) {
if assets[0].mediaType == .video{
let options: PHVideoRequestOptions = PHVideoRequestOptions()
options.version = .original
options.isNetworkAccessAllowed = true
self.showLoaderView()
for i in 0..<self.assets.count {
let videos = VideoFileModel()
PHImageManager.default().requestAVAsset(forVideo: self.assets[i] , options: options, resultHandler: { (asset, audioMix, info) in
let urlAsset = asset as! AVURLAsset
DispatchQueue.main.async {
let localVideoUrl = urlAsset.url
var frameRate = CGSize()
frameRate = self.resolutionForLocalVideo(url: localVideoUrl)!
let actualFrameRate = CGSize(width: 1280, height: 720)
if frameRate.equalTo(actualFrameRate){
//resolutions are equal (don't have to resize)
}
else{
//resolutions are not equal (resize to 1280 X 720)
}
self.loadingLayerView.removeFromSuperview()
}
}
Can anyone help me to resize the Video resolution here, Thank you!
ios video swift3 avasset avassetexportsession
add a comment |
up vote
0
down vote
favorite
I am creating a Video based App in Swift3. Where user can select multiple videos from device gallery using AssetsPickerViewController. My requirement is I have to first check the selected video resolution, if the resolution is already 1280X720 then I don't have to resize it otherwise I have to resize to video resolution 1280X720.
Here is my code for resolution comparison:
func assetsPicker(controller: AssetsPickerViewController, selected assets: [PHAsset]) {
if assets[0].mediaType == .video{
let options: PHVideoRequestOptions = PHVideoRequestOptions()
options.version = .original
options.isNetworkAccessAllowed = true
self.showLoaderView()
for i in 0..<self.assets.count {
let videos = VideoFileModel()
PHImageManager.default().requestAVAsset(forVideo: self.assets[i] , options: options, resultHandler: { (asset, audioMix, info) in
let urlAsset = asset as! AVURLAsset
DispatchQueue.main.async {
let localVideoUrl = urlAsset.url
var frameRate = CGSize()
frameRate = self.resolutionForLocalVideo(url: localVideoUrl)!
let actualFrameRate = CGSize(width: 1280, height: 720)
if frameRate.equalTo(actualFrameRate){
//resolutions are equal (don't have to resize)
}
else{
//resolutions are not equal (resize to 1280 X 720)
}
self.loadingLayerView.removeFromSuperview()
}
}
Can anyone help me to resize the Video resolution here, Thank you!
ios video swift3 avasset avassetexportsession
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
I am creating a Video based App in Swift3. Where user can select multiple videos from device gallery using AssetsPickerViewController. My requirement is I have to first check the selected video resolution, if the resolution is already 1280X720 then I don't have to resize it otherwise I have to resize to video resolution 1280X720.
Here is my code for resolution comparison:
func assetsPicker(controller: AssetsPickerViewController, selected assets: [PHAsset]) {
if assets[0].mediaType == .video{
let options: PHVideoRequestOptions = PHVideoRequestOptions()
options.version = .original
options.isNetworkAccessAllowed = true
self.showLoaderView()
for i in 0..<self.assets.count {
let videos = VideoFileModel()
PHImageManager.default().requestAVAsset(forVideo: self.assets[i] , options: options, resultHandler: { (asset, audioMix, info) in
let urlAsset = asset as! AVURLAsset
DispatchQueue.main.async {
let localVideoUrl = urlAsset.url
var frameRate = CGSize()
frameRate = self.resolutionForLocalVideo(url: localVideoUrl)!
let actualFrameRate = CGSize(width: 1280, height: 720)
if frameRate.equalTo(actualFrameRate){
//resolutions are equal (don't have to resize)
}
else{
//resolutions are not equal (resize to 1280 X 720)
}
self.loadingLayerView.removeFromSuperview()
}
}
Can anyone help me to resize the Video resolution here, Thank you!
ios video swift3 avasset avassetexportsession
I am creating a Video based App in Swift3. Where user can select multiple videos from device gallery using AssetsPickerViewController. My requirement is I have to first check the selected video resolution, if the resolution is already 1280X720 then I don't have to resize it otherwise I have to resize to video resolution 1280X720.
Here is my code for resolution comparison:
func assetsPicker(controller: AssetsPickerViewController, selected assets: [PHAsset]) {
if assets[0].mediaType == .video{
let options: PHVideoRequestOptions = PHVideoRequestOptions()
options.version = .original
options.isNetworkAccessAllowed = true
self.showLoaderView()
for i in 0..<self.assets.count {
let videos = VideoFileModel()
PHImageManager.default().requestAVAsset(forVideo: self.assets[i] , options: options, resultHandler: { (asset, audioMix, info) in
let urlAsset = asset as! AVURLAsset
DispatchQueue.main.async {
let localVideoUrl = urlAsset.url
var frameRate = CGSize()
frameRate = self.resolutionForLocalVideo(url: localVideoUrl)!
let actualFrameRate = CGSize(width: 1280, height: 720)
if frameRate.equalTo(actualFrameRate){
//resolutions are equal (don't have to resize)
}
else{
//resolutions are not equal (resize to 1280 X 720)
}
self.loadingLayerView.removeFromSuperview()
}
}
Can anyone help me to resize the Video resolution here, Thank you!
ios video swift3 avasset avassetexportsession
ios video swift3 avasset avassetexportsession
asked Nov 19 at 5:59
user2786
1061620
1061620
add a comment |
add a comment |
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53369076%2fresize-the-video-to-particular-resolution-1280x720-selected-by-assetspickerviewc%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown