Three.js: Исключение 18 Safari / Firefox DOM для текстур потокового видео

Созданный на 12 февр. 2016  ·  95Комментарии  ·  Источник: mrdoob/three.js

screen shot 2016-02-11 at 5 46 00 pm

https://dl.dropboxusercontent.com/u/1595444/shaka-player/stream-texture.html
(в Chrome нажатие кнопки воспроизведения на элементе видео показывает перевернутый рендеринг видео на элементе холста. В Safari / Firefox texImage2D очень расстроен)

Самый полезный комментарий

Все, внесите свой вклад и убедите людей, которых вы знаете, прекратить использовать устройства Apple. Сообщите им, что Apple - это новый IE5.

Все 95 Комментарий

Является ли перевернутый вопрос частью проблемы?

screen shot 2016-02-12 at 11 00 53

Перевернутый вверх ногами - не проблема. Это я был ленив> _ <

Я могу воспроизвести здесь. Вы пробовали иметь промежуточный холст?

: +1:, промежуточный, как холст 2d?

Да, используйте холст 2d в качестве текстуры и нарисуйте на нем изображение видео.

Похоже, что в Safari не выбрасывается DOM Exception 18 , но изображение не передается. То же самое и с Firefox. Означает ли это, что это реализация в браузере?

Столкнувшись с той же проблемой. Safari выдает Dom Exception 18, Firefox не загружает изображение, но также не показывает ошибок. @ jonobr1 у вас возникают ошибки в firefox?

В Firefox ошибок нет, но и изображения нет. Я собираюсь сообщать об ошибках с помощью WebKit
и Mozilla соответственно и посмотрите, появится ли дополнительная информация.

Не знаю, как вы, ребята, но я не видел демонстраций потокового видео
загружен в текстуру WebGL. Может быть, есть такой с ютубом в качестве источника?
В четверг, 11 февраля 2016 г., в 23:11 Таха Сабих [email protected]
написал:

Столкнувшись с той же проблемой. Safari выдает Dom Exception 18, Firefox - нет
загрузить изображение, но также не показывает ошибок. @ jonobr1
https://github.com/jonobr1 у вас возникают ошибки в firefox?

-
Ответьте на это письмо напрямую или просмотрите его на GitHub
https://github.com/mrdoob/three.js/issues/8110#issuecomment -183208337.

Потоковое видео само по себе не является проблемой. Если вы создаете элемент видео в js и используете video.src для установки источника элемента видео, видеопотоки будут передаваться нормально. Адаптивная потоковая передача с шакой - проблема. Я чувствую, что проблема связана с реализациями CORS в webkit и gecko, следовательно, DOM Exception 18 в Safari. Пример ниже отлично работает с источниками видео одного домена во всех браузерах.

            var video = document.createElement( 'video' );
            video.width = 640;
            video.height = 360;
            video.autoplay = true;
            video.loop = true;
            video.src = "<your mp4 source>";

           // adding the line below makes cross origin videos work, but just for chrome
           // video.crossOrigin = 'anonymous';

            var texture = new THREE.VideoTexture( video );
            texture.minFilter = THREE.LinearFilter;

            var material   = new THREE.MeshBasicMaterial( { map : texture } );

            mesh = new THREE.Mesh( geometry, material );

Чтобы уточнить, я не думаю, что video.src = "<your mp4 source>"; транслируется. Я считаю, что это прогрессивная загрузка . Но да, я согласен с вами.

Ребята люди еще только над этим работают. Будет только хуже, когда люди пытаются снимать VR-видео.

К счастью, билет открыт, иначе, если я попытаюсь сообщить об этом, меня отключат.

В течение многих лет у Safari были проблемы с CORS. Это серьезный недостаток, и они отнеслись к нему с полным презрением. 2D рисование холста также влияет.

Я создал тикет с Apple напрямую, потому что проблема с webkit существует с июля 2014 года без назначения. До этого момента WebGL-видео в основном бесполезно на IOS и Safari. Но тогда также требуется Iphone, воспроизводящий встроенное видео.

Я считаю, что отправка дубликатов в Apple может помочь им поторопиться.

Пожалуйста, посмотрите это. Я почти закончил получать видеотекстуры и 360-градусное видео, полностью работающее на Android, Chrome Dev только что исправил проблемы с рендерингом, над которыми мне приходилось неустанно работать с хромом. Теперь в Chrome возникают проблемы с производительностью воспроизведения видео.

Я сейчас замешан в Safari!

Это радар реального яблочного билета с дословным переводом.

https://openradar.appspot.com/24641824

https://forums.developer.apple.com/message/113161#113161

Актуальная проблема с webkit. Это работа.

https://bugs.webkit.org/show_bug.cgi?id=135379

По сути, это не имеет ничего общего с three.js, но @mrdoob, пожалуйста, держите это открытым, это важно.

Вам нужно делать обратные прокси-хаки, которые никогда не будут масштабироваться, как с 2D-рисованием холста для снимков. Это задокументировано здесь на данный момент

https://flowplayer.electroteque.org/snapshot/fp6

