Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека разработчика Mac

Разработчик

Ссылка платформы AVFoundation ссылка класса AVAssetWriter

Опции
Развертывание Target:

На этой странице
Язык:

AVAssetWriter

Вы используете AVAssetWriter возразите для записи данных носителей в новый файл указанного аудиовизуального контейнерного типа, такого как файл фильма в формате QuickTime или файл MPEG 4, с поддержкой автоматического чередования данных носителей для многократных параллельных дорожек.

Можно получить данные носителей для одного или более активов от экземпляров AVAssetReader или даже извне Основы AV API установлен. Данные носителей представлены AVAssetWriter для записи в форме CMSampleBuffers (см. Ссылку CMSampleBuffer). Последовательности демонстрационных данных, добавленных к вводам писателя актива, как полагают, находятся в пределах “пишущих выборку сеансов”. Необходимо вызвать startSessionAtSourceTime: начать один из этих сеансов.

Используя AVAssetWriter, можно дополнительно повторно закодировать выборки носителей, поскольку они записаны. Можно также дополнительно записать наборы метаданных в выходной файл.

Можно только использовать приведенный пример AVAssetWriter один раз для записи в единственный файл. Если Вы хотите записать в файлы многократно, необходимо использовать новый экземпляр AVAssetWriter каждый раз.

Наследование


Соответствует


Оператор импорта


Swift

import AVFoundation

Objective C

@import AVFoundation;

Доступность


