Прямая трансляция изображений в формате JPEG в tvOS Swift

#swift #streaming #swift5 #tvos #mjpeg

#swift #потоковая передача #swift5 #tvos #mjpeg

Вопрос:

Мы используем программное обеспечение ZoneMinder для потоковой передачи изображений в формате JPEG (MJPEG), это хорошо работает, если применяется к тегу HTML <img/> , который показывает автоматически обновляемые изображения каждые 30 секунд:

 <html>
    <body>
        <img src="https://oursite/cgi-bin-zm/nph-zms?scale=50amp;width=1920pxamp;height=1080pxamp;mode=jpegamp;maxfps=30amp;monitor=21amp;connkey=150000amp;rand=1598607232" width="860px" height="340px"/>
    </body>
</html>
  

Используя Swift 5, я попытался распечатать URL / изображение в UIImageView следующим образом:

 let liveURL = URL(string:"https://oursite/cgi-bin-zm/nph-zms?scale=50amp;width=1920pxamp;height=1080pxamp;mode=jpegamp;maxfps=30amp;monitor=21amp;connkey=150000amp;rand=1598607232")
let session = URLSession(configuration: URLSessionConfiguration.default, delegate: self, delegateQueue:OperationQueue.main)
        
session.dataTask(with: url) { (data, request, error) in
     guard let data = data, error == nil else { return }
     print("Download Finished")
     DispatchQueue.main.async() { [weak self] in
         self?.imgLive.image = UIImage(data: data)
     }
}.resume()
  

Изначально у меня была ошибка самоподписанного SSL при доступе к домену, которая разрешилась после использования self as URLSessionDelegate .

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

Однако, используя наш URL-адрес поставщика изображений для прямой трансляции, я вижу, что метод data under dataTask всегда равен 0 байтам.

Как я могу получить доступ к такому URL, обеспечивающему потоковое изображение и эффективное отображение в Swift?

Ответ №1:

Я думаю, мне не нужно заново изобретать колесо, когда кто-то его уже изобрел.

https://github.com/WrathChaos/MJPEGStreamLib — Это хорошо сработало для меня при потоковой передаче изображений MJPEG из удаленного местоположения!