Как воспроизвести видео на iOS, которое загружается вручную из сокета? - PullRequest
4 голосов
/ 11 января 2011

Довольно сложно это ...

Я пытаюсь транслировать видео (H264) по сети на iOS. Однако я передаю видеоданные в буфер через открытый сокет на удаленный сервер (используя CocoaAsyncSocket), поэтому у меня нет URL-адреса для видео, которое я могу использовать для создания AVAsset или MPMoviePlayer. Видео представляет собой прямой эфир, поэтому данные будут поступать (т.е. без заданной продолжительности), если это будет иметь значение.

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

Есть идеи, как воспроизвести это видео? Единственное, о чем я могу думать в данный момент, это каким-то образом сохранить файл и загрузить его (но я не понимаю, как это будет работать, поскольку я буду постоянно загружать новые данные), или прибегнуть к каким-либо действиям вручную с чем-то как ffmpeg. И нет, к сожалению, я не могу заставить сервер выполнять потоковую передачу по HTTP.

Любая помощь будет принята с благодарностью!

1 Ответ

0 голосов
/ 11 января 2011

Мне еще не приходилось копать это глубоко в AVFoundation, но вы можете сделать это, создав AVAsset с AVAssetWriter.Вы предоставляете AVAssetWriter экземпляр AVAssetWriterInput, который принимает CMSampleBuffer данных и упаковывает их для AVAssetWriter.

На основе документов для AVAssetWriterInput, этопредназначен для получения данных из «источника в реальном времени».

Хотелось бы мне помочь, но, надеюсь, это укажет вам правильное направление.

...