Доступный в OS X v10.7 и позже.
  • Возвращает писателя актива для записи в файл, идентифицированный данным URL в формате, указанном данным UTI.

    Объявление

    Objective C

    + (instancetype)assetWriterWithURL:(NSURL *)outputURL fileType:(NSString *)outputFileType error:(NSError **)outError

    Параметры

    outputURL

    Расположение файла, который будет записан. URL должен быть файлом URL.

    outputFileType

    UTI-идентифицированный формат файла, который будет записан. Посмотрите File_Format_UTIs для значений.

    Например, AVFileTypeQuickTimeMovie для файла фильма в формате QuickTime, AVFileTypeMPEG4 для файла MPEG 4, и AVFileTypeAMR для адаптивного файла формата аудио мультиуровня.

    outError

    Если инициализация сбоев писателя актива, по возврату содержит ошибочный объект, описывающий проблему.

    Возвращаемое значение

    Писатель актива для записи в файл, идентифицированный URL в формате, указанном outputFileType, или nil если не мог бы быть инициализирован писатель.

    Обсуждение

    Если файл уже будет существовать в, запись перестанет работать URL.

    Оператор импорта

    Objective C

    @import AVFoundation;

    Доступность

    Доступный в OS X v10.7 и позже.

  • Инициализирует писателя актива для записи в файл, идентифицированный данным URL в формате, указанном данным UTI.

    Объявление

    Swift

    init!(URL outputURL: NSURL!, fileType outputFileType: String!, error outError: NSErrorPointer)

    Objective C

    - (instancetype)initWithURL:(NSURL *)outputURL fileType:(NSString *)outputFileType error:(NSError **)outError

    Параметры

    outputURL

    Расположение файла, который будет записан. URL должен быть файлом URL.

    outputFileType

    UTI-идентифицированный формат файла, который будет записан.

    Например, AVFileTypeQuickTimeMovie для файла фильма в формате QuickTime, AVFileTypeMPEG4 для файла MPEG 4, и AVFileTypeAMR для адаптивного файла формата аудио мультиуровня.

    outError

    Если инициализация сбоев писателя актива, по возврату содержит ошибочный объект, описывающий проблему.

    Возвращаемое значение

    Писатель актива для записи в файл, идентифицированный URL в формате, указанном outputFileType, или nil если не мог бы быть инициализирован писатель.

    Обсуждение

    Если файл уже будет существовать в, запись перестанет работать URL. UTIs для форматов контейнера, которые могут быть записаны, объявляются в File Format UTIs.

    Оператор импорта

    Objective C

    @import AVFoundation;

    Swift

    import AVFoundation

    Доступность

    Доступный в OS X v10.7 и позже.

  • Типы среды, для которых вводы могут быть добавлены (только для чтения)

    Объявление

    Swift

    var availableMediaTypes: [AnyObject]! { get }

    Objective C

    @property(nonatomic, readonly) NSArray *availableMediaTypes

    Обсуждение

    Массив значений, указанных в Media_Types.

    Некоторые типы среды не могут быть приняты в типе файла, с которым был инициализирован писатель.

    Оператор импорта

    Objective C

    @import AVFoundation;

    Swift

    import AVFoundation

    Доступность

    Доступный в OS X v10.7 и позже.

  • Говорит писателю начинать писать его вывод.

    Объявление

    Swift

    func startWriting() -> Bool

    Objective C

    - (BOOL)startWriting

    Возвращаемое значение

    YEStrue если запись может быть запущена, иначе NOfalse.

    Обсуждение

    Необходимо вызвать этот метод после того, как все вводы добавили, и другие свойства конфигурации были установлены сказать получателю подготавливаться к записи. После вызова этого метода можно начать писать использование сеансов startSessionAtSourceTime: и может записать выборки носителей с помощью методов, предоставленных каждым из вводов писателя.

    status если отказ происходит, свойство сигнализирует терминальное состояние читателя актива, и error описывает отказ.

    Оператор импорта

    Objective C

    @import AVFoundation;

    Swift

    import AVFoundation

    Доступность

    Доступный в OS X v10.7 и позже.

  • Завершает запись выходного файла.

    Объявление

    Objective C

    - (BOOL)finishWriting

    Возвращаемое значение

    YEStrue если запись может быть закончена, иначе NOfalse.

    Обсуждение

    Этот метод блоки до записи закончен. Когда этот метод возвращается успешно, файл, записанный получателем, завершен и готов использовать. Можно проверить значения status и error свойства для получения дополнительной информации о том, почему не могла быть закончена запись.

    Оператор импорта

    Objective C

    @import AVFoundation;

    Доступность

    Доступный в OS X v10.7 и позже.

    Осуждаемый в OS X v10.9.

  • Знаки все незаконченные вводы, как закончено и завершают запись выходного файла.

    Объявление

    Swift

    func finishWritingWithCompletionHandler(_ handler: (() -> Void)!)

    Objective C

    - (void)finishWritingWithCompletionHandler:(void (^)(void))handler

    Параметры

    handler

    Указанный обработчик, который будет вызван один раз запись выходного файла, закончен или если отказ или отмена происходят тем временем.

    Обсуждение

    Этот метод сразу возвращается и заставляет свою работу выполняться асинхронно. Чтобы определить, успешно выполнилась ли работа, можно проверить значение status свойство в handler параметр. Если status AVAssetWriterStatusFailed, тогда error свойство будет содержать экземпляр NSError это описывает отказ.

    Чтобы гарантировать, что все демонстрационные буферы успешно записаны, необходимо гарантировать что все вызовы к appendSampleBuffer: и appendPixelBuffer:withPresentationTime: возвратились прежде, чем вызвать этот метод.

    Оператор импорта

    Objective C

    @import AVFoundation;

    Swift

    import AVFoundation

    Доступность

    Доступный в OS X v10.9 и позже.

  • Дает писателю команду отменять запись.

    Объявление

    Swift

    func cancelWriting()

    Objective C

    - (void)cancelWriting

    Обсуждение

    Этот метод блоки до записи отменяется.

    Оператор импорта

    Objective C

    @import AVFoundation;

    Swift

    import AVFoundation

    Доступность

    Доступный в OS X v10.7 и позже.

  • outputURL outputURL Свойство

    URL, к которому направлен вывод. (только для чтения)

    Объявление

    Swift

    @NSCopying var outputURL: NSURL! { get }

    Objective C

    @property(nonatomic, copy, readonly) NSURL *outputURL

    Обсуждение

    URL совпадает с, который указал, когда инициализируется писатель.

    Оператор импорта

    Objective C

    @import AVFoundation;

    Swift

    import AVFoundation

    Доступность

    Доступный в OS X v10.7 и позже.

  • outputFileType outputFileType Свойство

    Формат файла вывода писателя. (только для чтения)

    Объявление

    Swift

    var outputFileType: String! { get }

    Objective C

    @property(nonatomic, copy, readonly) NSString *outputFileType

    Обсуждение

    Когда писатель инициализируется, формат идентифицируется UTI, указанным.

    Оператор импорта

    Objective C

    @import AVFoundation;

    Swift

    import AVFoundation

    Доступность

    Доступный в OS X v10.7 и позже.

  • ошибка ошибка Свойство

    Если состояние получателя AVAssetWriterStatusFailed, описывает ошибку, вызвавшую отказ. (только для чтения)

    Объявление

    Swift

    var error: NSError! { get }

    Objective C

    @property(readonly) NSError *error

    Обсуждение

    Значение этого свойства является ошибочным объектом, описывающим то, что заставило получатель больше не быть в состоянии записать в его выходной файл. Если получатель status не AVAssetWriterStatusFailed, значение этого свойства nil.

    Это свойство поддерживает наблюдение Значения ключа.

    Оператор импорта

    Objective C

    @import AVFoundation;

    Swift

    import AVFoundation

    Доступность

    Доступный в OS X v10.7 и позже.

  • Состояние записи выборок к выходному файлу получателя. (только для чтения)

    Объявление

    Swift

    var status: AVAssetWriterStatus { get }

    Objective C

    @property(readonly) AVAssetWriterStatus status

    Обсуждение

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

    Это свойство поддерживает наблюдение Значения ключа.

    Оператор импорта

    Objective C

    @import AVFoundation;

    Swift

    import AVFoundation

    Доступность

    Доступный в OS X v10.7 и позже.

  • Указывает каталог, подходящий для содержания временных файлов, сгенерированных во время процесса экспорта.

    Объявление

    Swift

    @NSCopying var directoryForTemporaryFiles: NSURL!

    Objective C

    @property(nonatomic, copy) NSURL *directoryForTemporaryFiles

    Обсуждение

    Писатель актива, возможно, должен записать временные файлы, например когда canPerformMultiplePassesOverSourceMediaData установлен в YEStrue. Это свойство указывает, где в файловой системе создаются те временные файлы. Все временные файлы будут удалены, когда запись актива будет завершена, отменяется, или сбои.

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

    Это свойство не может быть установлено после того, как запись актива запустилась. Экспорт перестанет работать, если URL укажет на расположение, которое не является каталогом, не существует, не находится в локальной файловой системе, или если файл не может быть создан в этом каталоге (например, вследствие недостаточных полномочий или ограничений игры в песочнице).

    Оператор импорта

    Objective C

    @import AVFoundation;

    Swift

    import AVFoundation

    Доступность

    Доступный в OS X v10.10 и позже.

  • вводы вводы Свойство

    Вводы писателя актива связались с писателем актива. (только для чтения)

    Объявление

    Swift

    var inputs: [AnyObject]! { get }

    Objective C

    @property(nonatomic, readonly) NSArray *inputs

    Обсуждение

    Массив содержит AVAssetWriterInput объекты.

    Оператор импорта

    Objective C

    @import AVFoundation;

    Swift

    import AVFoundation

    Доступность

    Доступный в OS X v10.7 и позже.

    См. также

    – addInput:

  • Добавляет ввод к получателю.

    Объявление

    Swift

    func addInput(_ input: AVAssetWriterInput!)

    Objective C

    - (void)addInput:(AVAssetWriterInput *)input

    Параметры

    input

    Писатель актива ввел, чтобы быть добавленным.

    Обсуждение

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

    Специальные замечания

    Вы не можете добавить вводы после того, как запустилась запись.

    Оператор импорта

    Objective C

    @import AVFoundation;

    Swift

    import AVFoundation

    Доступность

    Доступный в OS X v10.7 и позже.

    См. также

    – canAddInput:

  • Возвращает булево значение, указывающее, может ли данный ввод быть добавлен к получателю.

    Объявление

    Swift

    func canAddInput(_ input: AVAssetWriterInput!) -> Bool

    Objective C

    - (BOOL)canAddInput:(AVAssetWriterInput *)input

    Параметры

    input

    Писатель актива ввел, чтобы быть протестированным.

    Возвращаемое значение

    YEStrue если введенный может быть добавлен, иначе NOfalse.

    Обсуждение

    Вы не можете добавить ввод, принимающий данные носителей типа, который не совместим с получателем, или с выходными настройками, которые не совместимы с получателем.

    Оператор импорта

    Objective C

    @import AVFoundation;

    Swift

    import AVFoundation

    Доступность

    Доступный в OS X v10.7 и позже.

  • Инициирует пишущий выборку сеанс для выходного актива.

    Объявление

    Swift

    func startSessionAtSourceTime(_ startTime: CMTime)

    Objective C

    - (void)startSessionAtSourceTime:(CMTime)startTime

    Параметры

    startTime

    Стартовое время актива для пишущего выборку сеанса, во временной шкале исходных выборок.

    Обсуждение

    Последовательности демонстрационных данных, добавленных к вводам писателя актива, как полагают, находятся в пределах “пишущих выборку сеансов”. Необходимо вызвать этот метод для начала одного из этих сеансов.

    Каждый сеанс записи имеет время начала, где позволено записанным форматом файла, определяющее отображение от временной шкалы исходных выборок на временную шкалу файла. В случае формата файла фильма в формате QuickTime первый сеанс начинается во время фильма 0, таким образом, выборка, добавленная с меткой времени T, будет играться во время фильма (T-startTime). Выборки с метками времени прежде startTime будет все еще добавлен к выходным носителям, но будет отредактирован из фильма. Если самый ранний буфер для ввода позже, чем startTime, пустое редактирование будет вставлено для сохранения синхронизации между дорожками выходного актива.

    Специальные замечания

    Это - ошибка вызвать этот метод дважды подряд без вызова endSessionAtSourceTime:: промежуточный.

    Оператор импорта

    Objective C

    @import AVFoundation;

    Swift

    import AVFoundation

    Доступность

    Доступный в OS X v10.7 и позже.

    См. также

    – endSessionAtSourceTime:

  • Завершает явный пишущий выборку сеанс.

    Объявление

    Swift

    func endSessionAtSourceTime(_ endTime: CMTime)

    Objective C

    - (void)endSessionAtSourceTime:(CMTime)endTime

    Параметры

    endTime

    Конечное время актива для пишущего выборку сеанса, во временной шкале исходных выборок.

    Обсуждение

    Можно вызвать этот метод для завершения сеанса, который Вы начали путем вызова startSessionAtSourceTime:.

    Вы не должны вызывать этот метод; если Вы вызываете finishWriting не вызывая этот метод, эффективное время окончания сеанса будет последней меткой времени конца выборок сеанса (т.е. никакие выборки не будут вырезаны в конце).

    endTime определяет момент на временной шкале исходных выборок, при которых заканчивается сеанс. В случае формата файла фильма в формате QuickTime пара startTime … endTime каждого пишущего выборку сеанса соответствует периоду времени фильма, в которое вставляются выборки сеанса. Выборки с более поздними метками времени будут все еще быть добавленными к носителям, но будут отредактированы из фильма. Таким образом, если первый сеанс имеет продолжительность D1 = endTime - startTime, это будет вставлено в фильм во время фильма 0 через D1; второй сеанс был бы вставлен в фильм во время фильма D1 через D1+D2 и т.д.

    Законно иметь сеанс без выборок; это вызовет создание пустого редактирования предписанной продолжительности.

    Оператор импорта

    Objective C

    @import AVFoundation;

    Swift

    import AVFoundation

    Доступность

    Доступный в OS X v10.7 и позже.

  • Возвращает булево значение, указывающее, поддерживаются ли указанные выходные настройки для указанного типа среды.

    Объявление

    Swift

    func canApplyOutputSettings(_ outputSettings: [NSObject : AnyObject]!, forMediaType mediaType: String!) -> Bool

    Objective C

    - (BOOL)canApplyOutputSettings:(NSDictionary *)outputSettings forMediaType:(NSString *)mediaType

    Параметры

    outputSettings

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

    mediaType

    Тип среды, для которого проверены выходные настройки.

    Возвращаемое значение

    YEStrue если выходные настройки в outputSettings поддерживаются для mediaType, иначе NOfalse.

    Обсуждение

    Можно использовать этот метод для тестирования, например, перестанут ли настройки видеовыхода, указывающие сжатие H.264, работать (как имел бы место, если формат контейнера, для которого был инициализирован писатель, не поддерживает каретку H.264-сжатого видео).

    Оператор импорта

    Objective C

    @import AVFoundation;

    Swift

    import AVFoundation

    Доступность

    Доступный в OS X v10.7 и позже.

  • Набор метаданных для связи с активом и для каретки в выходном файле.

    Объявление

    Swift

    var metadata: [AnyObject]!

    Objective C

    @property(nonatomic, copy) NSArray *metadata

    Обсуждение

    Массив содержит AVMetadataItem объекты.

    Специальные замечания

    Вы не можете установить значение после того, как запустилась запись.

    Оператор импорта

    Objective C

    @import AVFoundation;

    Swift

    import AVFoundation

    Доступность

    Доступный в OS X v10.7 и позже.

  • Время для протекания между записью фрагментов фильма.

    Объявление

    Swift

    var movieFragmentInterval: CMTime

    Objective C

    @property(nonatomic) CMTime movieFragmentInterval

    Обсуждение

    Иногда операция записи может быть неожиданно прервана (потому что процесс отказывает, например). При помощи фрагментов фильма частично записанный файл ролика может успешно открываться и играться до самого большого кратного числа movieFragmentInterval меньший, чем точка, в которой была прервана операция записи.

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

    Специальные замечания

    Вы не можете установить значение после того, как запустилась запись.

    Оператор импорта

    Objective C

    @import AVFoundation;

    Swift

    import AVFoundation

    Доступность

    Доступный в OS X v10.7 и позже.

  • movieTimeScale movieTimeScale Свойство

    Указывает масштаб времени уровня актива, который будет использоваться.

    Объявление

    Swift

    var movieTimeScale: CMTimeScale

    Objective C

    @property(nonatomic) CMTimeScale movieTimeScale

    Обсуждение

    Для типов файлов, содержащих a moov атом, такой как файлы фильма в формате QuickTime, указывает масштаб времени уровня актива, который будет использоваться.

    Значение по умолчанию 0, который указывает, что писатель актива выберет удобное значение, если применимо.

    Специальные замечания

    Вы не можете установить значение после того, как запустилась запись.

    Оператор импорта

    Objective C

    @import AVFoundation;

    Swift

    import AVFoundation

    Доступность

    Доступный в OS X v10.7 и позже.

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

    Объявление

    Swift

    var shouldOptimizeForNetworkUse: Bool

    Objective C

    @property(nonatomic) BOOL shouldOptimizeForNetworkUse

    Обсуждение

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

    Значение по умолчанию NOfalse.

    Специальные замечания

    Вы не можете установить значение после того, как запустилась запись.

    Оператор импорта

    Objective C

    @import AVFoundation;

    Swift

    import AVFoundation

    Доступность

    Доступный в OS X v10.7 и позже.

  • Добавляет входной экземпляр группы писателя актива к писателю актива.

    Объявление

    Swift

    func addInputGroup(_ inputGroup: AVAssetWriterInputGroup!)

    Objective C

    - (void)addInputGroup:(AVAssetWriterInputGroup *)inputGroup

    Параметры

    inputGroup

    Писатель актива ввел группу, чтобы быть добавленным.

    Обсуждение

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

    Когда входная группа добавляется к писателю актива, значению marksOutputTrackAsEnabled для AVAssetWriterInput набор экземпляра как ввод по умолчанию будет автоматически установлен в YEStrue и все другие вводы в группе будут установлены в NOfalse.

    Входные группы не могут быть добавлены после того, как запись запустилась.

    Оператор импорта

    Objective C

    @import AVFoundation;

    Swift

    import AVFoundation

    Доступность

    Доступный в OS X v10.9 и позже.

  • Возвраты, может ли входная группа быть добавлена к получателю.

    Объявление

    Swift

    func canAddInputGroup(_ inputGroup: AVAssetWriterInputGroup!) -> Bool

    Objective C

    - (BOOL)canAddInputGroup:(AVAssetWriterInputGroup *)inputGroup

    Параметры

    inputGroup

    Писатель актива ввел группу, чтобы быть добавленным.

    Возвращаемое значение

    YEStrue если inputGroup может быть добавлен к inputGroups, иначе NOfalse.

    Обсуждение

    Если outputFileType указывает формат контейнера, не поддерживающий взаимоисключающие отношения среди дорожек, или если указанный экземпляр AVAssetWriterInputGroup содержит вводы с типами среды, которые не могут быть связаны, группа не может быть добавлена.

    Оператор импорта

    Objective C

    @import AVFoundation;

    Swift

    import AVFoundation

    Доступность

    Доступный в OS X v10.9 и позже.

  • inputGroups inputGroups Свойство

    Массив писателя актива ввел группы, добавленные к писателю актива. (только для чтения)

    Объявление

    Swift

    var inputGroups: [AnyObject]! { get }

    Objective C

    @property(nonatomic, readonly) NSArray *inputGroups

    Обсуждение

    Значение этого свойства NSArray содержа конкретные экземпляры AVAssetWriterInputGroup.

    Входные группы добавляются к получателю с помощью addInputGroup: метод.

    Оператор импорта

    Objective C

    @import AVFoundation;

    Swift

    import AVFoundation

    Доступность

    Доступный в OS X v10.9 и позже.

  • Эти константы возвращаются status свойство, чтобы указать, может ли это успешно записать выборки в свой выходной файл.

    Объявление

    Swift

    enum AVAssetWriterStatus : Int { case Unknown case Writing case Completed case Failed case Cancelled }

    Objective C

    enum { AVAssetWriterStatusUnknown = 0, AVAssetWriterStatusWriting, AVAssetWriterStatusCompleted, AVAssetWriterStatusFailed, AVAssetWriterStatusCancelled }; typedef NSInteger AVAssetWriterStatus;

    Константы

    • Unknown

      AVAssetWriterStatusUnknown

      Состояние писателя оборотного актива неизвестно.

      Доступный в OS X v10.7 и позже.

    • Writing

      AVAssetWriterStatusWriting

      Писатель актива пишет.

      Доступный в OS X v10.7 и позже.

    • Completed

      AVAssetWriterStatusCompleted

      Писатель актива завершил запись успешно.

      Доступный в OS X v10.7 и позже.

    • Failed

      AVAssetWriterStatusFailed

      Писатель актива перестал работать при записи.

      Доступный в OS X v10.7 и позже.

    • Cancelled

      AVAssetWriterStatusCancelled

      Писатель актива, пишущий, был отменен.

      Доступный в OS X v10.7 и позже.

    Оператор импорта

    Objective C

    @import AVFoundation;

    Swift

    import AVFoundation

    Доступность

    Доступный в OS X v10.7 и позже.