location /video/ {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-NginX-Proxy true;
        proxy_pass //videos.electroteque.org/;
        proxy_redirect off;
    }

Это отправит в облако. Он будет работать с любым видео, включая HLS.

Похоже, это больше преднамеренный саботаж, чем что-либо, чтобы заблокировать это на IOS. Firefox на IOS не имеет поддержки CORS без всякой причины. Это показывает мою функцию отказа от взлома прокси-сервера CORS. Я думал, по крайней мере, Firefox будет полностью функциональным.

это все еще не объясняет, почему рабочий стол firefox не отображает изображения. Он отправляет исходные заголовки, и при использовании без Shaka работает нормально. Только когда источник видео ссылается на большой двоичный объект (как в случае с адаптивной потоковой передачей), изображение не отображается. Он также не сообщает об ошибках, что расстраивает.

Dash отлично работает с Dash.js и видеотекстурами. Но я подтвердю для Windows / OSX, как только закончу рефакторинг их изменений.

Firefox OSX и Windows полностью функциональны. С помощью Dash или обычного потокового воспроизведения HTML5.

Помимо следующего:

Я получаю, что эти журналы появляются как в OSX, так и в Windows.

Error: WebGL: Disallowing antialiased backbuffers due to blacklisting.

Я запускаю Firefox в Windows 10 в Vmware. Из-за этого я думаю, что Firefox блокирует Webgl. Он возвращался к CanvasRenderer. Мне пришлось специально включить webgl с этой конфигурацией.

webgl.force-enabled=true

Вам нужно проверить поддержку WebGL и вернуться к CanvasRenderer, но я не верю, что это ваша проблема.

И WebGL, и Canvas для работы нуждаются в поддержке CORS, поэтому Firefox исключен. Теперь это все эти бладжеры webkit и Apple.

К вашему сведению, вот как выглядит мой сгенерированный тег видео.

Вам нужно свойство crossorigin, в котором вся возня с Safari. Кто бы ни сказал, что это не работает в Firefox, это неверно.

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

Поддержка CORS в IE также изворотлива. IE11 также не смог реализовать это. Браузер Edge работает с CORS и Webgl.

<video crossorigin="anonymous" x-webkit-airplay="allow" preload="auto" webkit-playsinline="true" src="blob:http%3A//localhost%3A8000/8a0dd373-8cb1-4a1d-9ad2-60d0b8f001bf" width="1024" height="512"></video>

Привет, @danrossi , люблю энтузиазм! У вас есть онлайн-пример, как это работает в dash.js?

Кроме того, я сообщал об ошибках как в Safari, так и в Firefox. Вы можете увидеть прогресс по обоим здесь:

https://bugs.webkit.org/show_bug.cgi?id=154189

https://bugzilla.mozilla.org/show_bug.cgi?id=1248054

Попробуйте dash.js с таким тегом видео. Я подтвердю с помощью прокси-взлома, если сафари работает с тире.

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

Подтверждение взлома прокси-сервера ничего не дает при использовании MediaSource в Safari, это нормально с файлами mp4. Так что даже если они, наконец, внедряют CORS, это все равно не работает.

Я оставил комментарий к проблеме с webkit, но, учитывая, что основной билет CORS оставлен неназначенным с 2014 года, Safari и IOS довольно мертвы для VR.

Firefox отлично подходит для меня в Windows 10 и OS X. В Firefox нет CORS на IOS, так что там бесполезно. Я мог бы сделать для них билет, чтобы хоть что-то работало на IOS.

Я оставил еще один комментарий к вашей заявке на Webkit. Они связаны с основной проблемой CORS и, вероятно, должны быть объединены и решены сразу.

Что действительно сводит меня с ума, так это то, что ваш билет назначен, но билет для решения фактической проблемы CORS оставался высоким и сухим в течение 2 лет, делая VR в Safari бесполезным.

Опять же, этот не имеет ничего общего с three.js, но должен быть оставлен открытым только для тех, кто понимает, что Safari и IOS забиты.

Хорошо, после некоторых исследований встроенных видео-хаков для Iphone, которые я уже добавил в билет Apple, кажется, что рисование на 2D-холсте в порядке без CORS. Это при попытке получить от него uri данных, у него есть проблема, поэтому моя ошибка. Таким образом, кажется, что при использовании WebGL это также проблема, потому что Safari не поддерживает CORS и вместо этого приходится прибегать к рендереру холста.

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

см. http://stanko.github.io/html-canvas-video-player/

Для простоты я обновил этот необработанный пример webgl, чтобы использовать mp4 для сафари. Я также обновил этот билет webkit. Это из-за отсутствия поддержки CORS.

https://jsfiddle.net/7t77rz6L/11/

«SecurityError: DOM Exception 18: была предпринята попытка нарушить политику безопасности пользовательского агента».

Спасибо, что сообщили о проблеме. Я тоже видел это за пределами three.js, и это очень раздражает ..!

