Mithgol the Webmaster – Telegram
Mithgol the Webmaster
1.4K subscribers
158 photos
196 videos
219 files
915 links
Мицгол-вебмастер ведёт на сём канале свой малоблог в Telegram.

Основные темы (в алфавитном порядке): аниме, виртуальная реальность, Геленджик, криптоконспирология, русский антиутопизм, сайтостроение, урбанизм, 猫 etc.

💸Донат: https://news.1rj.ru/str/ReadMithgol/923
Download Telegram
🐦 Опубликован очередной сборник моих твиттеровских микроблогозаписей.
🐦 Опубликован очередной сборник моих твиттеровских микроблогозаписей.

Изрядная их часть — ретвиты тѣхъ микроблогозаписей, которыми Дарья Беседина рассказывала про велоконгресс, в Финляндии происходящий.
Позавчера (10 февраля) я возвратился к рассмотрению эффекта Кена Бёрнса, то есть зрелищного плавного движения видеокадра по болѣе крупному изображению, заранее созданному художником или фотографом — движения, обеспечивающего болѣе пристальное вглядывание зрителя в изображение, а также способного преодолеть неравенство пропорций видеокадра и изображения (напримѣръ, вертикального портрета) или сглаживать то обстоятельство, что исходный материал — статическая картинка, а не видео (напримѣръ, в документальных фильмах об исторических периодах, предшествующих появлению кинематографа, или в анимационных фильмах, бюджетом которых не предусматривается непрестанная сакуга).

Прежде (в апреле 2019 года) я упоминал в Твиттере об этом эффекте в связи с тем, как он широко употребляется в современном #аниме и как работа программы Overmix, противоположная этому эффекту, позволяет по отрывку из аниме реконструировать крупное (многопиксельное) изображение, послужившее основою для того отрывка.

Результат такой реконструкции позволяет, во-первых, сполна полюбоваться им (окидывая взглядом всё изображение цѣликомъ — и притом не только в том направлении и не только с той скоростью, которые предусматривалися перемещением рамки кадра аниме по изображению), и это радует. Кроме этого он позволяет с не меньшей лёгкостью также и огорчиться, когда сполна подѣлиться с читателями своею многопиксельною радостью не получится, а придётся вмѣсто того натолкнуться на предельный размѣръ иллюстраций в Твиттере (где они уменьшаются до 2048 пикселов по большей стороне) и в Телеграме (где они уменьшаются до 1280 пикселов по большей стороне, не считая передачи «как файл») и заодно столкнуться с накоплением ошибок сжатия.

Позавчера до меня начало доходить, что если результатам работы Overmix (противоположной эффекту Кена Бёрнса) поневоле приходится натыкаться на ограничения в Твиттере и в Телеграме, то тогда сам эффект Кена Бёрнса я могу использовать как средство для преодоления тѣхъ же ограничений.

Именно так оно и получилось.

Напримѣръ, Twitter не очень подходит для пространного цитирования обширных страниц других сайтов. Привести такую цитату текстом сложно оттого, что текст одной микроблогозаписи ограничивается 280 символами, и даже текст составного твитшторма (который ещё надо составить повозиться) ограничивается двадцатью пятью такими репликами за один раз, это 7000 сѵмволовъ. Привести такую цитату скриншотом сложно оттого, что длинный скриншот (≈10 тысяч пикселов в высоту) будет чрезмѣрно ужат, даже если его нарѣзать на четыре ≈равныя части. Привести такую цитату голосом помѣшаетъ то, что Twitter (в отличие, напримѣръ, от Telegram) не поддерживает публикацию голосовых сообщений, а ограничивается только текстовыми с возможностью прикладывать к ним изображения или видеозаписи.

И тут-то и спешит нам на помощь эффект Кена Бёрнса: всё-таки можно сдѣлать изрядно длинный скриншот сайта и затѣмъ выложить в Twitter, если создать такую видеозапись, на которой тот скриншот будет плавно прокручиваться — и это можно будет даже сопроводить собственным устным комментарием (хотя и не долѣе 140 секунд, потому что это предѣлъ длины твиттеровских видеозаписей). Именно это я и сдѣлалъ в своей микроблогозаписи об откровениях Ивашова.

Ещё примѣръ: 410чан (как и многие, многие имиджборды) также не допускает публикации голосовых сообщений, а ограничивается только текстовыми с возможностью прикладывать к ним изображения или видеозаписи. Что ж дѣлать, если захочется о нѣкоторомъ ранобэ сказать голосом? — опять же получается, что поможет эффект Кена Бёрнса: можно на плавное прокручивание обложки такого ранобэ наложить свой голос, то-то и выйдет видеозапись, готовая к публикации. И опубликовал.

