2013-12-18 3 views
7

Я использовал AVAssetExportSession, чтобы присоединиться к 2 видеофайлам. Он отлично работает в iOS 6, но имеет очень странную ошибку в iOS 7. Позвольте мне объяснить эту ошибку. У меня есть 2 видеофайла, первое видео длится 8 секунд, а второе - 81 секунда. В iOS7 это будет хорошо, если я сделаю второй + первый. Но если я делаю первый + второй, это будет ошибка:iOS 7: странная ошибка AVAssetExportSession

Error Domain=AVFoundationErrorDomain Code=-11800 "The operation could not be completed" UserInfo=0x176cb5c0 {NSLocalizedDescription=The operation could not be completed, NSUnderlyingError=0x176ca000 "The operation couldn’t be completed. (OSStatus error -12633.)", NSLocalizedFailureReason=An unknown error occurred (-12633)}

Я проверил exportPresetsCompatibleWithAsset и supportedFileTypes. Нет проблем с этим. Может ли кто-нибудь сказать, как это исправить? Любая помощь будет оценена по достоинству.

Кто-нибудь знает об этой ошибке :(Я предоставляю файлы 2mp4, которые вызывают ошибку: test 1, test 2. Соедините «тест 2» + «тест 1» в порядке, но выполните «тест 1» + «тест 2», вызовет ошибку. Это происходит только в iOS7

+3

см. Ссылку: http://stackoverflow.com/questions/15071387/avassetwriter-unknown-error. –

+0

Вы когда-нибудь решали эту проблему? Я испытываю нечто подобное. – agressen

+0

Нет, я не могу решить это. Вы нашли решение? – sahara108

ответ

1

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

я должен был изменить __weak typeof(self) wself = self; до __weak SDAVAssetExportSession * wself = self; по строке 172 от SDAVAssetExportSession.m.

+0

Спасибо за обмен. Я дам ему попробовать. – sahara108

1

У меня возникла ошибка «неизвестная ошибка (-12633)».

Нашли ответ , добавив два образца с одинаковой отметкой времени.

По-видимому, ошибка -12633 является InvalidTimestamp.

Посмотрите этот пост SO ->AVAssetWriter unknown error

0

Если вы используете методы insertTimeRanges или insertTimeRange, вам необходимо убедиться, что временные диапазоны ввода действительны. Чтобы быть более конкретным, вы не должны использовать продолжительность актива для этого, вам нужно получить точные диапазоны времени от отдельных дорожек активов.

Используйте команду ffprobe -show_frames path_to_file для проверки ваших видеофайлов, что иногда может быть очень полезно.

Смежные вопросы