Яблоко ! По возможности нужна массовая волна дубликатов билетов. Я имею в виду, черт возьми, Youtube уверены в себе с поддержкой WebGL, но Safari не будет работать и не работает в их текущем плеере 360, поэтому я не уверен, почему они ничего не делают с этим. Я также подтвердил, что даже с прокси-взломом Iphone не будет играть в линию, поэтому очки VR и VR бесполезны на Iphone полностью. Для этого требуется очень хитрый способ воспроизведения звука отдельно и обновления времени видео, чтобы получить новый кадр, чтобы фактически не воспроизводить видео. Это не сработает с тире.

И это не юридическая проблема, поскольку права на формат являются реальной нетехнической проблемой? Итак, вы пробовали другие форматы, которые я предполагаю? webm ogg, по-видимому, также существует идея Media Source Extensions MSE, есть также другие высокопрофильные настройки для MP4 H.264, которые не работают на низком оборудовании (проблемы).
Я помню, что проблемы с совместимостью видеоформатов были нетехническими и в большей степени лицензионно-юридическими или просто контрольными проблемами.
Во всяком случае так шокирует так +1. Думаю, мы всегда можем бойкотировать, в конце концов, никто не будет использовать то, что не работает. Я использую Android и Chrome исключительно по многим другим причинам, в том числе и по этой.

Это проблема webkit с отсутствием функциональности CORS. Они годами растрачивали это, думая, что им это сойдет с рук. Только теперь люди, пытающиеся использовать Webgl, имеют проблему и просто осознают. Авария ждет своего часа. То же самое и с принудительным отключением Iphone от встроенного воспроизведения. Видео в одном и том же домене не используются в реальном мире.

В Android Chrome есть проблемы с webgl, а также с рендерингом на холст. Я только что потратил на это целый месяц и наконец подтвердил в этой заявке, что последний разработчик снова работает. По крайней мере, Android будет работать с очками VR и WebVR, а Iphone - нет.

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

Статус заявки webkit обновлен. Я считаю, что им нужно было исправить что-то еще, чтобы работать с этим тикетом, но до сих пор никто не назначил фактический тикет с ошибкой cors. Абсолютно все рассчитывают, что они исправят это и, надеюсь, получат релиз как в IOS, так и в Safari. Это должно быть очень неприятно для яблока. Они отпускают это на долгие годы без всякой причины.

@danrossi, спасибо, что держите нас в курсе! 😊

@danrossi потрясающая работа! Спасибо за все обновления

??? Webkit dev работает сейчас?

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

это последнее обновление. Кто знает, исправляет ли это отсутствие поддержки CORS.

https://bugs.webkit.org/show_bug.cgi?id=125157#c29

Кто знает, попадет ли оно когда-нибудь в IOS. Проблемы с воспроизведением встроенного видео на iPhone также вызывают беспокойство. Должен ли я сделать еще один запрос в Apple об этом?

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

Так что я считаю, что давление на Apple растет. Они закрыли мой билет, утверждая, что есть дубликат, который вы не можете увидеть или прокомментировать, и он выглядит как очень ранний билет. Но это все еще не объясняет встроенное воспроизведение видео Iphone для WebGL. Требуется куча жалоб, чтобы представить, что на это могут уйти годы.

Я вернулся, чтобы проверить с людьми Chrome, и кажется, что Chrome Dev Android все еще не работает с рендерингом WebGL. Есть какой-то флаг, который можно включить, чтобы он отображался, но это приведет к серьезному пропаданию кадров.

В стандартном браузере Android есть проблемы с CORS, такие как Safari, поэтому они бесполезны. В Firefox IOS также отсутствует поддержка CORS, и он собирается добавить билет, чтобы заставить их реализовать его. Этот CORS, портящий все, просто шокирует.

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

Если интересно, я официально сделал заявку здесь, чтобы хотя бы Firefox на IOS мог работать с WebVR и забыть о Safari. Я еще не подтвердил, может ли он воспроизводить встроенное видео на Iphone. Возможно, они быстрее откликнутся на поддержку CORS, но это не шокирует.

https://bugzilla.mozilla.org/show_bug.cgi?id=1256083

Подтверждение того, что механизмы отключения Apple принудительно переводят видео в собственный проигрыватель для Firefox, также. Судя по всему, преднамеренный саботаж.

это не показывает ничего на холсте в Firefox и на Mac (работает в Chrome), а не в iOS.

о, ff начинает показывать картинку примерно через 2:50

Не ошибитесь здесь. Это проблема CORS, которая имеет прямое отношение к IOS / Safari. Я ничего не знаю об этом примере с тире, но я протестировал Dash с видеотекстурами в Firefox на OSX, и все в порядке.

При использовании Dash в Firefox возникает проблема с сегментами, которые вы создаете при обработке видеофайлов, чтобы сделать их совместимыми с Dash. Отсутствие сегментации файлов, похоже, работает в Firefox (может также объяснить, почему воспроизводятся последние несколько секунд сегментированного видео).

13 марта 2016 г. в 21:51 danrossi [email protected] написал:

Не ошибитесь здесь. Это проблема CORS, которая имеет прямое отношение к IOS / Safari. Я ничего не знаю об этом примере с тире, но я протестировал Dash с видеотекстурами в Firefox на OSX, и все в порядке.

-
Ответьте на это письмо напрямую или просмотрите его на GitHub.