Telegram занижает (до нечитаемого) размѣръ скриншота страницы сайта болѣе чѣмъ двухтысячепиксельной высоты, опубликованного «как картинка» (а под Android — и «как файл» тоже)? — опять же можно прибегнуть к эффекту Кена Бёрнса, выложить в чате видеоролик с прокручивающеюся страницею, который не подвергнется пережатию, да ещё можно будет голосовой комментарий наложить на него. И я выложил.
Можно видеть (и вижу), что в двух из трёх приведённых выше примѣровъ: и в Twitter, и на 410чане — дѣлается второй шаг по тому же пути («если запрещены звукозаписи, но разрешены видеозаписи, то надо дѣлать видеозаписи из звукозаписей»), по которому первым шагом было наложение звука на видеоряд, состоящий из повторений одной и той же иллюстрации (напримѣръ, наложение песни на обложку её альбома). Готовые рецепты для такого наложения, совершаемого посредством вызова FFmpeg с соотвѣтствующею командною строкою, давал на Гитхабе разработчик, действовавший под псевдонимом «Питуз», ещё в 2016 году; а в апреле 2018 года и сам я выложил на 410чане болѣе современный аналог его рецепта.

И раз уж для первого шага (для создания видео наложением звука на неподвижную картинку) с 2016 года есть готовые рецепты, то тогда и для второго шага (а именно для создания видео наложением звука на картинку, плавно движущуюся для эффекта Кена Бёрнса) хочется имѣть готовые рецепты.

Но по дороге к обретению таких рецептов ожидает нѣкоторая драма. Суть её в том, что в Википедии констатируется, что эффект Кена Бёрнса иначе зовётся попросту «pan and zoom» — и сейчас (возможно, именно под влиянием такого синонимического названия) результаты погугливания по словам «FFmpeg Ken Burns effect» изобилуют примѣрами примѣненія того фильтра FFmpeg, который примѣрно так и называется: zoompan. И попадающаяся первою в результатах погугливания блогозапись «Ken Burns Effect Slideshows with FFMPeg», и дальнейшие результаты с сайтов «Stack Overflow» и «Super User» настойчиво рекомендуют именно zoompan. Между тѣмъ zoompan подходит для этого эффекта очень худо, так как начинает своё дѣло с того, что автоматически (и притом, по-видимому, неотключаемо) приводит пропорции исходного изображения к пропорциям конечного кадра; автор блогозаписи «Ken Burns Effect Slideshows with FFMPeg» даже вынужден был упоминание именно этого факта помѣстить в начало второго раздѣла её («Handling different aspect ratios»), гдѣ и предлагать наперёд либо обрѣзать исходное изображение по пропорциям конечного кадра, либо дополнять чёрными полями до прямоугольника, имеющего пропорции конечного кадра — то и другое, конечно же, выглядит как нелѣпый «костыль», который должен был тотчас же наводить на мысль об отбрасывании zoompan и о поиске вмѣсто того болѣе годных средств для достижения желаемого. (У такого отбрасывания есть и другой повод — извѣстный баг в zoompan, приводящий к недостаточной плавности движения кадра видео по исходному изображению.)

Отбросив всѣ такие (сильно подпёртые костылями) рецепты употребления zoompan, мнѣ для достижения эффекта Кена Бёрнса в каждом из трёх приведённых выше примѣровъ (в которых кадр видео плавно движется вертикально вниз вдоль болѣе высокого изображения) достаточно было применить только два других фильтра FFmpeg: фильтр scale (которым достигалась zoom-часть эффекта zoompan) и фильтр crop (которым достигалась pan-часть).

Вот так в итоге выглядит у меня команда (для командной строки), вызывающая FFmpeg для создания видеоролика для Твиттера:

ffmpeg -hide_banner -loop 1 -r 60 -i %1 -i %2 -to %3 -vf "scale=1280:-1:flags=lanczos,crop=h=720:y=(in_h-out_h)*n/(60*%3)" -c:v libx264 -crf 5 -b:v 0 -b:a 256k -preset veryslow -tune animation -pix_fmt yuv420p -profile:v baseline -level 3.0 -movflags +faststart -shortest kbdtwi.%3.mp4

А вот команда, создающая видео для Telegram:

ffmpeg -hide_banner -loop 1 -r 60 -i %1 -i %2 -to %3 -vf "scale=1280:-1:flags=lanczos,crop=h=720:y=(in_h-out_h)*n/(60*%3)" -c:v libx264 -crf %4 -b:v 0 -b:a 256k -preset veryslow -tune animation -pix_fmt yuv420p -profile:v baseline -level 3.0 -movflags +faststart -shortest kbdtg.%4.mp4

