Технология Progressive Streaming, или как смотреть 4k видео по сети, без фризов



Сегодня никого не удивить скоростью интернета 100 Мбит\с., но существует проблема, как её использовать. Все основные операции загружают сеть не полностью. Одновременно с этим более высокую популярность получают тяжёлые форматы аудио и видео 4k-8k, которые хочется смотреть онлайн. И глядя на высокие скорости интернета, возникает логичный вопрос — а почему этого нет? Как освоить всю скорость предоставляемую провайдером? Как со стороны клиента, так и со стороны сервиса. Рассмотрим все эти вопросы в статье.

Я сделал действительно хороший программный продукт и хочу рассказать подробнее, как там всё устроено. Там много новых технологий. Возможно, потому что в этой отрасли давно уже никто ничего не изобретал, а время пришло. Статья эта не только для разработчиков, но и для обычных людей. Я постарался объяснить всё, как можно проще.

1. Начнём с базовых основ сегодняшних технологий передачи данных.
Существует большой пробел в знаниях многих людей по алгоритмам передачи данных на высоких скоростях — более 10 МБит\сек… Давайте восполним эти пробелы:

Пробел №1. Проблема в том, что совокупность технологий радиопередачи сейчас ориентирована на непрерывную передачу данных, как наиболее лучший сценарий.

Всё что передаётся по wi-fi\3G\4G и даже по проводам будет быстрее всего передаваться, если передача будет постоянная, пусть даже с меньшей скоростью, чем максимальная. Это будет намного быстрее, чем передавать с перерывами, но на максимальной скорости.

Причины:

  • для возобновления связи в трафик добавляется больше служебной информации;
  • при возобновлении связи сервер может понизить клиентский рейтинг и отдавать данные с меньшей скоростью (возможно из-за появления других клиентов), либо вообще не отдавать. Даже в домашней wi-fi сети роутер может понизить рейтинг, например, из-за wi-fi пылесоса. Т.е. это относится ко всем сетям где есть больше 2х клиентов. В общем-то почти ко всем :-)

Пробел №2. При копировании данных любая программа пользуется неким «ковшом», который черпает данные в источнике и переносит их в место назначения. Так вот этот ковш в зависимости от скорости передачи данных должен быть разных размеров. Это просто понять: если черпать чайной ложкой ведро воды, то это займёт намного больше времени, чем черпать кружкой.

Пробел №3. Для повышения скорости загрузки данных по сети, должна использоваться оперативная память. Любые малейшие миллисекунды задержки, при записи поступающих данных выливаются потом в секунды, минуты и часы. Чтобы этого не происходило нужно писать данные сначала в оперативную память, а затем более объёмным «ковшом» на постоянный носитель (жёсткий диск). Иначе скорость передачи данных будет драматически падать.

Этого достаточно, чтобы просто копировать файл.

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

Самая лучшая стратегия строится из выше сказанного о пробелах:

  • загрузка данных должна происходить независимо от воспроизведения, непрерывно;
  • для обеспечения перемотки, необходимо создавать ещё один поток загрузки данных;
  • для преодоления фриза при старте, из-за получения технических данных (кодеках и.т.п.), необходима предзагрузка. Опытным путём я нашёл формулу: размер всего файла * 0.002 или 0,2%.

Этого достаточно для воспроизведения Flac файлов.

3. Получается для онлайн-стриминга, который будет рационально и полноценно использовать наш канал связи, нужна оперативная память и место на диске. Без этого канал будет использован не полностью.

И тут начинается ветвление алгоритмов загрузки данных! Без технических подробностей приведу их в примерном объёме:

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

Я всё это сделал и немного больше. Получилось совершенно сказочно. Данные летают и воспроизведение не прерывается. Flac файлы закачивались полностью на 1-3 секунде воспроизведения. И этого стало достаточно для воспроизведения Full HD видео.

4. Проблема в том, что медиа файлы у нас сильно отличаются в размерах. И с 4k Blu-Ray фильмами, которые весят около 80-120 Гбайт, ничего не получилось. Плеер создавал 15 потоков на старте, и они все делили между собой скорость, которой, конечно, не хватало для главного потока, которого ждал плеер. Данные грузились на максимальной скорости, да… загружали полностью канал, но 4k видео висело и воспроизводилось медленнее, чем слайдшоу. Получается много потоков это вред для 4k видео, но где та граница, после которой польза в Full HD переходила во вред в 4k?!

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

а) Необходимую скорость для воспроизведения, которая вычисляется: (размер файла / его длительность в секундах) * 8.

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

Если мы управляем загрузкой данных, то у нас обязательно есть возможность измерить скорость загрузки. Теперь каждый поток знал свою скорость (в Мбит\сек.) и это не накладывает дополнительных расходов на производительность. Обязательно нужно обозначить с каким потоком в данный момент работает плеер. Всё начинается в обычном, многопоточном режиме. Но как только плеер вычисляет длительность медиа-файла в секундах и передаёт эти данные, то все потоки получают фиксированную, необходимую скорость для воспроизведения. Сразу после этого все потоки (кроме главного) сравнивают необходимую скорость со скоростью главного потока и если его скорость ниже, то становятся на паузу. Далее, главный поток медленно наращивает свою скорость, и как только, он превышает в два раза (так сделал я) необходимую скорость, то он снимает с паузы все второстепенные потоки.

По наблюдениям, далее, через некоторое время, скорость основного потока снова падает и все второстепенные потоки опять переходят в паузу, и так пока не докачаются данные или воспроизведение не завершиться. Такая гибкая стратегия, когда загрузка данных параллелится и при необходимости сжимается в один поток, полностью загружает канал связи и одновременно обеспечивает максимально быструю загрузку, именно, необходимых для воспроизведения данных. Эта стратегия одинаково хорошо работает на файлах и 10 Мбайт и 100 Гбайт. Для воспроизведения по сети без потерь, невозможно придумать ничего лучше. Если есть предложения буду рад обсудить их в комментариях.

Подходит для воспроизведения медиа файлов любых объёмов 4k-8k.

Прогрессивный стриминг — самый быстрый вид стриминга, при передаче данных в исходном качестве. Для повышения скорости передачи данных он задействует оперативную память и мультипоточность. Данные загружаются асинхронно потоку воспроизведения, но при активном взаимодействии с ним. Во время воспроизведения измеряется скорость получения данных, и количество активных потоков адаптируется под доступный канал передачи данных.
Именно сейчас в мире идёт большая тенденция к увеличению количества видео в высоком разрешении, и рост популярности устройств для его воспроизведения.


Источник www.vox.com

Битрейт 4k видео большой, но не заоблачный. Самый эффективный кодек VP9 на сегодня сжимает 4k видео в 15 Мбит\сек. с аудио выходит около 15,5. Blu-Ray фильм в 100 Гбайт имеет битрейт около 60 Мбит\сек… Эти скорости интернета есть у любого в мире, желающего посмотреть 4k видео. Это значит 4k видео можно смотреть онлайн уже сейчас!

Несмотря на простоту описанного выше алгоритма, реализация выглядит очень сложно. Технологии стриминга с ухудшением качества видео и аудио, вынуждены портить контент из-за отсутствия реализации правильного алгоритма передачи данных. Я предполагаю, что у многих людей и компаний есть (вышеописанные) пробелы в знаниях и, конечно же, трудности в реализации данного алгоритма. Поэтому и написал статью, чтобы упростить понимание этого способа стриминга.

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

