Почему видео из моего приложения загружаются на Facebook в виде пустого зеленого экрана?

Не знаю, где еще спросить об этом, поэтому я решил начать здесь.

У меня есть два видеоклипа. Ни один из видеоклипов не содержит звука.

Один видеоклип снимается с камеры iPhone через AVCaptureSession.

Второй видеоклип хранится локально на устройстве.

Я хочу объединить два видео таким образом, чтобы полностью воспроизвести захваченное видео, за которым сразу следует одна секунда второго видеоклипа. Затем я объединяю новый видеоклип с заранее определенным аудиофайлом и перехожу в свое меню общего доступа, где сохраняю его в фотопленке.

Окончательный результат воспроизводится точно так же, как и должен быть в фотопленке. Однако, когда я делюсь видео с 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)

        })

    }

}

person bkSwifty    schedule 07.04.2016    source источник
comment
Я знаю, что прошло несколько лет, но удалось ли вам тогда решить эту проблему? Я столкнулся с той же проблемой сейчас.   -  person ymotov    schedule 25.04.2019


Ответы (1)


Это нелогично, но уверены ли вы, что это проблема iPhone, а не Facebook? Бывают случаи, когда видео на Facebook не воспроизводятся должным образом и воспроизводятся с зеленым экраном и правильным звуком.

Стоит попробовать перейти по этим ссылкам в Справочном центре Facebook и подтвердить

1. Зеленый экран на видео в Facebook

2. Когда я пытаюсь воспроизвести видео, я слышу звук, но экран становится зеленым

person Penkey Suresh    schedule 01.05.2016