Видео с YouTube были улучшены некоторое время назад за счёт удаления чёрных полей, если они присутствовали.
Однако они всё ещё сохраняются в миниатюрах многих видео. Можно ли это тоже исправить?
Видео с YouTube были улучшены некоторое время назад за счёт удаления чёрных полей, если они присутствовали.
Однако они всё ещё сохраняются в миниатюрах многих видео. Можно ли это тоже исправить?
Конкретное изменение, касающееся черных полос, сводится к использованию изображения maxresdefault вместо hqdefault. Однако не у всех видео есть эскиз в высоком разрешении, поэтому в таких случаях мы возвращаемся к изображению Open Graph, которое эквивалентно hqdefault.
У этого размера изображения другое соотношение сторон, и оно включает черные полосы. Но в обоих случаях мы фиксируем соотношение сторон 16:9, поэтому при отображении плеера черные полосы не должны быть видны.
Вот пример одного видео, у которого нет изображения в высоком разрешении, и для эскиза используется это.
Можете ли вы привести примеры, где это происходит?
Конечно, спасибо за ваш интерес.
Вот несколько видео, которые теперь отлично отображаются во встроенном просмотре, но имеют черные полосы в миниатюрах (и в предпросмотре):
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
hqdefault
mqdefault
hqdefault.Хотя это немного странно, они предсказуемы. Полагаю, формат 4:3 — это устаревший размер, который они всё ещё используют ради совместимости.
Для отображения изображений 16:9 достаточно просто зафиксировать соотношение сторон. Если вам нужны другие соотношения сторон, думаю, достаточно передать флаг и скорректировать масштаб с помощью CSS.
Действительно, превью в редакторе можно улучшить, но это можно сделать с помощью похожего подхода, описанного выше.
Единственный частный случай, который я вижу в этом подходе, — это вертикальные видео с миниатюрами низкого разрешения. В таком случае чёрные полосы не отображаются. ![]()
Но ядро действительно создаёт и хранит собственные производные миниатюры в различных разрешениях в рамках процесса обработки постов?
Именно здесь сохраняются чёрные полосы.
В точку!
В любом случае, это очень полезная информация, которую я, возможно, смогу использовать для улучшения своего плагина. Большое спасибо!
Это гораздо проще, чем спрашивать GPT-4 Vision о наличии чёрных полос или использовать ImageMagick для их обнаружения.
Благодаря вашему совету я обновил Предварительный просмотр списка тем, внедрив гораздо более простое решение, которое не требует переключения, так как обрезка будет выполняться только если изображение — это устаревший эскиз YouTube в формате 4:3.
Возможно, это решение достаточно универсально, чтобы быть полезным для ядра?