视频转码前进行是否为空间视频判断

This commit is contained in:
bluesea 2024-03-21 17:06:16 +08:00
parent f9eee97616
commit ae2160979a
7 changed files with 56 additions and 90 deletions

View File

@ -7,7 +7,7 @@
<key>Alamofire.xcscheme_^#shared#^_</key> <key>Alamofire.xcscheme_^#shared#^_</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>7</integer> <integer>8</integer>
</dict> </dict>
<key>CocoaAsyncSocket.xcscheme_^#shared#^_</key> <key>CocoaAsyncSocket.xcscheme_^#shared#^_</key>
<dict> <dict>
@ -17,52 +17,52 @@
<key>DeviceKit.xcscheme_^#shared#^_</key> <key>DeviceKit.xcscheme_^#shared#^_</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>14</integer> <integer>16</integer>
</dict> </dict>
<key>FirebaseCore.xcscheme_^#shared#^_</key> <key>FirebaseCore.xcscheme_^#shared#^_</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>15</integer> <integer>0</integer>
</dict> </dict>
<key>FirebaseCoreExtension.xcscheme_^#shared#^_</key> <key>FirebaseCoreExtension.xcscheme_^#shared#^_</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>5</integer> <integer>11</integer>
</dict> </dict>
<key>FirebaseCoreInternal.xcscheme_^#shared#^_</key> <key>FirebaseCoreInternal.xcscheme_^#shared#^_</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>17</integer> <integer>5</integer>
</dict> </dict>
<key>FirebaseCrashlytics.xcscheme_^#shared#^_</key> <key>FirebaseCrashlytics.xcscheme_^#shared#^_</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>2</integer> <integer>10</integer>
</dict> </dict>
<key>FirebaseInstallations.xcscheme_^#shared#^_</key> <key>FirebaseInstallations.xcscheme_^#shared#^_</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>21</integer> <integer>13</integer>
</dict> </dict>
<key>FirebaseMessaging.xcscheme_^#shared#^_</key> <key>FirebaseMessaging.xcscheme_^#shared#^_</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>10</integer> <integer>6</integer>
</dict> </dict>
<key>FirebaseSessions.xcscheme_^#shared#^_</key> <key>FirebaseSessions.xcscheme_^#shared#^_</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>12</integer> <integer>18</integer>
</dict> </dict>
<key>GoogleDataTransport.xcscheme_^#shared#^_</key> <key>GoogleDataTransport.xcscheme_^#shared#^_</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>20</integer> <integer>14</integer>
</dict> </dict>
<key>GoogleUtilities.xcscheme_^#shared#^_</key> <key>GoogleUtilities.xcscheme_^#shared#^_</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>9</integer> <integer>4</integer>
</dict> </dict>
<key>KTVHTTPCache.xcscheme_^#shared#^_</key> <key>KTVHTTPCache.xcscheme_^#shared#^_</key>
<dict> <dict>
@ -72,52 +72,52 @@
<key>Kingfisher-Kingfisher.xcscheme_^#shared#^_</key> <key>Kingfisher-Kingfisher.xcscheme_^#shared#^_</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>6</integer> <integer>15</integer>
</dict> </dict>
<key>Kingfisher.xcscheme_^#shared#^_</key> <key>Kingfisher.xcscheme_^#shared#^_</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>3</integer> <integer>7</integer>
</dict> </dict>
<key>LLCycleScrollView.xcscheme_^#shared#^_</key> <key>LLCycleScrollView.xcscheme_^#shared#^_</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>4</integer> <integer>17</integer>
</dict> </dict>
<key>Pods-SwiftProject.xcscheme_^#shared#^_</key> <key>Pods-SwiftProject.xcscheme_^#shared#^_</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>19</integer> <integer>1</integer>
</dict> </dict>
<key>PromisesObjC.xcscheme_^#shared#^_</key> <key>PromisesObjC.xcscheme_^#shared#^_</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>16</integer> <integer>19</integer>
</dict> </dict>
<key>PromisesSwift.xcscheme_^#shared#^_</key> <key>PromisesSwift.xcscheme_^#shared#^_</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>0</integer> <integer>2</integer>
</dict> </dict>
<key>SVProgressHUD.xcscheme_^#shared#^_</key> <key>SVProgressHUD.xcscheme_^#shared#^_</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>13</integer> <integer>20</integer>
</dict> </dict>
<key>SnapKit.xcscheme_^#shared#^_</key> <key>SnapKit.xcscheme_^#shared#^_</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>18</integer> <integer>3</integer>
</dict> </dict>
<key>TZImagePickerController.xcscheme_^#shared#^_</key> <key>TZImagePickerController.xcscheme_^#shared#^_</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>1</integer> <integer>12</integer>
</dict> </dict>
<key>nanopb.xcscheme_^#shared#^_</key> <key>nanopb.xcscheme_^#shared#^_</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>11</integer> <integer>9</integer>
</dict> </dict>
</dict> </dict>
</dict> </dict>