Это мои упакованные файлы, которые я отлично протестировал с three.js. Я использовал bento4. интервал ключевого кадра h264 по-прежнему равен (2,3,4) * частота кадров, как HLS. Не проблема с WebGL. Проблема CORS очень актуальна для Webkit, Apple и Firefox на IOS. Вы должны указать атрибут «crossorigin».

https://videos.electroteque.org/dash/nodrm/bbb/bbb.mpd

Извините, что принесли это сюда, но людям нужно знать.

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

Samsung Gear пытается запустить собственное приложение с браузером на S7. Я попросил кого-то протестировать WebGL / WebVR, и когда он надевает очки Gear, он запускает собственное приложение вместо Chrome. Вся суть WebVR - запускать холст WebGL при переходе в полноэкранный режим в очки.

Итак, что происходит, кажется, что их глупое приложение использует стандартный код браузера Android вместо Chrome и, следовательно, не поддерживает видеотекстур WebGL, междоменное видео и даже API WebVR.

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

Я только что выяснил, что производственный Chrome, похоже, отображает видеотекстуры WebGL на S7, но мой S3 полностью сломан, и я уже несколько месяцев пытался понять это с помощью разработчиков Chrome.

Не знаю, что вообще происходит с IOS. IOS сейчас совершенно бесполезна и для VR. Webkit по-прежнему напичкан поддержкой междоменной безопасности, которую они годами не внедряли, делая виртуальную реальность бесполезной. Отсюда все вышесказанное.

К вашему сведению: эта фиксация https://github.com/mrdoob/three.js/commit/854ebf5bd6179a3046d4b901b12a9cbc99008c61 устраняет проблему для Firefox 👍

Привет, в соответствии с этим скрытно, поскольку Apple проигнорировала мои билеты об ошибках и закрыла их, похоже, Apple исправила это, но разделила код, похоже, в Safari, но в macOS. ОС и браузер, которыми еще никто не пользуется.

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

Это по-прежнему будет нарушено для Dash, хотя взлом прокси не работает, но будет подтвержден снова.

https://twitter.com/zenoc/status/742770789880111104

Привет, ребята, спасибо за всю информацию,

но на самом деле, если бы кто-то мог подробно объяснить, как реализовать перечисленные здесь «взломы обратного прокси»:
https://github.com/mrdoob/three.js/issues/8110#issuecomment -183570240

это было бы прекрасно

спасибо
Саар

Для apache

 ProxyPass /video/ //videos.electroteque.org/
    ProxyPassReverse /video/ //videos.electroteque.org/

Для nginx

location /video/ {
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-NginX-Proxy true;
    proxy_pass //videos.electroteque.org/;
    proxy_redirect off;
    }

Насколько я понимаю, текущие браузеры webkit никогда не увидят изменений. У них будет готово для Mac и ОС IOS, которых нет ни у кого. Они все еще возятся с CORS для IOS из-за "проблем с фреймворком", сдерживающих его.

Возможно, придется прибегнуть к решению Flash, если Stage3D может рендерить с аппаратным ускорением, но ему это не нравится. Он постоянно рисует растровые данные.

спасибо за быстрый ответ

Хорошо, у меня пока нет обходного пути, пока Apple не исправит это.

А как насчет того, чтобы перехватить «исключение DOM 18» для резервных опций? Как мне его поймать?

Я попытался поместить его в вызов render () объекта THREE.WebGLRenderer, но он не был пойман.

Вы делаете обнаружение на временном видео. т.е.

testVideo.hasAttribute("crossOrigin")

Вы также можете просто выполнить обнаружение браузера. Его Safari и IE 11.

Просто предупреждаю об этой безумной проблеме. Я пока не могу протестировать режим VR на IOS, пока не разверну на своем Ipad.

Приложения Cordova используют WebView. У него есть опции для встроенного воспроизведения, поэтому эта неприятная проблема решается. Это работает вокруг взаимодействия с пользователем. Этот самый сумасшедший из всех и сводил меня с ума.

WebView, похоже, полностью обходит CORS, даже если это локальный html-файл, работающий в file: //. WebGL работает в приложениях Cordova без атрибута crossorigin. Это одновременно шокирующие и хорошие новости. Взлом прокси не потребуется, но Safari IOS / OSX понадобится.

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

Тестирование на Android - проблема из-за ошибки рендеринга Chrome, которую я потратил 3 месяца, пытаясь заставить людей Chromium исправить, и сдался. К сожалению, он полностью черный и, надеюсь, не проблема CORS, которая не показывает ошибок.

так я понял это правильно? это ВСЕ ЕЩЕ единственный способ использовать видеотекстуры webgl с webgl, реализовав взлом прокси на сервере?

Safari полностью обновлен, как и IOS. Если вы используете приложения на основе Cordova WebView, вы можете играть в интерактивном режиме, автоматически и не спрашивать, почему, но CORS не является проблемой. Это было бы для mp4 / HLS на IOS.

Но как я доложил и выяснил. Они подавляют работу старых устройств и замедляют их работу, чтобы заставить людей обновляться. Ipad 3 бесполезен для WebGL и возвращает 5 кадров в секунду. Это должно быть новое устройство.

