视频转码前进行是否为空间视频判断
This commit is contained in:
parent
f9eee97616
commit
ae2160979a
@ -7,7 +7,7 @@
|
||||
<key>Alamofire.xcscheme_^#shared#^_</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>7</integer>
|
||||
<integer>8</integer>
|
||||
</dict>
|
||||
<key>CocoaAsyncSocket.xcscheme_^#shared#^_</key>
|
||||
<dict>
|
||||
@ -17,52 +17,52 @@
|
||||
<key>DeviceKit.xcscheme_^#shared#^_</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>14</integer>
|
||||
<integer>16</integer>
|
||||
</dict>
|
||||
<key>FirebaseCore.xcscheme_^#shared#^_</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>15</integer>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<key>FirebaseCoreExtension.xcscheme_^#shared#^_</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>5</integer>
|
||||
<integer>11</integer>
|
||||
</dict>
|
||||
<key>FirebaseCoreInternal.xcscheme_^#shared#^_</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>17</integer>
|
||||
<integer>5</integer>
|
||||
</dict>
|
||||
<key>FirebaseCrashlytics.xcscheme_^#shared#^_</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>2</integer>
|
||||
<integer>10</integer>
|
||||
</dict>
|
||||
<key>FirebaseInstallations.xcscheme_^#shared#^_</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>21</integer>
|
||||
<integer>13</integer>
|
||||
</dict>
|
||||
<key>FirebaseMessaging.xcscheme_^#shared#^_</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>10</integer>
|
||||
<integer>6</integer>
|
||||
</dict>
|
||||
<key>FirebaseSessions.xcscheme_^#shared#^_</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>12</integer>
|
||||
<integer>18</integer>
|
||||
</dict>
|
||||
<key>GoogleDataTransport.xcscheme_^#shared#^_</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>20</integer>
|
||||
<integer>14</integer>
|
||||
</dict>
|
||||
<key>GoogleUtilities.xcscheme_^#shared#^_</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>9</integer>
|
||||
<integer>4</integer>
|
||||
</dict>
|
||||
<key>KTVHTTPCache.xcscheme_^#shared#^_</key>
|
||||
<dict>
|
||||
@ -72,52 +72,52 @@
|
||||
<key>Kingfisher-Kingfisher.xcscheme_^#shared#^_</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>6</integer>
|
||||
<integer>15</integer>
|
||||
</dict>
|
||||
<key>Kingfisher.xcscheme_^#shared#^_</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>3</integer>
|
||||
<integer>7</integer>
|
||||
</dict>
|
||||
<key>LLCycleScrollView.xcscheme_^#shared#^_</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>4</integer>
|
||||
<integer>17</integer>
|
||||
</dict>
|
||||
<key>Pods-SwiftProject.xcscheme_^#shared#^_</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>19</integer>
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
<key>PromisesObjC.xcscheme_^#shared#^_</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>16</integer>
|
||||
<integer>19</integer>
|
||||
</dict>
|
||||
<key>PromisesSwift.xcscheme_^#shared#^_</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>0</integer>
|
||||
<integer>2</integer>
|
||||
</dict>
|
||||
<key>SVProgressHUD.xcscheme_^#shared#^_</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>13</integer>
|
||||
<integer>20</integer>
|
||||
</dict>
|
||||
<key>SnapKit.xcscheme_^#shared#^_</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>18</integer>
|
||||
<integer>3</integer>
|
||||
</dict>
|
||||
<key>TZImagePickerController.xcscheme_^#shared#^_</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>1</integer>
|
||||
<integer>12</integer>
|
||||
</dict>
|
||||
<key>nanopb.xcscheme_^#shared#^_</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>11</integer>
|
||||
<integer>9</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
|
||||
@ -7,7 +7,7 @@
|
||||
<key>SwiftProject.xcscheme_^#shared#^_</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>8</integer>
|
||||
<integer>21</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
|
||||
Binary file not shown.
@ -158,8 +158,8 @@
|
||||
filePath = "SwiftProject/Project/Controller/RecordingVideo/VRPhotoTransformController.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "153"
|
||||
endingLineNumber = "153"
|
||||
startingLineNumber = "175"
|
||||
endingLineNumber = "175"
|
||||
landmarkName = "viewDidLoad()"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
|
||||
@ -323,7 +323,7 @@ class CCSpatialVideoDisplayController: BaseController, AVPlayerViewControllerDel
|
||||
|
||||
case .parallelEyes://平行眼
|
||||
while let nextSampleBuffer = self.assetOutput!.copyNextSampleBuffer() {
|
||||
// print("平心眼...")
|
||||
|
||||
}
|
||||
self.assetOutput?.reset(forReadingTimeRanges:[NSValue(timeRange: tr)])
|
||||
|
||||
@ -503,16 +503,6 @@ class CCSpatialVideoDisplayController: BaseController, AVPlayerViewControllerDel
|
||||
}
|
||||
|
||||
|
||||
//播放
|
||||
// func play(){
|
||||
//
|
||||
// let playerItem = AVPlayerItem(asset: videoOriginalAsset)
|
||||
// playerLay.player = AVPlayer(playerItem: playerItem)
|
||||
// playerLay.player!.play()
|
||||
// playerLay.backgroundColor = UIColor.clear.cgColor
|
||||
// }
|
||||
|
||||
|
||||
//MARK: - action
|
||||
@objc public func navgationButtonClick2(sender:UIButton){
|
||||
|
||||
@ -591,46 +581,6 @@ class CCSpatialVideoDisplayController: BaseController, AVPlayerViewControllerDel
|
||||
// player!.play()
|
||||
self.selectedIndex = rsi
|
||||
|
||||
|
||||
|
||||
|
||||
//空间视频
|
||||
// if(selectedIndex == 1){
|
||||
//// Task {
|
||||
//// try await videoConverter.convertStereoscopicVideoToSpatialVideo(sourceVideoURL: sourceVideoURL!,outputVideoURL: outputVideoURL!){[weak self] progress in
|
||||
//// print(progress)
|
||||
//// DispatchQueue.main.async { [weak self] in
|
||||
//// self!.btn3!.setTitle("进度=" + String(progress), for: UIControl.State.normal)
|
||||
//// if(progress > 0.99){
|
||||
//// self!.videoTempAsset = AVAsset(url: self!.outputVideoURL!)
|
||||
//// self!.play()
|
||||
//// }
|
||||
//// }
|
||||
//// }
|
||||
//// }
|
||||
// }
|
||||
|
||||
//高斯模糊
|
||||
// if(selectedIndex == 4){
|
||||
// Task {
|
||||
// convertor2.type = 4
|
||||
//
|
||||
// try await convertor2.convertVideo(asset: videoTempAsset!, outputFile: outputVideoURL! ) { [self] progress in
|
||||
// print(progress)
|
||||
// DispatchQueue.main.async { [weak self] in
|
||||
// self?.progressView.setProgress(progress, animated: true)
|
||||
// if(progress > 0.99){
|
||||
// self!.videoTempAsset = AVAsset(url: self!.outputVideoURL!)
|
||||
// self!.play()
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -563,11 +563,16 @@ class VRVideoTransformController: BaseController {
|
||||
extension VRVideoTransformController {
|
||||
|
||||
@objc private func videoTransformAction() {
|
||||
// let path = Bundle.main.path(forResource: "IMG_0071", ofType: "MOV")
|
||||
// let videoURL = URL.init(filePath: path!)
|
||||
self.showProgress()
|
||||
self.mAvPlayer?.player?.pause()
|
||||
let videoURL = sourceVideoURL
|
||||
|
||||
let videoOriginalAsset:AVAsset? = AVAsset(url: sourceVideoURL!)
|
||||
if !ZZHHelper.isSpatialVideo(asset: videoOriginalAsset!) {
|
||||
SVProgressHUD.showInfo(withStatus: "非空间视频不能转码")
|
||||
return
|
||||
}
|
||||
|
||||
self.showProgress()
|
||||
|
||||
let documentsDirectory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
|
||||
let outputURL = documentsDirectory.appendingPathComponent("output_path.mov")
|
||||
|
||||
@ -594,7 +599,7 @@ extension VRVideoTransformController {
|
||||
let horizontalDisparity: Float = 0.0
|
||||
let horizontalFieldOfView: Float = 90.0
|
||||
let outputVideoURL = URL.documentsDirectory.appending(path:"convertor_one.mov")
|
||||
let videoOriginalAsset:AVAsset? = AVAsset(url: sourceVideoURL!)
|
||||
|
||||
Task {
|
||||
try await spatialVideoConver.convertVideo(asset: videoOriginalAsset!, outputFile: outputVideoURL ,type: self.selected3DFormat) { [weak self] (progress,state) in
|
||||
if(state){
|
||||
|
||||
@ -37,18 +37,29 @@ class ZZHHelper {
|
||||
|
||||
//MARK: 检查是否为空间视频
|
||||
class func isSpatialVideo(asset: AVAsset) -> Bool {
|
||||
for track in asset.tracks {
|
||||
if track.mediaType == .video {
|
||||
for formatDesc in track.formatDescriptions {
|
||||
let dic = CMFormatDescriptionGetExtensions(formatDesc as! CMFormatDescription) as! Dictionary<String, Any>
|
||||
let fromatName = dic["FormatName"] as? String
|
||||
if let fn = fromatName,fn == "HEVC"{
|
||||
return true
|
||||
}
|
||||
}
|
||||
// for track in asset.tracks {
|
||||
// if track.mediaType == .video {
|
||||
// for formatDesc in track.formatDescriptions {
|
||||
// let dic = CMFormatDescriptionGetExtensions(formatDesc as! CMFormatDescription) as! Dictionary<String, Any>
|
||||
// let fromatName = dic["FormatName"] as? String
|
||||
// if let fn = fromatName,fn == "HEVC"{
|
||||
// return true
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// return false
|
||||
|
||||
|
||||
let metadata = asset.metadata(forFormat: AVMetadataFormat.quickTimeMetadata)
|
||||
let isSpatialVideo = metadata.contains { item in
|
||||
if let identifier = item.identifier?.rawValue {
|
||||
return identifier == "mdta/com.apple.quicktime.spatial.format-version"
|
||||
}
|
||||
return false
|
||||
}
|
||||
return false
|
||||
return isSpatialVideo
|
||||
|
||||
}
|
||||
|
||||
//设置曝光时间
|
||||
|
||||
Loading…
Reference in New Issue
Block a user