gpt4 book ai didi

swift - 为什么我的应用程序的视频上传到 Facebook 时显示为空白绿屏?

转载 作者:搜寻专家 更新时间:2023-10-30 22:18:47 25 4
gpt4 key购买 nike

不知道还有什么地方可以问这个,所以我想从这里开始。

我有两个视频剪辑。两个视频剪辑都没有任何音频。

一个视频剪辑是通过 AVCaptureSession 从 iPhone 的摄像头捕获的。

第二个视频剪辑存储在设备本地。

我想以一种完整播放捕获的视频的方式合并这两个视频,然后立即播放第二个视频剪辑的一秒钟。然后,我将新的视频剪辑与预定的音频文件合并,然后转到我的共享菜单,然后保存到相机胶卷。

最终结果与相机胶卷中的播放完全一样。但是,当我将视频分享到 Facebook 时,第一个视频剪辑被扭曲为绿色屏幕,有时甚至是灰色屏幕。当时间到了时,第二个剪辑播放正常。整个过程中的音频都很好。

我不知道是什么原因造成的。

有什么帮助吗?

func mergeVideos() {

let videoAsset = AVAsset(URL: recordedVideoURL)

let videoAsset2 = AVAsset(URL: NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("Credits", ofType: "mp4")!))

let audioAsset = AVAsset(URL: finalAudioURL)

// 1 - Create AVMutableComposition object.
let mixComposition = AVMutableComposition()

// 2 - Audio track

do {

let audioTrack = mixComposition.addMutableTrackWithMediaType(AVMediaTypeAudio, preferredTrackID: 0)

try audioTrack.insertTimeRange(CMTimeRangeMake(kCMTimeZero, audioAsset.duration + CMTime(seconds: 1, preferredTimescale: 30)), ofTrack: audioAsset.tracksWithMediaType(AVMediaTypeAudio)[0], atTime: kCMTimeZero)

} catch {

print(error)

}

// 3 - Video tracks

do {

let videoTrack = mixComposition.addMutableTrackWithMediaType(AVMediaTypeVideo, preferredTrackID: Int32(kCMPersistentTrackID_Invalid))
try videoTrack.insertTimeRange(CMTimeRangeMake(kCMTimeZero, videoAsset.duration), ofTrack: videoAsset.tracksWithMediaType(AVMediaTypeVideo)[0], atTime: kCMTimeZero)
try videoTrack.insertTimeRange(CMTimeRangeMake(kCMTimeZero, audioAsset.duration-videoAsset.duration + CMTime(seconds: 1, preferredTimescale: 30)), ofTrack: videoAsset2.tracksWithMediaType(AVMediaTypeVideo)[0], atTime: videoAsset.duration)

} catch {

print(error)

}

// 5 - Create Exporter
let exporter = AVAssetExportSession(asset: mixComposition, presetName: AVAssetExportPresetHighestQuality)
deleteFileAtURL(videoToShareURL)
exporter!.outputURL = videoToShareURL
exporter!.outputFileType = AVFileTypeMPEG4
exporter!.shouldOptimizeForNetworkUse = true

// 6 - Perform the Export
exporter!.exportAsynchronouslyWithCompletionHandler() {
dispatch_async(dispatch_get_main_queue(), { () -> Void in
hideSpinner()

self.performSegueWithIdentifier("backToShare", sender: self)

})

}

}

最佳答案

这是违反直觉的,但您确定这是 iPhone 而不是 Facebook 的问题吗?在某些情况下,Facebook 视频无法正常播放,并以绿屏和正常音频播放。

在 Facebook 帮助中心点击这些链接并确认是值得一试的

1 。 Green screen on videos on facebook

2。 When I try to play a video I get sound but screen turns green

关于swift - 为什么我的应用程序的视频上传到 Facebook 时显示为空白绿屏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36484386/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com