Убрать черные полосы на превью YouTube

Видео с YouTube были улучшены некоторое время назад за счёт удаления чёрных полей, если они присутствовали.

Однако они всё ещё сохраняются в миниатюрах многих видео. Можно ли это тоже исправить?

3 лайка

Конкретное изменение, касающееся черных полос, сводится к использованию изображения maxresdefault вместо hqdefault. Однако не у всех видео есть эскиз в высоком разрешении, поэтому в таких случаях мы возвращаемся к изображению Open Graph, которое эквивалентно hqdefault.

У этого размера изображения другое соотношение сторон, и оно включает черные полосы. Но в обоих случаях мы фиксируем соотношение сторон 16:9, поэтому при отображении плеера черные полосы не должны быть видны.

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

Можете ли вы привести примеры, где это происходит?

3 лайка

Конечно, спасибо за ваш интерес.

Вот несколько видео, которые теперь отлично отображаются во встроенном просмотре, но имеют черные полосы в миниатюрах (и в предпросмотре):

og:image:

как вы верно заметили, имеет черные полосы.

И

og:image:

как вы верно заметили, имеет черные полосы…

NB Вот «хороший пример»:

og:image в этом случае значительно больше:

Сейчас я использую свой плагин Topic List Previews Sidecar для пересоздания миниатюр с их кадрированием, применяя собственные переопределения плагина:

… но было бы здорово, если бы такая автоматизация была реализована в ядре, так как постоянно делать это полуручным способом очень утомительно.

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

Достаточно ли просто принудительно установить соотношение 16:9, если обнаружено, что изображение YouTube имеет соотношение 4:3 или разрешение ниже определенного (что означает наличие черных полос)?

Возможно, это означает, что функции оптимизации изображений нужно передать флаг, указывающий, что она работает с YouTube?

Мне кажется странным, что YouTube не стандартизирует миниатюры до соотношения 16:9?! Возможно, я что-то упускаю…

Спасибо за разъяснение по поводу разницы в размерах!

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

Тем не менее, определение того, какие изображения нужно обрезать, не должно быть слишком сложным. Вы можете посмотреть на URL для этого:

https://img.youtube.com/vi/dsVAzSG6SbM/hqdefault.jpg

maxresdefault

  • Всегда имеет соотношение сторон 16:9.
  • Имеет наивысшее разрешение.
  • Доступно не всегда.

hqdefault

  • Всегда имеет соотношение сторон 4:3.
  • Если исходное видео 16:9, добавляются чёрные полосы.

mqdefault

  • Всегда имеет соотношение сторон 16:9.
  • Разрешение даже ниже, чем у hqdefault.

Хотя это немного странно, они предсказуемы. Полагаю, формат 4:3 — это устаревший размер, который они всё ещё используют ради совместимости.

Для отображения изображений 16:9 достаточно просто зафиксировать соотношение сторон. Если вам нужны другие соотношения сторон, думаю, достаточно передать флаг и скорректировать масштаб с помощью CSS.

Действительно, превью в редакторе можно улучшить, но это можно сделать с помощью похожего подхода, описанного выше.

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

2 лайка

Но ядро действительно создаёт и хранит собственные производные миниатюры в различных разрешениях в рамках процесса обработки постов?

Именно здесь сохраняются чёрные полосы.

В точку!

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

Это гораздо проще, чем спрашивать GPT-4 Vision о наличии чёрных полос или использовать ImageMagick для их обнаружения.

1 лайк

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

Возможно, это решение достаточно универсально, чтобы быть полезным для ядра?

2 лайка