В Safari на OSX источник мультимедиа полностью заблокирован. прокси CORS там не работает. Это также должен быть файл mp4 или собственный HLS. Используя собственный HLS, вы предоставляете URL-адрес прокси-сервера CORS.

Эти неудачники в Apple планируют выпустить исправления в macOS, так что в чем-то еще никто даже не сделал.

Они пытаются исправить основные проблемы с фреймворком в IOS. Поэтому я сомневаюсь, что CORS будет исправлен в следующем выпуске IOS.

У WebVR тоже нет, оба - шутка. Они относятся к WebVR как к какой-то шутке и отстают на годы.

Что ж, WebVR на рабочем столе нуждается в Windows SDK, поэтому OSX все равно не вариант, но, по крайней мере, apis может быть там для тестирования клиента? Если у Android есть картонный дисплей по умолчанию, не знаю, почему IOS не может и включить WebVR?

Они оставили эту проблему CORS на долгие годы, и это результат.

Звучит действительно безумно.
(Извините, я не разработчик полного стека)
Я просто хочу быть уверенным: в целом, если у меня нет доступа к серверу, видео текстуры на webgl невозможны на ios? С прокси-хаком он работает на ios, но НЕ на osx?

Вы можете попробовать iframe. Я еще не пробовал. Плеер должен будет сидеть на облаке с видео файлами.

однако не помогает с динамическим кодом. т.е. какие-то псевдосылки.

ссылка на видео: //videos.electroteque.org/360/video.mp4

Страница iframe: //videos.electroteque.org/360/player.html.

Я считаю, что Apple является лидером в области стандартов. Где вам нужны статические файлы iframe-страниц для ваших плееров.

Я видел, что Chrome для iOS добавит встроенное воспроизведение:
https://bugs.chromium.org/p/chromium/issues/detail?id=395206
Во вторник, 23 августа 2016 г., в 5:18 danrossi [email protected] написал:

Вы можете попробовать iframe. Я еще не пробовал. Игроку придется
сидеть на облаке с видео файлами.

однако не помогает с динамическим кодом. т.е. какие-то псевдосылки.

ссылка на видео: //videos.electroteque.org/360/video.mp4

Страница iframe: //videos.electroteque.org/360/player.html.

Я считаю, что Apple является лидером в области стандартов. Где нужна статика
файловые страницы iframe для ваших игроков.

-
Вы получаете это, потому что вас упомянули.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/mrdoob/three.js/issues/8110#issuecomment -241712327,
или отключить поток
https://github.com/notifications/unsubscribe-auth/AANbgfcQaLhx_UmJHEmViJ76_Hi4uikSks5qiuUKgaJpZM4HYtu3
.

Да! 🤘

Я только что тестировал Chrome на IOS. Я не знал, что он у них был.

Похоже, он также использует Webkit, как Firefox. И страдает проблемами CORS. Сложно удаленно отлаживать Chrome на IOS из-за очевидных жестких ограничений Apple с их стороны, и weinre продолжает давать сбой. Но я изменил свою работу CORS вокруг URL-адреса, и я получаю черную рамку. Итак, я знаю, что CORS не работает в Chrome, Firefox и Safari на IOS. С правильным URL-адресом прокси-сервера CORS он "работает"

встроенное воспроизведение - это только часть проблемы и проблема только для Iphone.

встроенное воспроизведение появится в iOS 10. Решение iframe работает с проблемой CORS, но вы теряете события devicemotion и orientationchange в дочернем окне.

Да, только встроенное воспроизведение - это только половина проблемы. Проблема CORS гораздо более важна, но она не дойдет до IOS 10. Проблема CORS может быть полностью решена для Safari, но в macOS.

Обход Iframe не является вариантом, требующим, например, размещения в том же домене, что и облачное хранилище. Может быть, есть какой-то взлом DNS, чтобы он выглядел так, как будто cname sub.domain.com - это domain.com, но не знаю.

@thiagopnts Так будут ли эти события отключены во встроенном проигрывателе iframe даже в полноэкранном режиме?

@danrossi из того, что мы тестировали, все события, прикрепленные к window , не запускаются внутри iframe

Красивое яблоко!

@thiagopnts Можете ли вы привести пример iframe, исправляющий проблему

@cheesyeyes здесь: http://thiago.me/kaleidoscope/iframe.html
страница находится на страницах github, тогда iframe и видео загружаются с диска Google

да, это работает в Safari, но не очень практично. статический html-файл для каждого видео, находящегося в CDN?

Ребят, а стоит ли закрывать этот вопрос?

Я думаю, что с этим ничего не поделать. Точно так же, как «старая версия Idevice намеревалась снизить скорость, чтобы сделать ее устаревшей», как мы только что выяснили с проблемой fps.

В Safari on Yosemite изменилось что-то действительно странное, чего раньше не было. Он сломал обнаружение функций с помощью CORS во многих вещах, которые я делал.

Просто напишите, люди просто работают, насколько он сломан на самом деле.

var testVideo = document.createElement("video");
 testVideo.crossOrigin = "anonymous";
