Название съел Вениамин
248 subscribers
75 photos
3 videos
35 files
45 links
Канал, где я пишу о том, что я делаю.
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
👎2👍1
Вчера в одном чате айти чате обнаружил видеостикер, который на первый взгляд не представляет из себя ничего интересного, но длится целых 8 секунд, при этом находится в паке и корректно отображается на всех клиентах, хотя согласно официальным гайдлайнам телеги на все стикеры действует ограничение в 3 секунды.

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

Я этой же ночью написал скрипт буквально в 8 строк кода на питоне, и он сработал - добавил несколько примеров в мой старый пак, среди них в том числе собака в полную длину.
👍42👎5🎉1
This media is not supported in your browser
VIEW IN TELEGRAM
👎3👍2
Ну и конечно самое главное - я в коллаборации с моим знакомым сделал пак с полным фильмом Шрек (2001), спасибо Сандалю за перекодировку. К сожалению ограничение на размер в 256 килобайт убрать нельзя, поэтому пришлось разрезать всё на 45 стикеров, приятного просмотра.
🔥14👍4👎2
This media is not supported in your browser
VIEW IN TELEGRAM
🔥14👍5👎2
Какими-то абсолютно лютыми флагами ффмпега, урезанием разрешения и фпс, установкой лимита битрейта в полкилобайта и прочими фокусами я таки запихнул полные три с половиной минуты Bad apple в стикер.
👍5👎2
This media is not supported in your browser
VIEW IN TELEGRAM
🔥33👎1🎉1
Пока я наигрывал очередные 100 часов в римке и писал svg-шку новогодней аватарки, мои упражнения в написании скриптов попали на два канала, которые читаю я (раз и два), и на канал, которые читает Сандаль, который кодировал шрека (три). В результате всего этого количество подписчиков этого канала за неделю выросло почти в два с половиной раза. Уф.
🔥4🎉2👎1
This media is not supported in your browser
VIEW IN TELEGRAM
👎2
В связи с резко появившимся спросом я решил оформить скрипт в нормальный проект, и вот наконец закончил оформлять все идеи фич:

github.com/sliva0/tgradish

Из зависимостей только python >= 3.10 и ffmpeg, если вы будете перегонять гифки и прочие видео в видеостикеры используя сам скрипт. Я заморочился и впихнул большой набор флагов специально под видеостикеры, и алгоритм бинарного поиска по оптимальному битрейту в добавок. Так же, из-за того, что я заморочился слегка больше, чем стоило бы, все флаги определены через довольно простой .toml конфиг, так что в случае нехватки настроек их всегда можно добавить самому.

Если же вы кодируете стикеры своим любимым видеоредактором, в скрипте есть опция просто подменять данные о длине видео - spoof, ffmpeg для этого не требуется. Я переписал мой скрипт с подменой этой информации дважды, последний раз полностью следуя официальному стандарту, так что теперь должно стабильно работать со всеми не битыми файлами и генерировать такие же не битые файлы.

Устанавливается скрипт из pip-a: pip install tgradish, после этого должно работать просто по команде tgradish.
🔥7👍3👎1
Forwarded from amekáwa café ☕️
С Новым годом по UTC!
👎2🔥2
Forwarded from YearProgress
░░░░░░░░░░░░░░░░░░░░ 0%
🎉7🔥2👎1
После написания узкоспециализированной утилиты для подмены одного значения в вебме я решил исследовать формат поглубже - создал специальный скрипт для разбора .webm в более-менее читаемый .json и сборки обратно в видео (и ещё 7 вспомогательных скриптов), раскопал старый стикер, который крашил все клиенты телеграма, нагуглил максимально высококачественный bigrat.jpg, расширил свой swap файл до 128 гигабайт, перенасобирал штук 20 стикеров крысюков и по итогу пришёл к выводу, что чтобы добиться аналогичного эффекта вылета на всех платформах надо лезть глубже, в кодек VP9.

Ну, казалось бы, webm оказалось парсить довольно просто, EBML очень хороший продуманный и простой универсальный формат хранения данных, вряд ли VP9 вызовет трудности. Гуглю документацию, нахожу, и это оказался самый потрясающий технический документ, который я читал.
🔥6👎1
Краткий пересказ содержания

- 3 страницы определения терминов.
- 2 страницы объявления численных констант.
- 2 страницы объявления операторов вроде сложения и базовых функций по типу модуля.
- Ещё пару страниц формального объяснения последующих нотаций.
- 15 страниц объяснения словами общих подходов по сжатию информации с прекрасными иллюстрациями (1-ая картинка).

- 35 страниц C-подобного псевдокода в виде таблицы с двумя столбцами, описывающий процесс чтения файла, пример на 2-ой и 3-ей картинках.

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

- 16 страниц о том, как именно парсить данные в файле в зависимости от пометок во втором столбце таблицы-псевдокода, с псевдокодом.

- 35 страниц дополнительных таблиц (константных массивов для программы), включающие в себя:
-- Просчитанное распределение Парето и логарифм по основанию 2
-- Просчитанные вероятности дефолта (или вероятности по умолчанию, не уверен), среди которых одна из таблиц является массивом размерностью 4x2x2x6x6x3 с объявлением на 17 страниц с комментариями по ходу
-- Таблица, вид которой заставил меня засмеяться (картинка 5).
🔥4👎1