View File

@ -7,7 +7,7 @@
<key>SwiftProject.xcscheme_^#shared#^_</key> <key>SwiftProject.xcscheme_^#shared#^_</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>8</integer> <integer>21</integer>
</dict> </dict>
</dict> </dict>
</dict> </dict>

View File

@ -158,8 +158,8 @@
filePath = "SwiftProject/Project/Controller/RecordingVideo/VRPhotoTransformController.swift" filePath = "SwiftProject/Project/Controller/RecordingVideo/VRPhotoTransformController.swift"
startingColumnNumber = "9223372036854775807" startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807"
startingLineNumber = "153" startingLineNumber = "175"
endingLineNumber = "153" endingLineNumber = "175"
landmarkName = "viewDidLoad()" landmarkName = "viewDidLoad()"
landmarkType = "7"> landmarkType = "7">
</BreakpointContent> </BreakpointContent>

View File

@ -323,7 +323,7 @@ class CCSpatialVideoDisplayController: BaseController, AVPlayerViewControllerDel
case .parallelEyes:// case .parallelEyes://
while let nextSampleBuffer = self.assetOutput!.copyNextSampleBuffer() { while let nextSampleBuffer = self.assetOutput!.copyNextSampleBuffer() {
// print("...")
} }
self.assetOutput?.reset(forReadingTimeRanges:[NSValue(timeRange: tr)]) 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 //MARK: - action
@objc public func navgationButtonClick2(sender:UIButton){ @objc public func navgationButtonClick2(sender:UIButton){
@ -591,46 +581,6 @@ class CCSpatialVideoDisplayController: BaseController, AVPlayerViewControllerDel
// player!.play() // player!.play()
self.selectedIndex = rsi 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()
// }
// }
//
// }
// }
// }
} }
} }

View File

@ -563,11 +563,16 @@ class VRVideoTransformController: BaseController {
extension VRVideoTransformController { extension VRVideoTransformController {
@objc private func videoTransformAction() { @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() 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 documentsDirectory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
let outputURL = documentsDirectory.appendingPathComponent("output_path.mov") let outputURL = documentsDirectory.appendingPathComponent("output_path.mov")
@ -594,7 +599,7 @@ extension VRVideoTransformController {
let horizontalDisparity: Float = 0.0 let horizontalDisparity: Float = 0.0
let horizontalFieldOfView: Float = 90.0 let horizontalFieldOfView: Float = 90.0
let outputVideoURL = URL.documentsDirectory.appending(path:"convertor_one.mov") let outputVideoURL = URL.documentsDirectory.appending(path:"convertor_one.mov")
let videoOriginalAsset:AVAsset? = AVAsset(url: sourceVideoURL!)
Task { Task {
try await spatialVideoConver.convertVideo(asset: videoOriginalAsset!, outputFile: outputVideoURL ,type: self.selected3DFormat) { [weak self] (progress,state) in try await spatialVideoConver.convertVideo(asset: videoOriginalAsset!, outputFile: outputVideoURL ,type: self.selected3DFormat) { [weak self] (progress,state) in
if(state){ if(state){

View File

@ -37,18 +37,29 @@ class ZZHHelper {
//MARK: //MARK:
class func isSpatialVideo(asset: AVAsset) -> Bool { class func isSpatialVideo(asset: AVAsset) -> Bool {
for track in asset.tracks { // for track in asset.tracks {
if track.mediaType == .video { // if track.mediaType == .video {
for formatDesc in track.formatDescriptions { // for formatDesc in track.formatDescriptions {
let dic = CMFormatDescriptionGetExtensions(formatDesc as! CMFormatDescription) as! Dictionary<String, Any> // let dic = CMFormatDescriptionGetExtensions(formatDesc as! CMFormatDescription) as! Dictionary<String, Any>
let fromatName = dic["FormatName"] as? String // let fromatName = dic["FormatName"] as? String
if let fn = fromatName,fn == "HEVC"{ // if let fn = fromatName,fn == "HEVC"{
return true // 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
} }
// //