console.log(testVideo.hasAttribute("crossOrigin"));

В IE11 он возвращает false, как и ожидалось. В Safari это правда, но ошибка CORS, очевидно, все еще существует. Обнаружение функции, очевидно, требует взлома прокси. Безумие.

Так что я не могу не думать, что была выдвинута какая-то недоработанная мелочь?

Это странное изменение с флагом crossOrigin есть в Safari 10. Итак, наполовину запеченная реализация. В Safari 9 этого не было.

Я сообщил о нескольких тикетах об ошибках в webkit.

Они саботировали взлом прокси-сервера CORS при обновлении IOS. Сообщается, что macOS также не устранила проблему CORS в Safari.

Теперь мне нужно понять, как обойти их саботаж.

Серьезно заставляет меня потеть, ха-ха.

Все, внесите свой вклад и убедите людей, которых вы знаете, прекратить использовать устройства Apple. Сообщите им, что Apple - это новый IE5.

К сожалению, CORS на IOS - это ограничение фреймворка, которое, как мне кажется, они не удосужились исправить в IOS 10. Кроме того, все, что использует Webkit, является проблемой.

По-видимому, проблема CORS исправлена ​​в Safari в macOS, но в самых последних обновлениях. Встроенное воспроизведение видео также работает в IOS 10.

Вот два теста для потоковой передачи mp4, еще один для HLS. Один HLS требует дополнительной работы из-за отдельной ошибки FlipY, которая все еще остается проблемой в OSX Safari.

Рендеринг HLS в IOS 10 отображается, но имеет проблемы с цветовыми артефактами. Фреймы перестают работать, но я считаю, что это проблема с эмулятором и падением фреймов. Сейчас у меня нет устройства, которое можно обновить до IOS 10, из-за устаревания и громоздкого программирования со стороны Apple. Один HLS по-прежнему не отображается на IOS 9. Оба требуют прокси CORS для mp4 и HLS.

http://dev.electroteque.org/webgl/threejscors.html
http://dev.electroteque.org/webgl/threejscors-hls.html

Теперь застрял в ситуации, когда обнаружение функции crossOrigin нельзя использовать, потому что оно сообщает о поддержке в OSX 10.11, но такой вещи нет. нужно попытаться определить, в каком сафари OSX также используется. очень плохой.

Это немного абсурдно и действительно удерживает iOS от любой реальной разработки WebVR на основе видео. Я пытаюсь использовать междоменный ресурс как часть текущего проекта, и сейчас это единственное, что меня сдерживает. Работает на всех Android и настольных компьютерах / ноутбуках, но, конечно, не работает на iOS ...

@theDrGray Вы можете попробовать взломать iframe, но iframe блокируют apis ориентации, которые, как мне кажется, нуждаются в другом взломе? Я скоро изучу демонстрацию iframe.

Это означает, что на вашем CDN вам нужны статические настройки видеоплеера для каждого видео, что плохо. Я могу поиграть с

Файл filename.html анализируется, и загружается имя файла: filename.mp4, filename.webm, filename, m3u8 filename.mpd и т. д. Затем на него может быть загружен личный токен, например filename.html? t = token.

Если бы только функция Amazon Lamda могла работать в том же домене, что и cname видео, проигрыватели могли бы быть динамическими ??

Если все остальное не помогает, вам нужен прокси-сервер CORS, и теперь его обнаружение является проблемой. Они саботировали его в Safari 10. Safari 10 сообщает о поддержке «crossOrigin», но на самом деле этого нет в IOS 10 и Yosemite. Вам нужно сделать вторичную проверку OSX 10.12, ха-ха

Вот как выглядит обнаружение CORS в моем проекте плеера ES6

static supportsCORS() {
        let testVideo = document.createElement("video"),
            hasCORS = false;

        testVideo.crossOrigin = "anonymous";
        hasCORS = testVideo.hasAttribute("crossOrigin");
        testVideo = null;

        if (hasCORS) {

            if (WebVRUtils.isSafari) {

                if (WebVRUtils.isIpad) return false;
                return WebVRUtils.isNewSafari;
            }

            return true;
        }

        return false;

    }

    static get isSafari() {
        const userAgent = navigator.userAgent;
        return (/Safari/i).test(userAgent) && !(/Chrome/i).test(userAgent);
    }

    static get isIpad() {
        const userAgent = navigator.userAgent;
        return (/iP(hone|od|ad)/i).test(userAgent);
    }

    static get isNewSafari() {
        const version = /Mac OS X (10[\.\_\d]+)/.exec(navigator.userAgent)[1].split("_")[1];
        return +version >= 12;
    }

Здесь те же проблемы .... Работает везде, кроме iOS. Так обидно. Какая большая дыра в моем результате. Он работает ТОЛЬКО (я могу добавить ужасную частоту кадров), когда исходный путь является относительным ... Не идеально для системы масштабирования. Ух .... Ну .... По крайней мере, я могу перестать биться головой .... Это невозможно .... На данный момент ... Теперь, чтобы построить вокруг этого ... И резервные сообщения ux и обмен сообщениями.