А вот команда, создающая видео для имиджбордовой публикации:

ffmpeg -hide_banner -loop 1 -r 60 -i %1 -i %2 -to %3 -vf "scale=1280:-1:flags=lanczos,crop=h=720:y=(in_h-out_h)*n/(60*%3)" -crf %4 -b:v 0 -c:a copy -pix_fmt yuv420p -tile-columns 2 -threads 8 -shortest kbd.%4.webm

Смысл параметров:

%1 — имя файла иллюстрации

%2 — имя файла звукозаписи

%3 — длина звукозаписи в секундах

%4 — CRF (constant rate factor)
Всѣ три приведённые выше команды составлены мною таким образом, чтобы создавалась видеозапись, насчитывающая 60 кадров в секунду при размѣрахъ кадров, равных 1280×720 пикселов. Эта частота кадров необходима для того, чтобы эффект Кена Бёрнса выглядел по-настоящему плавным, то есть чтобы отдѣльные межкадровые движения были малопиксельными (желательно — вообще однопиксельными), а промежутки между такими движениями выглядели достаточно равными: то и другое вполне достигается именно при 60 кадрах в секунду, так как и промежутки выглядят достаточно равными (с прибавлением не болѣе шестидесятой доли секунды, что почти не замѣтно), и движения могут быть однопиксельными (скажем, 140 секунд по 60 кадров в секунду способны вмѣстить до 8400 однопиксельных движений, а этого с избытком достаточно для изображений среднего размѣра и даже болѣе чѣмъ среднего). А такой размѣръ кадра является необходимостью только для Твиттера (Twitter не принимает видеозаписи больше 1280×1024, что и означает для кадра с пропорциями 16:9 необходимость вписываться в 1280×720), но я решил использовать именно его также и в Telegram, и на имиджбордах, потому что есть печальная вѣроятность того, что кадры большего размѣра (напримѣръ, FullHD 1920×1080) при этой частоте кадров будут у нѣкоторыхъ зрителей подтормаживать: всё же 60 кадров в секунду — это не 25 и не 30. (А у нѣкоторыхъ зрителей устройства управятся с 60 кадрами FullHD в секунду, но адски нагреются и потратят много энергии.)

Первая из моих команд (которая для Twitter) не содержит параметр «%4», а вмѣсто того использует фиксированное и притом достаточно малое значение CRF (равное 5), что означает высокое качество и высокий битрейт (и объём) создаваемой видеозаписи. Это объясняется тѣмъ, что Twitter достаточно ясно рекомендует загружать видеозаписи достаточно большого объёма (минимум пять мегабитов в секунду), которые затѣмъ ужé сам Twitter переужмёт и сохранит у себя в разном качестве для зрителей с разными каналами связи. А вот в Telegram и на имиджбордах видеозаписи, загруженные пользователями, используются «как есть», поэтому в командах для создания видеозаписей, предназначаемых для Telegram и для имиджборд, я предусмотрел указание CRF в явном виде. На имиджбордах наиболѣе значимым ограничением, способным принудить к высокому CRF и небольшому битрейту, является объём файла (ограниченный чаще всего нѣсколькими мегабайтами или десятками мегабайтов); Telegram же ограничивает объём файла полутора гигабайтами (так что этим ограничением чаще всего можно пренебречь), однако же видеофайлы с крупными битрейтами всё равно менѣе удобны, так как они оказываются недоступными для просмотра, совершаемого зрителями без промедления (по мѣрѣ скачивания видеофайла), потому что скорость скачивания, понятное дѣло, должна для такого просмотра быть больше, чѣмъ битрейт. (И каналы сотовой связи, и скорости телеграмных серверов ограничены примѣрно мегабайтом в секунду. Очень, очень примѣрно.)

Параметр «-c:a copy» в третьей команде предполагает для звукозаписи возможность быть записанною в видеоконтейнер WebM простым копированием (без какого-либо декодирования и послѣдующаго кодирования другим аудиокодеком). Всякий, кто когда-либо взглядывал в гугловскую документацию по контейнеру WebM, уж знает, что такая возможность существует только для двух аудиокодеков: для Vorbis и для Opus — к счастью, мнѣ вполне достаточно Telegram Desktop для того, чтобы имѣть возможность сперва записать голосовое сообщение (напримѣръ, в папке «Saved Messages» в Telegram), а затѣмъ сохранить его в файл в формате Opus, который подходит именно для такого употребления в WebM.

