- Видишь полоску загрузки?
- Да
- Она показывает, что большая часть видео уже загружена
- Агась
- Это значит, что если я отмотаю на 10 сек назад не надо будет загружать всё снова
- Звучит разумно
*Перемотка назад на 10 секунд*
Потому что вперёд оно загружается, а назад нет.
А правда, почему если перемотать видео, то оно заново загружается?
Потому что вперёд оно загружается, а назад нет.
Все гениальное просто.
чсх, раньше, на рубеже 00/10ых такой херни не было
но ведь всё что сзади и так загружено должно быть, если только сначала не скакнуть далеко, а потом вернутся.
разгружается
Вперёд тоже не очень.
- Видишь полоску загрузки?
- Да.
- Она показывает, что видео прогружено уже на 30 секунд вперёд.
- Агась.
- Это значит, что если я промотаю на 10 секунд вперёд, не надо будет загружать оттуда снова?
- Нет, надо.
- Почему?
- Потому что иди нахуй, вот почему.
- Видишь полоску загрузки?
- Да.
- Она показывает, что видео прогружено уже на 30 секунд вперёд.
- Агась.
- Это значит, что если я промотаю на 10 секунд вперёд, не надо будет загружать оттуда снова?
- Нет, надо.
- Почему?
- Потому что иди нахуй, вот почему.
Технические тонкости для экономии трафика. Грубо говоря, видео, которое можно перематывать - весит больше.
Чтобы видео можно было перематывать, надо чтобы его можно было начинать проигрывать с любого места. Но при кодировании видео, кадры не кодируются отдельно как картинки, а используют (обычно) предыдущие кадры и кодируют только разницу. Обычно, в видео регулярно вставляют специальные кадры, которые можно раскодировать без предыдущих кадров.
Но они занимают больше места (потому что проще закодировать "сдвинь эту рожу на 2 пикселя влево, подправь глаз, нарисуй вот эти 2 пикселя фона" чем кодировать весь кадр). Поэтому ютуб эти специальные кадры не вставляет.
Чтобы видео можно было перематывать, надо чтобы его можно было начинать проигрывать с любого места. Но при кодировании видео, кадры не кодируются отдельно как картинки, а используют (обычно) предыдущие кадры и кодируют только разницу. Обычно, в видео регулярно вставляют специальные кадры, которые можно раскодировать без предыдущих кадров.
Но они занимают больше места (потому что проще закодировать "сдвинь эту рожу на 2 пикселя влево, подправь глаз, нарисуй вот эти 2 пикселя фона" чем кодировать весь кадр). Поэтому ютуб эти специальные кадры не вставляет.
Для несведущих описал неплохо, но есть ньюанс: кейфреймы, они же "специальные кадры" в твоей терминологии, совсем не вставлять нельзя, иначе видео превратиться в разноцветную мазню. Я конечно специально не замерял, но думаю что они стоят не реже чем раз в 5 сек для 30фпс видео. Но скорее всего дело совсем не в этом, а в том что даже обычные видео(а не только стримы) ютуб дробит на "куски" и каждый "кусок" загружется отдельно и только когда надо(если замечали, видео всегда загружется на 2 минуты вперед и не будет загружаться дальше пока этот буфер не уменьшится). Так вот я практически уверен, что дело в том, что клиенты хранят только несколько последних кусков и немного наперед закачаных, а все остальное благополучно забывают, из-за чего их приходится заново качать при перемотке.
Во-первых, видео без кейфреймов отлично может быть. Только одна проблема - ошибки без них будут накапливаться, т.е. если кто-то портит пакеты с байтами, или видео на двд исцарапанном, то да - без кейфреймов плохо. Обе ситуации весьма редкие. Дисков сейчас уже нет, а пакеты в сети с контрольными суммами.
Во-вторых, дело не в кусках. Вы не можете без буферизации перемотать даже вперед в уже скачанный кусок. Но когда проигрывание дойдет до него, все отлично воспроизведется.
Во-вторых, дело не в кусках. Вы не можете без буферизации перемотать даже вперед в уже скачанный кусок. Но когда проигрывание дойдет до него, все отлично воспроизведется.
Хоть бы вики почитал чтоли.
1) ошибки декодинга могут(и скорее всего будут) накапливаться каждый инкрементальный фрейм
2) при большом изменении сцены вероятность появления ошибок растет экспоненциально
3) при воспроизведении видео с произвольного места: декодер ищет ближайший предидущий кейфрейм и нактывает на него инкрементальные фреймы до того момента пока не дойдет до нужного места, если этого не делать то получится размазня пока сцена не поменяется полностью(и не забываем про ошибки), а если он будет только в начале видео и оно длинной в несколько десятков часов - сам догадайся сколько времени будет занимать этот процесс.
В том то все и дело, если чанк("кусок") уже есть в буфере плеера то перемотка вперед-назад будет плавной, иначе - нужно тратить время на скачивание, декодирование и перезаполнение буфера. Делать буфер большим не очень выгодно т.к. это лишние ресурсы, которые и так "пожрав клятий довгоносик" в лице того же хрома или 100500 других приложений на любых платформах.
1) ошибки декодинга могут(и скорее всего будут) накапливаться каждый инкрементальный фрейм
2) при большом изменении сцены вероятность появления ошибок растет экспоненциально
3) при воспроизведении видео с произвольного места: декодер ищет ближайший предидущий кейфрейм и нактывает на него инкрементальные фреймы до того момента пока не дойдет до нужного места, если этого не делать то получится размазня пока сцена не поменяется полностью(и не забываем про ошибки), а если он будет только в начале видео и оно длинной в несколько десятков часов - сам догадайся сколько времени будет занимать этот процесс.
В том то все и дело, если чанк("кусок") уже есть в буфере плеера то перемотка вперед-назад будет плавной, иначе - нужно тратить время на скачивание, декодирование и перезаполнение буфера. Делать буфер большим не очень выгодно т.к. это лишние ресурсы, которые и так "пожрав клятий довгоносик" в лице того же хрома или 100500 других приложений на любых платформах.
Сам почитай вики. Я, етить твою перетять, видео кодеки по работе пишу и оптимизирую как раз под стриминг.
1) Откуда им, жеванный крот, появляться? Ты, вообще, в курсе, что энкодер может, например, тупо сгенерировать P-frame в котором все блоки intra?
2) Что? У тебя там энкодеры битстрим рандомом генерят что ли? Вероятность ошибки у него, блин, растет. Экспоненциально, блин. Про Quantization Parameter и PSNR что-нибудь вообще слышал?
3) Спасибо, кэп. А еще, вода - мокрая.
Но тем не менее, у ОПа при перемотке даже уже в скачанный кусок ютуб тормозит и начинает качать заново.
1) Откуда им, жеванный крот, появляться? Ты, вообще, в курсе, что энкодер может, например, тупо сгенерировать P-frame в котором все блоки intra?
2) Что? У тебя там энкодеры битстрим рандомом генерят что ли? Вероятность ошибки у него, блин, растет. Экспоненциально, блин. Про Quantization Parameter и PSNR что-нибудь вообще слышал?
3) Спасибо, кэп. А еще, вода - мокрая.
Но тем не менее, у ОПа при перемотке даже уже в скачанный кусок ютуб тормозит и начинает качать заново.
В чем тогда разница между P-фреймом состоящем только из интра блоков и кифреймом?
Так с кейфреймами понятно, непонятно зачем перезагружать это? Все локально просчитать и все.
Это же не бесплатно нельзя делать бесконечно быстро. Юзеры не готовы ждать 30 секунд, пока скачанные 3 минуты раскодируются. Нормальный интернет сейчас норма, но мало у кого есть суперкомпьютер.
Потому что больше нет единого файла, который можно загрузить. Видео загружается отдельными файлами продолжительностью порядка 10 секунд и склеивается только в момент воспроизведения.
А я помню эти видюшки можно было найти где-то в загруженном кеше. так их когда-то сохраняли...
вот такие мысли заставили написать "Пред нами все цветет, за нами все горит"
Странно, что в моем Засрансе даже мобильный интернет без каких-либо проблем загружает видео
Кстати, иногда бывает ситуация практически наоборот, видео вроде и назад идёт, и на минуту уже прогружено, но всё равно висит. Иногда доходило до абсурда: 3-ёх секундное видио грузилось секунд 20, хотя всё полоска уже была серой.
Иногда помогает пофигачить за бегунок загрузки в 00:00 и нажать пауза\плэй.
А что делать, когда ютуб "споткнулся" на получасовом видосе, на какой-нибудь 15-ой минуте?
Можно так-же.
А когда раздуплится - нажать куда надо.
А когда раздуплится - нажать куда надо.
Меня удивляет, что нельзя как-то сделать чтобы видео быстро загружались: в смысле - ты врубил музыкальный клип минут на пять, а он сука, при нормальной скорости инета, не прогружается сразу весь.
сраный уютуб даже порой когда ты приложуху свернул на секунду и вернулся обратно просто перестает грузить. и кнопки play нет.просто сидишь ждешь пока оно очухается. ебаная айособоль. хоть на андроиде не было лучше
Ютуб-приложение под андроид намеренно делается таким говённым (не работает в фоне), чтобы ты премиум покупал.
Надо было качать Youtube Vanced.
Надо было качать Youtube Vanced.
в applemarket нет такого если ты понимаешь о чем я
Нехуй было покупать апплеговно, если понимаешь, о чём я.
телебон в целом норм. Выдержал удар заготовкой из под фрезерного станка.
И даже согнутый слегка продолжает исправно работать
И даже согнутый слегка продолжает исправно работать
-Youtube, ты видишь что у меня плохой интернет
-Ага
И поэтому мое виде постоянно подгружается
-Ага
-Тогда почему твоя ебучая реклама проигрывается без зависаний
-...
-Ага
И поэтому мое виде постоянно подгружается
-Ага
-Тогда почему твоя ебучая реклама проигрывается без зависаний
-...
"Какая ещё нахуй реклама?" - сказал адблок.
На телефоне с адблоком проблемы
На телефоне есть Youtube Vanced.
Чтобы написать коммент, необходимо залогиниться
Отличный комментарий!