А теперь посмотрим на недостатки обычного стриминга, по сравнению с прогрессивным:

  • невозможно предзагрузить следующий файл\предугадать и подготовить следующее действие;
  • даже, при временном отключении интернета\перебоях в скорости появится заметный фриз звука\изображения;
  • канал связи не используется полностью, и половину времени воспроизведения простаивает, в то время, когда данных надо грузить ещё много;
  • невозможность воспроизводить 4k-8k видео, даже по wi-fi без фризов. Постоянные порывы связи и скачки скорости до максимума не выдержит, даже домашний wi-fi на протяжении всего фильма — это 2 часа и более;
  • это накладывает ещё большую нагрузку при воспроизведении 4k контента, так как плееру нужно держать в оперативной памяти от 200-300 Мбайт данных видео (при необходимой скорости 60 Мбит\сек.). При воспроизведении через прогрессивный алгоритм стриминга эта необходимость отпадает, так как воспроизведение идёт с диска, а не по сети.

По этим пунктам понятно, что стримить, как раньше уже нельзя. Конечно можно нарастить скорости\память\кеш в десятки раз, но зачем, если сегодняшних скоростей уже достаточно и проблема кроется в алгоритмах. Плохие алгоритмы рано или поздно заходят в тупик. На сегодня прогрессивный стриминг — единственная технология позволяющая стабильно и комфортно смотреть 4k 100 Гигабайтные фильмы онлайн.

Как пример работы технологии, я написал мультимедийное приложение — плеер Media Library. Он поддерживает все форматы. Для демонстрации возможностей нужно запустить его. Открыть демо сайт и перейти в дереве каталогов в «Фильмы (TOP)/4k фильмы». Там вы можете выбрать любой фильм и посмотреть его. Для поддержки всех форматов, следует переключить модуль плеера с ExoPlayer на VlcPlayer.
В таком сценарии будут использованы все вышеописанные алгоритмы получения данных. Моё приложение поддерживает следующие протоколы: nmdc\http\ftp\samba, а так же облако Mega.nz.

Видео файлы 4k весом 100 Гбайт воспроизводятся с минимальными задержками и скачиваются в память на максимально возможной скорости. Можно предзагрузить больше данных, просто нажав паузу, но, как правило это не требуется. Воспроизведение всегда стабильное, если не стабильная скорость канала находится около необходимой скорости для воспроизведения.

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

В приложении предусмотрено сохранение кеша на внешний носитель, но из-за странного усложнения доступа к внешним носителям компании Google, в данный момент поддерживается в основном устройствами фирмы Samsung и версией Android 5.0+. В дальнейшем появится полная поддержка внешних usb носителей.

В целом, алгоритм существенно повышает качество и скорость загрузки данных при стриминге, как небольших файлов 30-50 Мбайт, так и больших 50-120 Гбайт.

В перспективе может использоваться:

  • для качественного воспроизведения 4k-8k медиа контента на мобильных телефонах, телевизорах и других устройствах;
  • в виртуальной реальности для отображения объёмных сцен в высоком разрешении;
  • в сочетании с торрент подобными, пиринговыми протоколами;
  • для качественного воспроизведения музыки в высоком разрешении на любых устройствах. Опытное тестирование показало, что для этого достаточно 2 Мбит не стабильного канала связи.
Поделиться публикацией

Похожие публикации

AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Подробнее
Реклама