Длина звукозаписи в секундах (параметр «%3» в каждой из команд) может быть указана на одну или двѣ секунды меньше действительной, чтобы отрѣзать звук движения, совершённого для выключения микрофона. Если я захочу что-либо прибавить к своему голосовому сообщению, а затѣмъ сочту это прибавление ненужным (или просто не помещающимся в 140-секундный предѣлъ длины видеозаписей в Twitter), то хвост звукозаписи опять же можно будет отрѣзать уменьшением именно этого параметра команды.
🐦 Опубликован очередной сборник моих твиттеровских микроблогозаписей.

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

Также я изложил одиннадцать пожеланий о будущих улучшениях Телеграма:

0️⃣ 1️⃣ 2️⃣ 3️⃣ 4️⃣ 5️⃣ 6️⃣ 7️⃣ 8️⃣ 9️⃣ 🔟
По отношению к хорошо развитым чатникам (мессенджерам) нередко высказывается просьба о реализации P2P-соединений между мобильниками для обеспéчения коммуникации между даже такими пользователями, которые отключены от Интернета.

(Вон там можно для примѣра увидать такую просьбу изложенною по отношению к Telegram.)

Одним из обыкновенных ѿвѣтовъ на такую просьбу является упоминание ограниченности возможностей такого P2P: группа людей способна оказаться подключённою к интернетовскому общению по P2P только при том непремѣнномъ условии, что расположены они достаточно плотно, то есть что каждое из расстояний между соседствующими пользователями преодолимо для мобильников, то есть оно не препятствует им «докричаться» друг до друга по радиосвязи (по вайфаю, напримѣръ).

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

Это указание на ограниченную примѣнимость P2P совершенно справедливо, однако и в рамках своих настоящих возможностей P2P может принести много, много пользы (так что есть повод всё же запускать P2P по мѣрѣ готовности разработчиков к этому).

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

Причиной такого отключения могут быть не только мѣры правительства (как в случае деинтернетизации московских митингов в 2019 году), но и такое отключение оборудования провайдеров (как проводного, так и мобильного Интернета), которое совершается в результате обширного отключения электричества, вызванного стихийным бѣдствіемъ (таким, как Великое наводнение 2012 года) или необходимостью ремонта (как в Геленджике сегодня утром).

Во-вторых, P2P поможет не оказаться выброшенными из чатов и таким пользователям, которые лично оказались без мобильного и без проводного Интернета на какое-то время: пропустили время оплаты, столкнулись с выходом маршрутизатора из строя, зашли в радиотень, заехали в тоннель, пострадали от эскалации конфликта обезумевших соседей, способных перерубить топором интернетовский или электрический кабель всей сельской улицы (или всего подъезда в городской многоэтажке), etc.

Конечно, это благо подвержено трагедии обобществлённого, то есть теоретически оно способно порождать халявщиков въ непомѣрныхъ количествах, способных забить интернетовские каналы связи добросовестных пользователей. (Если эта проблема возникнет, то хорошо бы она породила не отказ от P2P, а нѣкій сдерживающий механизм — скажем, криптовалютный механизм компенсации той части стоимости подключения к Интернету, которая расходуется на пользователей P2P, за их же счёт.)

Кроме того, подключение районов с сотнями и тысячами пользователей через «бутылочное горлышко» десятков (а не то и единиц) P2P-соединений съ неизбѣжностью приведёт к снижению скорости соединения на порядок и даже на нѣсколько порядков — но это, во-первых, всё равно лучше, чѣмъ ничего, а во-вторых, со временем окажется подпираемо сочетанием «костылей» криптовалютных и околоземных (то есть аппаратно-программными механизмами, служащими для автоматического формирования у нѣкоторыхъ пользователей P2P-чатника дополнительных каналов связи через подключение к двустороннему спутниковому Интернету за общий счёт и для общего же блáга, то есть для подключения через них всей оравы потребителей P2P).

А ещё этому не обрадуется ни государство (желающее спасти «рубильник», то есть свою способность вырубать Интернет), ни провайдеры Интернета (обычного и спутникового), которые не рады его групповому использованию, хотя бы оно и оплачивалося в складчину.
🐦 Опубликован очередной сборник моих твиттеровских микроблогозаписей.

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

Он содержит, в частности, рассуждения о всемирном вреде от роста концентрации CO₂ (ввиду ядовитости CO₂).
🐦 Опубликован очередной сборник моих твиттеровских микроблогозаписей.

Там упомянуты, в частности, нѣкоторые обстоятельства использования AV1 для кодирования видеозаписей.
Media is too big
VIEW IN TELEGRAM
#Вечер #сегодня, #Геленджик, #закат.

Я еду, став на #моноколесо и не особенно поторапливаясь.

60 кадров в секунду, FullHD, HEVC.