@danrossi Спасибо за ваш комментарий. «По-видимому, проблема CORS исправлена ​​в Safari в macOS, но в самых последних обновлениях», однако мне не удалось найти других подробностей, кроме вашего комментария. Вы знаете, с какой версией macOS и Safari это работает? Будет ли это «знаком» того, что Apple распространит это исправление на iOS?

Можно надеяться ...

1 декабря 2016 г. в 15:50 «Киран Фарр» [email protected] написал:

@danrossi https://github.com/danrossi Спасибо за ваш комментарий
"По всей видимости, проблема CORS исправлена ​​в Safari в macOS, но в самой последней версии
обновления, "однако мне не удалось найти другие подробности нигде
помимо вашего комментария. Вы знаете, какая версия macOS и Safari это
работает с? Будет ли это «знаком» того, что Apple распространит это исправление на
iOS?

-
Вы получили это, потому что прокомментировали.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/mrdoob/three.js/issues/8110#issuecomment-264290616 ,
или отключить поток
https://github.com/notifications/unsubscribe-auth/ANKfT8A140W4hW0YMqq3L6AP_gljY4WUks5rDzMGgaJpZM4HYtu3
.

@kfarr независимо от того, какое последнее обновление для macOS. В предыдущих версиях OSX и Safari проблема все еще существует. Вот как раскатывают Apple. Они заставляют пользователей обновляться, чтобы получить исправления.

Подтверждено, что это работает должным образом (ошибка исправлена) при тестировании с этим тестовым URL-адресом с использованием последней версии macOS Sierra 10.12.1 (16B2659) Safari версии 10.0.1 (12602.2.14.0.7).

Ошибка до сих пор НЕ исправлена ​​в Mobile Safari на iOS 10.2 Public Beta 3 (14C5077b). Доступна более новая Beta 4, но я еще не устанавливал и не тестировал ее.

Да, это все еще проблема с IOS. Если вы используете приложения на основе WebView Cordova. Нет вообще никакой проблемы с CORS, это самая странная часть.

Хмммммм .... Кордовская обертка исправляет!?! Странный...

1 декабря 2016 г. в 18:59 "danrossi" [email protected] написал:

Да, это все еще проблема с IOS. Если вы используете приложения на основе WebView Cordova.
Нет вообще никакой проблемы с CORS, это самая странная часть.

-
Вы получили это, потому что прокомментировали.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/mrdoob/three.js/issues/8110#issuecomment-264333449 ,
или отключить поток
https://github.com/notifications/unsubscribe-auth/ANKfT40CQRZqWYEJWmojo_Omvl38WeUlks5rD19GgaJpZM4HYtu3
.

Да работает с любыми ограничениями CORS и даже не требует атрибута crossOrigin. Надеюсь, они не саботируют это, поскольку это вариант.

Есть идеи, что вызывает такое поведение Cordova WebView? Я пробовал читать этот источник https://github.com/apache/cordova-ios/blob/master/CordovaLib/Classes/Private/Plugins/CDVUIWebViewEngine/CDVUIWebViewEngine.m и не могу обнаружить ничего связанного.

@ matti777 Насколько я понимаю, до тех пор, пока это работает, и, надеюсь, они не узнают и не саботируют его намеренно, так тому и быть, ха-ха.

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

Что ж, я имел в виду, что если бы я знал, что Кордова делает по-другому со своим UIWebView, я бы реплицировал этот код в своем собственном приложении, чтобы иметь поддержку CORS для моих видео html5, которые я также использую как текстуры THREE.js.

Мы используем размещенные на Vimeo видео, а общедоступные URL-адреса формы:

https: //player.vimeo.com/external / ...

..не работает, видео ДЕЙСТВИТЕЛЬНО работают с URL-адресами, на которые они перенаправляются:

https://fpdl.vimeocdn.com/ ..

Возможно, тогда на их vimeocdn.com установлена ​​функция обратного прокси? Думаю, мне следует спросить Vimeo.

Должен сказать, меня это очень раздражает. Спасибо, Стив.

  • M

Я буду пробовать решение IFRAME. Не совсем уверен, как это сделать. Я создаю видеоэлемент / холст из кода (и, конечно, никогда не добавляю их в DOM), поэтому мне было интересно, есть ли что-то вроде:

self.iframe = document.createElement("IFRAME");
self.iframe.setAttribute("src", 'https://player.vimeo.com/');
self.iframe.appendChild(self.video);

.. достаточно.

Итак, хм, после того, как я отказался от видеотекстур iOS, я обратился к Android, просто чтобы заметить аналогичное поведение через THREE.js; мое видео CORS воспроизводится (я слышу звук), но видео не отображается - все, что я получаю, - это черный экран. Я пробовал это с THREE.js r79 и r84, только сейчас. Странно то, что http://krpano.com/ios/bugs/ios8-webgl-video-cors/ отлично работает на Android?

Это код, который я использую на Android - ну, на всех платформах, если на то пошло - (работает внутри собственного приложения в веб-просмотре, с включенным аппаратным ускорением и установленным WebChromeClient):

http://pastebin.com/Y1D3beti