Комментарии 82

    0
    У меня вопрос, получается 1 сервер это примерно 50 клиентов? Как вы решаете проблему большого потока пользователей, когда к стриму подключилось сразу 30 тыс. человек? используете cdn (как и какой? кешируете чанки .ts?)? или свое решение?
      0
      В идеале нужно передавать скаченные данные между пользователями, если сервер не справляется. Это тоже можно гибко решить, зная скорость загрузки с сервера (основного источника). Решается добавлением ещё одного потока.
      У меня не было такой проблемы. Так как контента очень много и имея кеш, в который файлы загружаются целиком на 10й секунде воспроизведения, загрузить полностью канал сервера практически невозможно.
        0
        не совсем понимаю, как собираетесь передавать данные между клиентами, если это hls поток, где каждый чанк весит примерно 2-3мб, смотрят стрим примерно 30k пользователей…
          –2
          нет, чанков тут нет. Это не HLS поток. Это ссылка на прямой файл.
          Между пользователями можно передавать данные необходимые потокам для скачивания. Ведь у всех будет какая-то часть данных уже скачена, следовательно те кто скачал больше могут передать данные тем кто скачал меньше.
          Вообще, то о чём вы говорите практически нереальный случай.
          Объясню почему:
          Сервер отдаёт со скоростью 200 Мбит\сек. Пользователей 30 тыс. человек.
          Что бы этим пользователям полностью задедосить сервер им нужно одновременно зарегаться в системе и начать смотреть одновременно 4k фильмы без остановки.
          Так не бывает. Одновременно пользователи не регистрируются и они не договариваются об одновременном просмотре.
          Получается если у каждого пользователя есть свой кеш, то файл он стримить может, только один раз и время в которое сервер будет загружен минимизируется за счёт прогрессивной загрузки данных.
          Выходит 30 тыс. пользователей регаются в разное время, смотрят разный контент в разное время, кешируют его и повторный просмотр этих же медиа файлов не требует у них наличия интернета.
          Причём, при возникновении заторов из-за размера канала сервера, сервер оптимизирует скорость раздачи — всё тоже самое, что и с обычным стримингом сейчас.
          Возможно, это увеличит нагрузку на канал сервера из-за загрузки видео целиком, а не загружая какую-то его часть, но если у вас проблемы с этим, то всегда можно использовать передачу данных из кеша других пользователей, у которых есть эти данные в кеше. Когда у меня будет свой YouTube, я с лёгостью сделаю это и вы сможете проверить. Ок.
            0
            И сделать надо большую и красивую кнопку: включить-выключить раздачу.
            Если включаешь, то сможешь получать контент с других пользователей, если выключаешь, то стримишь, только с сервера. По моему отличная идея.
            При этом контент будет только в оригинальном качестве, с оптимизацией для Web.
              –1
              Кроме этого всего, контента столько много, что нет никакой необходимости, никогда, смотреть видео в первые секунды выхода. Даже, в торрентах видео начинает качаться, через час, только после публикации. Если пару часов посмотреть другое видео, то ничего не изменится. Все останутся живы.
          +1
          Работал когда-то на сервисе показа фильмов. С видео трафиком 100Гбит/с
          Режут качество видео — чтобы клиенты не потратил месячную норму на один фильм. Поэтому редки фильмы с большим битрейтом. LTE это быстро, но тарифы некто не отменял.
          Многие клиенты — мобильные и планшеты. Кеширование на диск не удачно — у них всего гигов по 30 пямяти, а бывает и сильно меньше. Про телевизоры вообще молчу.
          Режут максимальную скорость до 2*битрейт — чтобы человек не тратил трафик зря. Часто смотрят 10 минут начала из 100 минут фильма, а потом смотрят другой фильм/серию.
          P2P раздача видеопотока работает хорошо на трансляциях, и первый день на новинках. В остальных случаях опирайтейсь только на свои сервера.
            0
            Многие клиенты — мобильные и планшеты. Кеширование на диск не удачно — у них всего гигов по 30 пямяти, а бывает и сильно меньше.

            16Гб — для YouTube видео достаточно будет. Например, можно совсем убрать прогресс бар на YouTube и понижение качества. 4k Blu-Ray особо не посмотришь, но есть флешки! Пара тысяч рублей и у вас 128Гб в любом девайсе. Это необходимая трата, для просмотра 4k.
            LTE это быстро, но тарифы некто не отменял.
            Безлимитные тарифы (например тут) никто не отменял. Роуминга нету по всей России.
              0
              Пара тысяч рублей и у вас 128Гб в любом девайсе.
              Половина пользователей с большой скоростью это iOS.
              Безлимитные тарифы
              LTE по спекам сделан для возможности комерческих безлимитов. Делается это за счет приоритизации траффика. т.е. чем больше вы качаете — тем меньше у вас приоритет. Это не особо приятно.
                0
                Половина пользователей с большой скоростью это iOS.

                А что на iOS отменили флешки или OTG?
                В любом случае конвертация свободного места в скорость передачи данных стоит того.
                Делается это за счет приоритизации траффика. т.е. чем больше вы качаете — тем меньше у вас приоритет.

                Не знал об этом. Значит в моё определение «не стабильный канал» входит и приоритизация трафика. Мне кажется вы просто не верите в магию алгоритмов. Попробуйте, проверьте. Я же не заставляю поверить. В статье полно данных, что бы проверить! Это не религия — это наука!
                  0
                  на iOS нет флэшек и OTG, а еще на многих планшетах Android SD карточки на SPI, скорость чтения/записи довольно ограничена. а если он еще и программно реализован…
                  в общем иногда 1Мб JPEG секунд 7 грузится с такой карточки
                    0
                    во первых: ru.aliexpress.com/w/wholesale-otg-cable-for-ipad.html
                    что-то их очень много и разных.
                    во вторых: политика компании Apple, подразумевает периодическое обновление устройств целиком. Не вижу проблем тут. Берёте деньги и покупаете нормальный iphone\ipad\imac. На сколько денег хватило, на столько и купил памяти. На сколько есть памяти, на столько и смотришь качество. Напоминаю, если не смотреть 4k фильмы длительностью 1,5 часа и более, то 16Гб должно хватить. Причём это резко ускорит загрузку контента и увеличит комфорт, даже на самых слабых девайсах!
                    У меня небольшие видео 4к, без тормозов на galaxy s3 (2012 года выпуска) показывает.
                0
                Пара тысяч рублей и у вас 128Гб в любом девайсе.

                А какое ПО может туда кешировать и одновременно показывать видео?
              0
              Так ведь на ютубе раньше так и было!
              Они от этого ушли, полагаю, потому что большинство не всмотрит видео до конца, а плеер в фоне его уже загрузил. Лишний трафик и нагрузка.
                0
                Так вот почему у меня тормозит YouTube!))) Не думаю, что на этом сервисе было когда-то что-то подобное. Раньше не было 4k видео и не было таких скоростей интернета. Не думаю, что YouTube хранил ролики в кеше браузера в массовом порядке, а грузил их в многопоточном режиме. Там всё гораздо проще.
                Да и экономия трафика сомнительная.
                Сейчас я прогружаю трафик 2-3 видео, которое смотрю, если поперематывать в разные части. Да я могу бесконечно трафик расходовать одним видео роликом, просто используя перемотку. Где тут экономия?
                Если я включил видео, то это означает, что я хочу его посмотреть. Желание сервиса меня ограничить в этом, идёт, как-то в разрез назначения сервиса. Что-то пошло не так)))
                  +1
                  Экономия трафика очень простая — плеер не кеширует дальше N секунд от текущего места просмотра, чтобы каждый пользователь не начинал грузить с сервера часовое видео, от которого 95% людей только первую минуту просмотрят и закроют. Если Вы перемотали, то, что уже загрузилось, остается, и начинает грузиться новое с того места, где нажали, так же не больше N секунд кеша от этого места.
                  Гугл даже несколько лет назад какую-то статистику приводил, когда люди начали удивляться почему все видео сразу не грузится, как до этого. Могу и соврать с точностью, но там была информация, что-то вроде: 50% видео, которые были открыты во вкладках и оставлены загружаться до конца, в итоге просто закрывают, не начав просмотр.
                    0
                    Могу и соврать с точностью, но там была информация, что-то вроде: 50% видео, которые были открыты во вкладках и оставлены загружаться до конца, в итоге просто закрывают, не начав просмотр.

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

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

                    Не припоминаю, что бы на YouTube я смотрел часовые видео. В среднем это 10 минут, которые весят 200 Мбайт., которые, где бы я не был, загрузятся за 3 секунды, но грузятся все 10 минут, потому что такой алгоритм у YouTube. Все 10 минут они засоряют сеть и мешают другим пользователям.
                    Жалеть трафик для пользователей — это жадность, а не оптимизация. 1 минуту смотрю часовое видео, значит оно должно грузиться ко мне одну минуту, даже, если я закрою его. Зато оно будет всего грузится минут 5, а не час, как сейчас на YouTube. И освободит канал полностью, даже при перемотке! Одномоментное получение файла значительно уменьшит служебный трафик и увеличит скорость его получения, вместо того, что бы показать пользователю гигантские пиксели или прогресс загрузки.
                      +1
                      Жалеть трафик для пользователей — это жадность, а не оптимизация. 1 минуту смотрю часовое видео, значит оно должно грузиться ко мне одну минуту, даже, если я закрою его. Зато оно будет всего грузится минут 5, а не час, как сейчас на YouTube. И освободит канал полностью, даже при перемотке!

                      Может я чего не понимаю, но если Вы написали свой софт и изучали вопрос, то должны понимать какие плюсы в том, что делает тот же YouTube.
                      Вы смотрите одну минуту от часового видео, а грузите все видео. А теперь представьте что Вас таких вся планета и тут внезапно оказывается что каналов то на всех уже не хватит, потому что трафика за то же время придется передавать в 60 раз больше, 59/60 из которого еще и лишний мусор, который будет выкинут из кеша после закрытия видео. А теперь представьте что Вы оплачиваете каналы и железо, по которым такие пользователи качают у Вас видео. Какой резон платить в 60 раз больше за канал и в 60 раз больше железа?
                        –1
                        думаю это дубль комментария. Смотрите ответ тут
                        Если 30 тысяч человек хотят посмотреть одно видео в один момент, то нет никакой существенной разницы каким алгоритмом они это будут делать. Скорость раздачи сервера в любом случае будет делиться на всех. А если они будут смотреть в разное время, то прогрессивный алгоритм предпочтителен из-за гораздо более низкой нагрузки на сервер, за счёт кеширования, экономии трафика на служебных данных, увеличению скорости передачи данных.
                        Прогрессивная загрузка не только загружает канал, но и освобождает его полностью, что тоже значительно снижает нагрузку на канал.
                        А теперь представьте что Вы оплачиваете каналы, по которым такие пользователи качают у Вас видео.

                        Не думаю, что Google бедная компания. Там полно денег, что бы не экономить никогда на каналах связи. Если вы об этом.

                        потому что трафика за то же время придется передавать в 60 раз больше

                        Вот вы правильно говорите: «за то же время». Статья именно про то, как полноценно использовать сеть и компьютер, а не про то, как сэкономить на комфорте несчастных пользователей.
                        59/60 из которого еще и лишний мусор, который будет выкинут из кеша после закрытия видео.

                        Выкидывать из кеша я не предлагал, как раз наоборот, оставить. Должен быть кеш, примерно 10-16 Гбайт. Вообще, это широко настраиваемый параметр.
                        И это не мусор! Это данные, которыми захотел воспользоваться пользователь!
                          0
                          Прогрессивная загрузка не только загружает канал, но и освобождает его полностью, что тоже значительно снижает нагрузку на канал.

                          Она значительно увеличивает нагрузку на канал, потому что пользователю передается больше данных, чем ему нужно.
                          Давайте на пальцах:
                          пускай N пользователей в сутки, в среднем смотрят только половину видео(кто-то все, кто-то половину, кто-то пролистал, кто-то только начало), итого 0.5N+0.05N(служебные данные + несколько секунд кеша) общий объем переданного трафика.
                          N Ваших пользователей в сутки, так же в среднем смотрят только половину видео, вот только грузят все полностью, N общий объем трафика. Я думаю очевидно что канал только нагружается.

                          Не думаю, что Google бедная компания. Там полно денег, что бы не экономить никогда на каналах связи. Если вы об этом.

                          Думаю именно по-этому у них и полно денег, что они не разбрасываются ими просто так.
                            0
                            т.е. по прогрессивному алгоритму передаётся гораздо больше полезных данных, чем без него за тоже время. Именно об этом и статья. Да. Это очень круто и крайне необходимо всем!
                            Ещё подумайте о тех людях у которых интернет будет работать, только первые минуты видео, а потом отключится из-за помех. С прогрессивным алгоритмом посмотрят видео, а без него нет.
                            А, как насчёт прелестей быстрой перемотки? Все уже наверное забыли об этом, как это бывает быстро. А как насчёт воспроизведение видео из интернета вообще без интернета? Из кеша. Там совсем другой мир… мир где очень много мультимедиа данных, а не бюджетный стриминг YouTube в 320p. По моему стыдно смотреть что-то ниже 1080p, при минимальных тарифах на интернет в Москве 250 Мбит\с… А приходится, ведь YouTube решил сэкономить на мне)))! И все остальные за ним.
                            Думаю именно по-этому у них и полно денег, что они не разбрасываются ими просто так.

                            А где вы видели, что оплата идёт за объём трафика? Видео провайдеры платят за скорость каналов, а не объём. Да и какая вообще разница, разговор-то не про стоимость для хостинга, а про комфорт пользователей!
                            Не думаю, что всё так как вы пишите. Если видеохостинг будет платить за объём трафика, то ему не выгодно будет использовать 4k, а что это за хостинг тогда. Пренебрегать комфортом пользователей тоже не стоит.
                              0
                              С прогрессивным алгоритмом посмотрят видео

                              … на пару минут дольше, чем другие, но все равно не до конца.


                              А как насчёт воспроизведение видео из интернета вообще без интернета?

                              Ну я вот смотрю MasterClass, Coursera, Netflix и Prime Video в самолете. Без интернета.


                              А где вы видели, что оплата идёт за объём трафика?

                              AWS, например: Data Transfer OUT From Amazon EC2 To Internet.


                              Видео провайдеры платят за скорость каналов, а не объём.

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

                                +1
                                т.е. по прогрессивному алгоритму передаётся гораздо больше полезных данных, чем без него за тоже время. Именно об этом и статья. Да. Это очень круто и крайне необходимо всем!

                                Вы уж извините за личное мнение, но похоже на какой-то фанатизм уже, а не диалог.

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

                                Нажмут кнопку «загрузить в кеш» в том же YouTube, если знают что скоро интернет отключится и видео целиком загрузится на телефон/планшет.

                                А где вы видели, что оплата идёт за объём трафика? Видео провайдеры платят за скорость каналов, а не объём. Да и какая вообще разница, разговор-то не про стоимость для хостинга, а про комфорт пользователей!
                                Не думаю, что всё так как вы пишите. Если видеохостинг будет платить за объём трафика, то ему не выгодно будет использовать 4k, а что это за хостинг тогда. Пренебрегать комфортом пользователей тоже не стоит.

                                Скорость канала, 0.55N в сутки и N в сутки соответственно. Можно разделить на 86400, получится скорость в секунду.
                                  0
                                  Нажмут кнопку «загрузить в кеш» в том же YouTube, если знают что скоро интернет отключится и видео целиком загрузится на телефон/планшет.

                                  Если бы все всегда знали где поджидает проблема, то жизнь сложилась бы по другому. Никогда не знаешь, когда скачать в кеш надо, это невозможно.
                                    0
                                    Нажмут кнопку «загрузить в кеш» в том же YouTube, если знают что скоро интернет отключится и видео целиком загрузится на телефон/планшет.

                                    Это где там такая кнопка есть?!

                    0
                    Сегодня никого не удивить скоростью интернета 100 Мбит\с.

                    Сегодня да. А вот к чему привел переход скорости передачи данных с 4 K до 128 К расскажу. Это было в далеких 1977-1978 годах:
                    image
                    Мы вели наблюдение за космическими объектами, в основном спутниками. И для наведения станций слежения в качестве исходных данных при расчете использовали данные перехваченные с одного из спутников Интелсат. И вот в один из дней мы не смогли получить данные со спутников. Надвигалась катастрофа, мы теряли все спутники и не могли понять в чем дело. На следующей день выяснилось, что информвция со спутников Интелсат стала передаваться на скорости 128K, но приемной аппаратуры у нас не было. И только через неделю нам лоставили соответствующую аппаратуру и жизнь стала налаживаться.

                      0
                      Как пример работы технологии, я написал мультимедийное приложение Media Library.

                      Решил, значит, попробовать. Ставлю. При запуске получаю запрос разрешений на:


                      • фотографирование и запись видео
                      • запись аудио
                      • доступ к моим данным в хранилище

                      По моему глубокому убеждению, приложению, которое себя позиционирует как "ergonomic player for home cloud" это все не нужно. Следовательно, оно этих разрешений не получит. А работать без них оно отказывается — вот и закончился тест.


                      Битрейт 4k видео большой, но не заоблачный. Самый эффективный кодек VP9 на сегодня сжимает 4k видео в 25 Мбит\сек. с аудио выходит около 30. Blu-Ray фильм в 100 Гбайт имеет битрейт около 60 Мбит\сек… Эти скорости интернета есть у любого в мире, желающего посмотреть 4k видео.

                      Ну давайте проверим. МТС, Москва. Упс, меньше трех мегабит. Ладно, подойдем к окну. Десять мегабит. Хм...

                        –1
                        :) приветствую! Лично прошу дать разрешения приложению. Оно моё и не несёт никакого вреда. Только пользу! Честное слово.
                        На самом деле грозный Гугл не просто проверяет моё приложение, но ещё и тестирует, в момент публикации. Ещё оно весит крайне мало 1,3Мб… Таким образом шансов, даже на одну вредную строчку кода нет.
                        Продолжайте тестирование, но помните о том, что для тестирования 4k Blu-Ray кино надо иметь минимум около 23Gb свободного места на внутренней памяти, или внешней, если у вас заработает внешняя память. Тут 2 фильма для тестов. Открывать через приложение с алгоритмами. По описанному в статье сценарию.

                        МТС — если не устраивает скорость, то звоните. По звонку и жалобам увеличивают, но это не точно. Что я могу поделать. Если нет связи, то предзакачать можно. В случае с 4k Blu-Ray будет долго, конечно. Но Full HD должно играть без фризов зато! МТС у меня в Москве. Blu-Ray 4k не потянет, а вот VP9 4k тянет! Возможно 1-2 фриза за 4х минутный клип, но в целом очень хорошо. Full HD и Flac без тормозов. Enjoy!
                          +1
                          Лично прошу дать разрешения приложению.

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


                          Тут 2 фильма для тестов. Открывать через приложение с алгоритмами.

                          Знаете, я просто пошел и открыл их в MPC-HC (LAV Splitter 0.68.1.33), с домашнего компьютера. Проигрались оба, без особых проблем. Тогда я пошел, и открыл их в OPlayer HD с iPad Mini этого года. Первый точно так же играется без проблем, ремукс уже нет.


                          По этим пунктам понятно, что стримить, как раньше уже нельзя.

                          Тест выше показывает — можно. MPC-HD и LAV у меня сборки 2016 года, с тех пор мне их лень обновлять.


                          МТС — если не устраивает скорость, то звоните. По звонку и жалобам увеличивают, но это не точно. Что я могу поделать.

                          … может быть, не делать заявлений, которые вы не можете подтвердить?


                          МТС у меня в Москве. Blu-Ray 4k не потянет, а вот VP9 4k тянет! Возможно 1-2 фриза за 4х минутный клип, но в целом очень хорошо.

                          … а в заголовке написано "как смотреть 4k видео по сети, без фризов" — а у вас на четыре минуты два фриза.

                            0
                            Знаете, я просто пошел и открыл их в MPC-HC

                            Так пошёл открыл и «посмотрел 2-3 часа» это совсем разные вещи. Это ещё ночью пока все спят и каналы свободные. А днём канал будет не стабилен и уже не посмотришь без фризов. 2 часа на скорости 60Мбит\с. без перебоев, канал не выдержит. Это будет не смотрибельно. А алгоритм предзагружает весь файл, и канал быстрее освобождается.

                            Нет, потому что они не нужны для заявленной им деятельности.

                            Там же русским текстом дано объяснение зачем нужны разрешения. Для других функций.
                            фотографирование и запись видео — для визуализации вспышкой камеры
                            запись аудио — для красивой визуализации на экране.
                            доступ к моим данным в хранилище — это именно для сохранения данных в кеш. О чём и написана эта статья.
                              0
                              Это ещё ночью пока все спят и каналы свободные.

                              У меня на этом канале торренты висят, вообще-то.


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

                              Откуда вы знаете, что LAV этого не делает?

                                0
                                Откуда вы знаете, что LAV этого не делает?

                                А я очень легко протестил только что. Поставил на паузу и посмотрел, что через сеть в диспетчере ничего не качается. Значит фризам быть.
                                  0

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


                                  Но суть-то не в этом, а в том, что… просто работает.

                                    –1
                                    Спасибо Lair, за ваше внимание к моим проектам. Но мы с вами помним, по предыдущим моим статьям, что до добра это не доводит. Ваш лимит на количество сообщений к этой статье подошёл к концу. Вы можете задать последний, главный, интересующий вас вопрос и мы закончим беседу.
                                0
                                фотографирование и запись видео — для визуализации вспышкой камеры
                                запись аудио — для красивой визуализации на экране.

                                Мне не нужно ни то, ни другое.


                                доступ к моим данным в хранилище — это именно для сохранения данных в кеш.

                                Вообще-то, приложения на андроиде прекрасно могут писать в свой кэш без запроса доступа к данным пользователя:


                                your app does not require any system permissions to read and write to the internal directories returned by these methods
                          0

                          А из этого можно сделать воспроизведение с, IP h265/264 камеры с задержкой <200мс?

                            0
                            Возможно. Надо тестировать. Моё приложение не рассчитано для камер. Не знаю даже, что будет. Наверное ничего, потому что там очень много завязано на размер файла. Стриминг не имеет размера… так что не пойдёт. Но вот 100 Гигов, если надо посмотреть по сети, так это запросто! :)
                            0

                            Вы в качестве сервера использовали виндовс?
                            Мне почему-то кажется что вы решали проблемы устаревшей реализации тср. Пробовали принимать с линукс сервера с подкрученым алгоритмом cognestion control ?

                              –1
                              почитал про cognestion control алгоритм. Так ничего и не понял, даже по этой ссылке. Что конкретно они оценивают, по каким формулам. Доступным языком.

                              У меня не было проблем с плавающей скоростью. Были проблемы со скоростью передачи файла, не соответствующей размеру канала. Т.е. канал 500 Мбит.\с., а скорость максимум 100 Мбит.\с… Такая проблема до сих пор имеется с Samba протоколом. Передача данных идёт через сокеты. И там есть интересный параметр ReceiveBufferSize в сокете у клиента. Он динамически меняется при получении данных. Как я понял это значение зависит от сервера и это значение совпадает с тактом, который обязательно нужно принять без перерывов. Именно это количество байт я храню в оперативной памяти, а затем записываю на диск. Об этом и статья :)
                              И с тех пор, как я использую прогрессивный стриминг у меня нет проблем со скоростью. Абсолютно никаких. Ни по wi-fi 700Мбит.\с., ни по 4G.
                                +1
                                ммм, ок, а это не то же ли самое что открыть в vlc
                                c кешированием на полминуты «file-caching=30000»?
                                (полминуты это на глаз конечно)
                                  0
                                  да нее. Сейчас проверил. Там можно максимум выставить 9999 и это миллисекунд! Вот это самое миллисекунд и говорит о том, какие алгоритмы используются. Мне самому интересно найти, ну хоть что-то похожее. И как специально! Ничего!
                                  Ну что поделать… поэтому я и пишу статьи. Компенсирую нехватку направлений)). Вы главное используйте. Можно ко мне обратиться за помощью. В телеграм канале, например.
                                  Спасибо за интересные комментарии.
                                  С cognestion control алгоритмами я, конечно, разобрался. Просто не стал писать об этом, что бы было понятно, что там порядок наводить надо со статьями. Надеюсь, вы меня правильно поняли.
                              +1

                              Я видимо отстал от жизни, но что за панацея смотреть 4K видео на 7 дюймовом экране? Ну а 8К? Реально ли заметна разница?

                                –1
                                Конечно, вы всё не правильно поняли. Во-первых, смысл смотреть 4k-8k на телефонах не в том, что бы смотреть это в телефоне, а в том, чтобы передавать изображение по hdmi на большой 4k экран и смотреть.
                                Во-вторых, тут никто не говорит, что можно смотреть, только на телефоне. У меня приложение работает на телевизоре Sony. Он большой и 4k смотреть очень увлекательно.
                                В третьих, существует не гласная проблема в каком формате хранить контент. Например компания YouTube хранит каждое видео в 5 разных разрешениях, что существенно увеличивает объём. Некоторые хранят видео чанками — кусками. Вместо одного файла у них тысяча. Это тоже очень усложняет хранение и использование данных.
                                Далее есть проблема в том, что многие песни существуют только в видео формате. Их никогда не выпускали в аудио. Причём над видео работала команда профессионалов и если вырезать из него звук, то мы потеряем много интересного. Средний битрейт Full HD видео, лишь немного выше битрейта Flac для которого достаточно 5 Мбит.\с…
                                Теперь, с приходом новых технологий и алгоритма прогрессивного стриминга эти все проблемы решаются, и можно от всего этого отказаться. Хранить видео или аудио в оригинальном качестве и легко смотреть на любом устройстве.
                                Ну а про стриминг 4k-8k можно забыть, если не использовать прогрессивный стриминг. Будем вечно смотреть ролики на YouTube :))
                                  0
                                  Например компания YouTube хранит каждое видео в 5 разных разрешениях, что существенно увеличивает объём. [...] Теперь, с приходом новых технологий и алгоритма прогрессивного стриминга эти все проблемы решаются, и можно от всего этого отказаться. Хранить видео или аудио в оригинальном качестве и легко смотреть на любом устройстве.

                                  Правда можно? А что делать людям, которые хотят посмотреть видео по слабому мобильному каналу, и их низкое качество вполне устроит? Или вот YouTube может не хотеть расходовать свой исходящий трафик ради стриминга 4K-контента на устройство, которое не собирается его показывать, что в этом случае делать?


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

                                    –2
                                    Lair, напоминаю, это ваш последний вопрос. Больше я вам не отвечу по этой статье. Слишком у вас хейтерские и не профессиональные вопросы, не относящиеся к теме.

                                    А что делать людям, которые хотят посмотреть видео по слабому мобильному каналу, и их низкое качество вполне устроит?

                                    Где вы нашли слабые мобильные каналы??? Только что посмотрел тарифы мтс и там нигде не пишут об ограничениях скорости. В любой деревне России есть сейчас 5-10 Мбит 2G-3G интернет. А 10 Мбит\с. — это уже Full HD без тормозов!!! Вы просто привыкли, что если скорость 10 Мбит.\с., то 480p и 720p показывает, а на самом деле должно 1080p показывать, но не показывает, потому что сайт с видео сэкономил на программистах и не использует правильно алгоритмы передачи данных. О чём и статья!
                                    Кроме этого в мультипоточном режиме, даже слабый канал используется на максимуме своих возможностей, тогда, как обычный стриминг заоптимизирован так, что работает против загрузки данных и не грузит данные, когда они так нужны. И постоянно грузит данные при перемотке, что бесконечно увеличивает трафик с одного видео. Возможно поэтому сотовые операторы иногда исключают из тарификации YouTube, ведь один видеоролик может расходовать бесконечно трафик! По моему это абсурд))
                                    Прогрессивным алгоритмом 1080p видео 11 минут 200 Мбайт грузится секунды за 3 на моём домашнем wi-fi. А алгоритмом YouTube оно грузится все 11 минут, пока я его смотрю. + при перемотке грузится второй и третий раз. За что платят пользователи лимитного трафика??? Так это ещё значительно увеличивает нагрузку на сети.
                                    Технология тестировалась на galaxy s3 2012 г.в… Так что сегодня все устройства будут работать быстрее с этим алгоритмом.
                                    Или вот YouTube может не хотеть расходовать свой исходящий трафик ради стриминга 4K-контента на устройство, которое не собирается его показывать, что в этом случае делать?

                                    Если YouTube не хочет расходовать свой исходящий трафик на устройство, которое не собирается его показывать, то пусть не расходует! Можно же остановить закачку (потоки), если вкладка не активна или приложение свёрнуто. А вот если это невозможно определить, то он обязательно должен думать, что видео воспроизводится и использовать прогрессивный стриминг.
                                    Сейчас он действует в каких-то своих интересах, а не в интересах пользователей.
                                    Но у поставщика услуг — очень крупного поставщика услуг

                                    У него просто много денег. И не надо мне рассказывать, как там всё устроено.
                                      0
                                      Где вы нашли слабые мобильные каналы?

                                      А вот прямо там, откуда вам комментарий пишу.


                                      3.58Mbps


                                      В любой деревне России есть сейчас 5-10 Мбит 2G-3G интернет.

                                      Ну вот "в любой деревне" может и есть, а в Москве, как можно видеть выше, нет.


                                      Не, если я прогуляюсь минут 5, там будет 15 Мбит, да. Но я-то тут, а не там. А еще есть другие страны (из тех, где я был — Норвегия, Испания, США и Япония), где иногда даже 3 Мбит — это подарок, а еще бывает, сюрприз, ограниченный трафик.


                                      Я же говорю: вы смотрите на свой опыт, и говорите, что "у всех будет работать"; а то, что "у всех" опыт другой — вы игнорируете.


                                      Вы просто привыкли, что если скорость 10 Мбит.\с., то 480p и 720p показывает, а на самом деле должно 1080p показывать

                                      Да пусть даже 1080p, хорошо. Но ведь не 4K же. А сайт с видео, по вашему наущению, хранит и показывает только 4K. И что делать пользователю с 10 Мбит?


                                      Если YouTube не хочет расходовать свой исходящий трафик на устройство, которое не собирается его показывать, то пусть не расходует!

                                      И как же ему это делать, если вы предлагаете всегда хранить и отдавать видео в максимальном качестве? У него пользователь с маленьким экранчиком, ему нафиг не сдалось 4K и даже 1080p, он мог бы сэкономить кучу ресурсов, отдавая видео маленького размера.


                                      У него просто много денег.

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


                                      И не надо мне рассказывать, как там всё устроено.

                                      Ну конечно "не надо", это же в вашу картину мира не вписывается.

                                        –1
                                        Читайте статью. Там есть таблица средних скоростей интернета в мире. На них надо рассчитывать. А если захотелось посмотреть 4k через канал в 3 Мбит\с., то надо второе видео сделать с пониженным качеством 1080p. (3-5 Мбит.\с.) и проблемы исчезнут. Со временем, с повышением минимальной скорости интернета нужно отказаться от «вторых» видео, как от атавизма.
                                          0
                                          Там есть таблица средних скоростей интернета в мире. На них надо рассчитывать.

                                          Кому? Тому, кто хочет доставлять свой контент всем пользователям, а не только тем, у которых скорость "средняя и выше"?


                                          А если захотелось посмотреть 4k через канал в 3 Мбит\с., то надо второе видео сделать с пониженным качеством 1080p. (3-5 Мбит.\с.) и проблемы исчезнут.

                                          Дадада, всего двумя комментами выше:


                                          Например компания YouTube хранит каждое видео в 5 разных разрешениях, что существенно увеличивает объём. [...] Теперь, с приходом новых технологий и алгоритма прогрессивного стриминга эти все проблемы решаются, и можно от всего этого отказаться. Хранить видео или аудио в оригинальном качестве и легко смотреть на любом устройстве.

                                          А теперь выяснили, что все-таки нет, нельзя отказаться.

                                            –1
                                            Да, действительно. Я забыл про эту тонкость. Но второе видео — это чистый атавизм.
                                            Заметьте не 340p и не 480p и, даже, не 720p, а именно 1080p. Одно дополнительное видео, а не 5.
                                            Когда 4k контент будет использоваться повсеместно, то минимальные скорости уже подрастут и можно будет отказаться от запасного Full HD видео.
                                            Надеюсь ответил на ваш последний вопрос. Спасибо.
                                              0
                                              Хотеть смотреть видео на канале 3 Мбит\с. не справедливо.

                                              Ничего несправедливого. Я могу это делать сейчас, я хочу продолжать это делать в будущем.


                                              Заметьте не 340p и не 480p и, даже, не 720p, а именно 1080p. Одно дополнительное видео, а не 5.

                                              Это если гарантировать, что 1080p проигрывается везде, что, очевидно, не так. Чем больше пользователей мы хотим охватить, тем больше вариантов видео нам надо уметь отдавать.


                                              Когда 4k контент будет использоваться повсеместно, то минимальные скорости уже подрастут и можно будет отказаться от запасного Full HD видео.

                                              Когда "минимальные скорости подрастут", никакой "прогрессивный стриминг" не будет нужен — собственно, как я писал в своем первом комментарии, у меня и сейчас без него прекрасно работает. 26 Gb MKV на FireTV Stick 4K по самбе поверх 100Мбит? пожалуйста, вот оно.

                                                0
                                                Это если гарантировать, что 1080p проигрывается везде, что, очевидно, не так.

                                                А где не проигрывается?
                                                  0
                                                  А где не проигрывается?

                                                  Там, где скорость сети ниже определенной, очевидно. Возьмем какой-нибудь 1080p. 8716 Mb, 5620 с. Приблизительно 1.55 MB/с, или 12.4 Mbps без учета накладных расходов (MPC-HC говорит "Overall bit rate: 13.0 Mb/s", спишем на погрешность).


                                                  Очевидно, что на 3 мегабитах оно играть не будет никогда (ну точнее, нам надо будет подождать в четыре-пять раз дольше, чем идет сам фильм, что противоречит самой идее "смотреть видео по сети"). Более того, оно и на 10 мегабитах играть не будет, если вы не сделаете ощутимую предзакачку (привет, кстати, вашему "10 Мбит\с. — это уже Full HD без тормозов").


                                                  А у меня там рядом еще можно найти файл с 28 Mbps (и это 1080p, и это не ремукс), который, если я ничего не путаю, даже в теоретические пределы 3G уже не влезает.

                                                    –1
                                                    Возьмем какой-нибудь 1080p. 8716 Mb, 5620 с. Приблизительно 1.55 MB/с, или 12.4 Mbps без учета накладных расходов

                                                    Вы не путайте VP9 который использует YouTube и ваши видео. Посмотрите сколько весят Full HD 1080p видео на YouTube. Там битрейт 3 Мбита\с. Кодеки AVC и VP9 творят чудеса. Слышал, есть уже лучше кодеки. Так что чудес будет ещё больше.
                                                    Всё видео, которое вы загружаете на YouTube перекодируется именно в эти чудесные форматы.
                                                    4k VP9 сжимает до 15 Мбит\сек. + аудио 128 Кбит.\сек… Чудеса, не правда ли?)))
                                                    Ну что поделать, это прогресс. Просвещайтесь!

                                                    п.с.: вполне ожидаемо 8k это будет 65-70 Мбит\сек… Могу ошибаться. Но это всё равно вписывается в мою любимую фразу «100 Мбит хватит всем».
                                                      0
                                                      Всё видео, которое вы загружаете на YouTube перекодируется именно в эти чудесные форматы.

                                                      Вот поэтому я никогда не смотрю видео с YouTube, если у меня есть выбор.


                                                      Чудеса, не правда ли?

                                                      Да нет, никаких чудес, обычное сжатие с потерей информации. Вопрос в том, нужно ли пользователю такое 4K, или, на самом деле, он не отличит его (в слепом тесте, конечно же) от 1080p с тем же (или даже более низким) битрейтом.

                                                        0
                                                        Речь про второе, дублирующее видео(прогрессивного стриминга), для тех у кого низкая скорость интернета, а не про YouTube.
                                                          0
                                                          Речь про второе видео, для тех у кого низкая скорость интернета, а не про YouTube.

                                                          Ну так не приводите YouTube в пример тогда (btw, видео с YouTube, что 1080p, что 4K у меня в домашней сети проигрываются без проблем, что тоже кое о чем говорит).


                                                          Понимаете ли, в том-то и дело, что если вы ужмете 1080p так, чтобы оно влезало в 3 Mbps, пользователь не отличит его от 720p (а то и 480p), и какой тогда смысл говорить "1080p"? При этом пользователь, у которого 10Mbps вполне мог бы смотреть видео качеством лучше, но опять не может (и с возмущением уходит с сервиса). Именно поэтому стриминговые сервисы отдают не одно, и не два "качества" (другое дело, что совершенно не факт, что они хранят все эти качества, а не делают транскод на ходу, но это сейчас не имеет особого значения).

                                                            –1
                                                            ууу. Не думал, что у вас такие пробелы в знаниях.
                                                            Просвещу: Хранят в качествах. Т.е. всё что ниже Full HD на YouTube ориентировано на каналы меньшие, чем 3 Мбит.\сек. Выходит нужно два видео: основное оригинальное и второе Full HD 3 Мбит\сек.
                                                            Вот вам скриптик, что бы получить ссылки на все видео YouTube. Выполнять в консоли js в браузере, после прогрузки страницы с видео. Переключитесь в режим разработчика.
                                                            const videoUrls = ytplayer.config.args.adaptive_fmts
                                                              .split(',')
                                                              .map(item => item
                                                                .split('&')
                                                                .reduce((prev, curr) => (curr = curr.split('='),
                                                                  Object.assign(prev, {[curr[0]]: decodeURIComponent(curr[1])})
                                                                ), {})
                                                              )
                                                              .reduce((prev, curr) => Object.assign(prev, {
                                                                [curr.quality_label || curr.type]: curr
                                                              }), {});
                                                            console.log(videoUrls);

                                                              0
                                                              всё что ниже Full HD на YouTube ориентировано на каналы меньшие, чем 3 Мбит.\сек.

                                                              И что с того? Оно все равно ориентировано на разные каналы, а вы предлагаете для всех делать одинаковое.


                                                              Выходит нужно два видео: основное оригинальное и второе Full HD 3 Мбит\сек.

                                                              Неа, не выходит. Что, если у меня канал 10 Мбит, и я хочу видео в том качестве, которое позволяет этот канал?


                                                              Тот же Netflix делает битрейты от 100Kbps до 16Mbps.

                                                                –1
                                                                перечитайте статью и поставьте лайки. Вижу интересные вопросы у вас закончились. Вам, как человеку со скоростью 3 Мбит\сек. необходим этот алгоритм. Так вы будете получать хоть какой-то контент. Спасибо за внимание.
                                                                  0
                                                                  Вам, как человеку со скоростью 3 Мбит\сек. необходим этот алгоритм.

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

                                        0
                                        Где вы нашли слабые мобильные каналы???

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

                                        Любой другой «домашний» интернет по большей части быстрый, если не брать самый дешевый тариф, то как правило второй по цене тариф уже переплевывает планку в 100мб/с. Так что, скорости достаточно для спокойного просмотра 4К, в основном вы пытаетесь решить проблему дешового hardware, когда ваш роутер не может стабильно удерживать несколько девайсов (wifi) на нормальной скорости, обычно решается покупкой нормального роутера, что для обладателя 4К телека не такая уж и большая трата.
                                          0
                                          Вот это поворот!
                                          Совсем недавно мне жаловались на малые скорости интернета, а теперь 100 Мбит.\с…
                                          И это тоже интересный момент! Тут есть ньюансы.
                                          Ну например, дубль трафика. Плееры так устроены, что сначала они читают файл и узнают кодеки и форматы, а затем начинают читать теже самые данные при воспроизведении. Кеширование с первого байта устраняет эту проблему и значительно ускоряет старт воспроизведения.
                                          Перемотка с кешем, только ускоряет скачивание всего файла и повторная перемотка происходит максимально быстро за счёт того, что данные не грузятся второй раз, а берутся с диска.
                                          Если скорость канала превышает скорость битрейта видео, то загрузка видео происходит с опережением. 10 минут фильма и весь файл загружен и вашему просмотру уже точно ничего не помешает.
                                          У меня дома 200 Мбит интернет и Full HD заикается периодически, регулярно. И YouTube грузит и заикается, хотя техника работает стабильно. Большой телевизор, хороший фильм и бац на самом интересном фриз. Сразу все начинают возмущаться. И правильно. Интернет прерывается в течение дня. Разные сервисы прерывают свою работу по разным причинам. Прогрессивный стриминг полностью устраняет эту проблему.
                                          Телевизор Sony напрямую обращается к жёсткому диску по сети Wi-Fi 460 Мбит\с… И так уж устроена техника, но телевизор не может без постоянных фризов воспроизвести 4k 100 Гбайт Blu-Ray фильм с этого диска. Странно, но факт. Прогрессивный стриминг просто грузит данные. Как мощный локомотив, не зная про фризы.
                                          В общем, если у вас дешёвые девайсы 10ти летней давности, то вам нужен прогрессивный стриминг.
                                          А вот если у вас современные девайсы с мега скоростями и кучей памяти, то прогрессивный стриминг вам просто необходим!
                                          Современные телефоны, как раз имеют минимум 128 Гб. памяти, что позволяет кешировать и воспроизводить Blu-Ray 4k фильмы по 100Гб…
                                            0
                                            Совсем недавно мне жаловались на малые скорости интернета, а теперь 100 Мбит.\с

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


                                            Телевизор Sony напрямую обращается к жёсткому диску по сети Wi-Fi 460 Мбит\с… И так уж устроена техника, но телевизор не может без постоянных фризов воспроизвести 4k 100 Гбайт Blu-Ray фильм с этого диска.

                                            Сочувствую вам. У меня банальный FireTV Stick 4K, воткнутый в 100-мегабитный провод, прекрасно все показывает. Нет, врать не буду, 4K Bluray на 100Gb нету. Есть на 36.


                                            А вот если у вас современные девайсы с мега скоростями и кучей памяти, то прогрессивный стриминг вам просто необходим!

                                            Не, у меня и без него все прекрасно работает.


                                            Современные телефоны, как раз имеют минимум 128 Гб. памяти, что позволяет кешировать и воспроизводить Blu-Ray 4k фильмы по 100Гб…

                                            Я одного не понимаю: на телефоне-то зачем это делать, если мне все равно не на телефоне его смотреть?

                                              –1
                                              Есть интересный ньюанс.
                                              Так как этот алгоритм быстрее и мощнее всех остальных, то он вытеснит все остальные. Просто потому что он мощный и остальные Hlsы будут захлёбываться от нехватки скорости из-за того что прогрессивный стриминг будет забирать у них этот трафик. Так что если не имеешь прогрессивный стриминг, то в будущем жди проблем. Это называется естественный отбор!
                                                0
                                                этот алгоритм быстрее и мощнее всех остальных

                                                Не доказано. Следовательно, все последующее построено на ложной предпосылке.


                                                (кстати, а как же будут жить три устройства с прогрессивным стримингом в одной сети?)

                                                  –1
                                                  Не доказано.

                                                  Доказано в статье.
                                                  (кстати, а как же будут жить три устройства с прогрессивным стримингом в одной сети?)

                                                  Нормально будут жить. Они будут на одном уровне между собой, а вот обычный стриминг — уже на уровне ниже, а значит будут фризы и полные остановки воспроизведения.
                                                    0
                                                    Доказано в статье.

                                                    Неа. Там это только утверждается, но никаких доказательств (равно как и методики оценки) там нет.


                                                    Они будут на одном уровне между собой, а вот обычный стриминг — уже на уровне ниже

                                                    Вообще-то, для сетевого оборудования они все на одном уровне (Application Layer в tcp/ip-стеке), поэтому я не понимаю, каким образом прогрессивный стриминг может задавить "обычный", но не может — соседний прогрессивный.


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

                                                      0
                                                      поэтому я не понимаю, каким образом прогрессивный стриминг может задавить «обычный»,

                                                      Так же как давят торренты Ютуб. Речь не про мою домашнюю сеть, а про весь интернет. С моим золотым алгоритмом прогрессивного стриминга минимальная необходимая скорость для комфортного просмотра видео ниже и стабильность канала не особо важна. В общем это поставит в неконкурентоспособное положение любой другой стриминг.
                                                      Гордитесь! Этот «Золотой» алгоритм изобрели в России.
                                                      Наши программисты самые лучшие в мире.
                                                        0
                                                        Так же как давят торренты Ютуб.

                                                        Ну то есть — никак, судя по тому, как я могу спокойно смотреть YouTube, несмотря на качающиеся торренты или игры.


                                                        Речь не про мою домашнюю сеть, а про весь интернет.

                                                        … в котором тем более есть алгоритмы уравнивания потребителей.


                                                        В общем это поставит в неконкурентоспособное положение любой другой стриминг.

                                                        Мне кажется, вы так и не поняли. Я вот пользуюсь двумя стриминговыми сервисами (Netflix и Amazon Prime Video), ну и YouTube смотрю иногда. И я не могу вспомнить ни одного случая за последний год, когда у меня были бы с ними проблемы технического толка, не вызванные падением домашней сети. Кривая подписка? Да. Региональные ограничения? Да. Нет нужного контента? Да. Кривой UI/UX? Да. Проблемы со стримингом? Нет.


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


                                                        Гордитесь! Этот «Золотой» алгоритм изобрели в России.

                                                        Патент или свидетельство, признаваемые на международном уровне, есть?

                                                          –1
                                                          Патент или свидетельство, признаваемые на международном уровне, есть?

                                                          А зачем? У меня есть алгоритм и повторить его, почти не реально. Он защищён сложностью. Если кто повторит, то я буду только рад. Патенты оставьте для слабоумных. Ваше признание мне тоже не нужно. Вы лишь инструмент, что бы оставлять комментарии под моими статьями :-)
                                                            0
                                                            А зачем?

                                                            Чтобы подтвердить, что вы и правда что-то изобрели.

                                                              –1
                                                              скачайте плеер, удостоверьтесь. Там уже 5000+ установок. Весь мир скачал!
                                                                0
                                                                скачайте плеер, удостоверьтесь.

                                                                То, что что-то работает, не означает, что это что-то было изобретено.


                                                                Там уже 5000+ установок. Весь мир скачал!

                                                                Меньше года назад в мире было нескольким больше двух миллиардов телефонов на базе Android. Ваши 5 тысяч не составляют и сотой доли процента от этого.


                                                                (а вы даже не можете сделать так, чтобы ваше приложение работало без запроса лишних прав)

                                                                  –2
                                                                  Обратите внимание, изменил статью. Убрал всё упоминание других плееров. Мой теперь содержит функционал ExoPlayer и VLCPlayer. Раньше был только классический. А теперь три плеера в моём одном! Оказалось ExoPlayer делает некий ремастеринг аудио и видео находу… творит магию! Там звук и видео лучше, чем в других плеерах.
                                                                  Ну и в совокупности с моим магическим стримингом — это волшебство какое-то))). Такой крутой функционал только у меня в плеере во всём мире! Даже под Windows такого нет))) нигде! Только в Media Library!

                                                                  Гордитесь! Магию в программировании изобрели в России :D
                                                                    0

                                                                    В основном я пока наблюдаю, что "в России изобрели" громкие неподтвержденные заявления.

                                                                      –3
                                                                      В основном я пока наблюдаю, что «в России изобрели» громкие неподтвержденные заявления.

                                                                      Ну так дерзайте, подтвердите их или опровергните. А то наблюдать все могут, а докопаться до истины? Слабо?
                                                                      Я, ведь, не просто заявляю, что всё работает, а работает like a magic!
                                                                      У меня теперь так. А если у вас не так, то это ваши проблемы. Flac — теперь слышится, как многоканалка… потрясающе… Фредди Меркьюри 2011 года фантастично слушается… буквально весь мир старался, что бы я его услышал, как можно правильней. Ремастеринг в 5-10 слоёв)):
                                                                      Ремастеринг на студии (в 2011 году) оригинала, затем ремастеринг плеером, затем улучшение качества наушниками и есть ещё то что я не посчитал… нереальная крутизна какая-то)))
                                                                      Ах… да… Фредди сам любил ремастерить свои же треки… он постоянно стремился улучшать треки. Сколько он ремастерил… не ясно… т.е. даже оригинал — это же результат ремастеринга на студии 90х.
                                                                        0
                                                                        А то наблюдать все могут, а докопаться до истины?

                                                                        Уже. Просто вам эта истина не нравится, и вы ее немедленно отвергаете.


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


                                                                        Я, ведь, не просто заявляю, что всё работает, а работает like a magic!

                                                                        Это заявление не подлежит формальной проверке, потому что содержит чисто субъективную оценку.


                                                                        Ну и что тут опровергать?


                                                                        А если у вас не так, то это ваши проблемы.

                                                                        Вот об этом я и говорю: ваше утверждение не проходит критерий фальсифицируемости.


                                                                        затем улучшение качества наушниками

                                                                        Извините, но не удержусь: фейспалм. Не бывает "улучшения качества" наушниками.

                                                                          –1
                                                                          Извините, но не удержусь: фейспалм. Не бывает «улучшения качества» наушниками.

                                                                          Об этом знают все, имеющие наушники дороже 10т.р… Я один из них. Вот почитайте:
                                                                          4pda.ru/2016/06/15/304593
                                                                          Как и в Soundsport wireless, в этих наушниках применена функция активной эквализации, которая автоматически изменяет частотные характеристики во время прослушивания музыки.

                                                                          Официально:
                                                                          www.bouzrussia.ru/products/quietcomfort-35-ii#v=variant_black
                                                                          QC35 II оснащены схемой эквалайзера, оптимизирующего звучание в зависимости от уровня громкости.

                                                                          Это много где упоминается и где-то даже были обзоры на улучшалки в наушниках и динамиках.
                                                                          Надеюсь я просветил ваш фейспалм…
                                                                          По остальным вопросам, как обычно, фейспалм у меня. Так что я традиционно проигнорирую их.
                                                                            0
                                                                            Об этом знают все, имеющие наушники дороже 10т.р…

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


                                                                            Вот почитайте:

                                                                            "Автоматически изменяет" и "оптимизирует" — это все маркетинговый булшит, который никак не меняет факта: наушники не могут улучшить музыку. Они могут ее "меньше ухудшить".


                                                                            По остальным вопросам, как обычно, фейспалм у меня.

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

                                                                          +2
                                                                          Ремастеринг на студии (в 2011 году) оригинала, затем ремастеринг плеером, затем улучшение качества наушниками и есть ещё то что я не посчитал…

                                                                          То есть трек испоганили минимум 3 раза от оригинала до ваших ушей?
                                                                            –1
                                                                            То есть трек испоганили минимум 3 раза от оригинала до ваших ушей?

                                                                            Ремастеринг предполагает улучшение, а не ухудшение. Так что нет, не испоганили.
                                      0
                                      На YouTube смотрел 8k на 4k телевизоре. Да, разница есть с 4k, даже на 4k экране.

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

                                    Самое читаемое