Единственное отличие от работающего krpano.com raw WebGL состоит в том, что они загружают текстуру прямо из видеоэлемента, а не через холст - это моя проблема? Мне действительно нужно было бы выполнить рендеринг через холст, чтобы добавить что-то поверх видеоизображения и вокруг него.

  • Матти

Единственное отличие от работающего krpano.com raw WebGL состоит в том, что они загружают текстуру прямо из видеоэлемента, а не через холст - это моя проблема?

Может быть? Вы пробовали передавать видео напрямую?

Этот билет касается проблем CORS с Safari. Safari 10 в macOS полностью исправлен даже для Dash.

IOS 10 по-прежнему является проблемой с COR и требует прокси CORS. Или используйте приложения Cordova Webview, которые вообще не используют ограничения CORS.

Стандартный браузер Android не поддерживает CORS, и даже прокси-сервер CORS не работает.

Chrome и Firefox только на Android.

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

@danrossi мы можем увидеть, что вы строите? Звучит впечатляюще!

26 января 2017 г., 8:41 danrossi [email protected] написал:

Этот билет касается проблем CORS с Safari. Safari 10 в macOS - это
исправлено полностью даже для Dash.

IOS 10 по-прежнему является проблемой с COR и требует прокси CORS.

Стандартный браузер Android не поддерживает CORS, и даже прокси-сервер CORS поддерживает
не работает.

Chrome и Firefox только на Android.

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

-
Вы получаете это, потому что вас упомянули.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/mrdoob/three.js/issues/8110#issuecomment-275438671 ,
или отключить поток
https://github.com/notifications/unsubscribe-auth/AANbgazonmTe-yGDfgToCRVhTy_qyp_Eks5rWMy1gaJpZM4HYtu3
.

>

http://jonobr1.com/

@danrossi Safari для вас полностью исправлен? Вы используете прокси-хак, чтобы запустить Safari? Я все еще получаю SecurityError (DOM Exception 18): The operation is insecure. на https://krpano.com/ios/bugs/ios8-webgl-video-cors/ с Safari 10.0.3 на El Capitan.

@timothyallan У меня было слишком много других проектов, над

IOS 10 здесь нарушает условия сделки, и проблема все еще остается. Мне все время приходилось объяснять людям, почему это не работает и как этого избежать.

Apple ожидает, что люди обновятся до новых операционных систем, и я считаю, что это окончательно.

Проблема webgl с Dash в Safari Я вижу мелкие и серые обновления статуса в этом тикете, но в моем тесте я думаю, что это также работало в macOS.

Просто обновление здесь. Эти бладжеры послужили некоторым подстрекательством, хотя и очень тихим.

Исправление cors находится в бета-версии IOS11. IOS10 этого не получит.

https://bugs.webkit.org/show_bug.cgi?id=135379#c92

Новое обновление. Бета-версия iOS 11 на устройствах, на которых, как сообщается, исправлен CORS. Теперь требуется новое устройство, поддерживающее IOS 11.

Даже не беспокойтесь о симуляторе, он сломан и не имеет исправления CORS.

https://bugs.webkit.org/show_bug.cgi?id=135379#c108

Ура!!

11 августа 2017 г. в 2:53 "danrossi" [email protected] написал:

Новое обновление. Бета-версия iOS 11 на устройствах, на которых, как сообщается, исправлен CORS. Теперь
требуется новое устройство, поддерживающее IOS 11.

https://bugs.webkit.org/show_bug.cgi?id=135379#c108

-
Вы получили это, потому что прокомментировали.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/mrdoob/three.js/issues/8110#issuecomment-321742658 ,
или отключить поток
https://github.com/notifications/unsubscribe-auth/ANKfT5TG41uHQV8U_FrF8LaJ0EMKKIy_ks5sW_pjgaJpZM4HYtu3
.

Подтверждение CORS исправлено в IOS 11.1. Я наконец-то получил бюджет, чтобы получить аппаратное устройство для тестирования. Это заняло так много времени.

Прокси-сервер CORS в версии 11.1 не требуется. Я не думаю, что поддержку атрибутов CORS можно должным образом протестировать с помощью Safari. Придется делать проверку версии клиента.

Однако сейчас необходимо решить серьезные проблемы регрессии HLS / webgl.

Большой. Спасибо!

5 ноября 2017 г. в 1:36 "danrossi" [email protected] написал:

Подтверждение CORS исправлено в IOS 11.1. Я наконец-то получил бюджет, чтобы получить
аппаратное устройство для тестирования. Это заняло так много времени.

Прокси-сервер CORS в версии 11.1 не требуется. Я не думаю, что атрибут CORS
поддержка может быть должным образом протестирована с помощью Safari. Придется делать клиентскую версию
чеки.

Однако сейчас необходимо решить серьезные проблемы регрессии HLS / webgl.

-
Вы получили это, потому что прокомментировали.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/mrdoob/three.js/issues/8110#issuecomment-341952485 ,
или отключить поток
https://github.com/notifications/unsubscribe-auth/ANKfT52MncuxghqJmPes4iFoO1a_K_Gfks5szVd1gaJpZM4HYtu3
.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги