Польский алфавит, alfabet Polski
Я Уссался с такого алфавита😂😂😂
Я Уссался с такого алфавита😂😂😂
Продолжаю серию материалов о своей «хакерской» игре. Ранее я рассказывал об ее процессе разработки, а сегодня затрону не менее важную часть — маркетинг.
Для продвижения игры я начал публиковать Shorts на YouTube, но это отнимало много времени и ресурсов. Будучи инженером, я стараюсь автоматизировать рутинные задачи, поэтому сделал решение, которое самостоятельно нарезает видео на 60-секундные фрагменты.
Проблема инди-игр
Gamedev-разработчикам недостаточно просто создать игру, чтобы она пользовалась популярностью у пользователей. Неотъемлемой частью процесса является маркетинг. Разумеется, можно рассчитывать, что игра сама найдет свою аудиторию. Но будем реалистами: даже самый крутой проект может остаться незамеченным, если о нем не рассказать.
Существует огромное количество гайдов по маркетингу инди-игр. Мне удалось не только ознакомиться с ними, но и опробовать на практике. Ниже делюсь своими выводами, которые могут помочь начинающим gamedev-разработчикам.
Контента должно быть много. Необходимо показать игру как можно большему количеству людей, чтобы они узнали и добавили ее в вишлист.
Частота публикации важнее уникальности. Конечно, адаптировать контент под каждую соцсеть — круто, но это отнимает много времени и ресурсов. Эффективнее публиковать несколько простых материалов, чем один уникальный.
Вертикальные видео дают хорошие охваты. Причем необязательно даже записывать свой голос, достаточно показать игровой процесс.
Таким образом, я стал нарезать горизонтальные видео на множество Shorts, чтобы получать дополнительные просмотры.
Небольшой лайфхак для увеличения охвата на YouTube. Если при постинге видео убрать галочку Publish to subscriptions feed and notify subscribers, то знакомые с игрой люди не будут видеть его в своей ленте.
Окно с параметрами видео перед публикацией
Что было раньше
Сейчас у меня есть два основных YouTube-канала — игровой и личный. На первом публикую горизонтальные и вертикальные видео для продвижения своей игры. Часть из них уходят в GameJolt, Reddit и другие площадки. На втором — только горизонтальные, но некоторые из них посвящаю разработке игр.
Для монтажа я использую CapCut. В личном канале делаю видеоряд и накладываю звук, а в игровом — добавляю сгенерированный голос. Процесс этот довольно затратный, из-за чего нередко страдает стабильность публикаций. Подливает масла в огонь неудобство генерации голоса из-за ограничений в 300 символов за раз. Приходится генерировать озвучку в несколько этапов, что сильно замедляет подготовку нового контента.
Ограничение по тексту
Возможности для автоматизации
Решение автоматизировать процесс долго вынашивать не пришлось, но какие здесь есть возможности для этого? Рассмотрю несколько примеров.
Нарезать горизонтальные видео, чтобы получать больше охватов.
Автоматизировать генерацию голоса и визуала для создания видео. Более того, можно анимировать маскот, от лица которого буду вести повествование.
Маскот игры
3. Автоматизировать производство горизонтальных видео за счет подбора визуала. Для этого буду использовать контент из пула видео и хэш-таблицы тегов на основе семантического анализа текста.
В статье начну с малого и реализую только первый пункт. Остальные решения оставлю для следующих материалов.
Итак, мне нужен «черный ящик» для горизонтальных видео, который будет:
менять формат с 16:9 на 9:16,
заполнять лишнее пространство размытым фоном,
нарезать видео в соответствии с таймкодом, но не более 60 секунд,
добавлять текст с нумерацией выпуска и призывом посмотреть полное видео.
Выбор инструментария и философия
Не вижу смысла заморачиваться с UI, поэтому буду использовать bash-скрипты. Для обработки видео выбираю библиотеку FFMPEG — поверхностное изучение показало, что ее будет достаточно. Устанавливаю на MacOS с помощью Homebrew:
brew install ffmpeg
Пакеты для других платформ можно найти здесь.
Чтобы продолжить движение этого проекта в рамках философии UNIX, я нашел инструмент для загрузки YouTube-видео из терминала — youtube-dl. С его помощью я удалил свое первое отрендеренное видео.
Утилита проста в использовании. Сперва запрашиваю доступные форматы для скачивания видео:
youtube-dl -F "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
После — получаю список:
[info] Available formats for dQw4w9WgXcQ:
format code extension resolution note
249 webm audio only tiny 46k , webm_dash container, opus @ 46k (48000Hz), 1.18MiB
250 webm audio only tiny 61k , webm_dash container, opus @ 61k (48000Hz), 1.55MiB
140 m4a audio only tiny 129k , m4a_dash container, mp4a.40.2@129k (44100Hz), 3.27MiB
251 webm audio only tiny 129k , webm_dash container, opus @129k (48000Hz), 3.28MiB
...
398 mp4 1280x720 720p 657k , mp4_dash container, av01.0.05M.08@ 657k, 25fps, video only, 16.62MiB
399 mp4 1920x1080 1080p 1180k , mp4_dash container, av01.0.08M.08@1180k, 25fps, video only, 29.83MiB
248 webm 1920x1080 1080p 1556k , webm_dash container, vp9@1556k, 25fps, video only, 39.34MiB
137 mp4 1920x1080 1080p 3024k , mp4_dash container, avc1.640028@3024k, 25fps, video only, 76.45MiB
18 mp4 640x360 360p 343k , avc1.42001E, 25fps, mp4a.40.2 (44100Hz) (best)
Пометка best — это не лучший формат, а формат с заранее склеенным видео и аудио.
Выбираю нужный формат для видео — в моем случае webm (251) и mp4 (137). Чтобы не скачивать их по-отдельности, использую опцию сложения:
youtube-dl -f 137+251 "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
Не уверен, что она доступна для всех видео, — нужно проверять.
С подготовкой разобрались! Время создать скрипт.
Написание кода
Смена формата видео и размытый фон
Для этой задачи не нужно создавать отдельный скрипт. Решение будет выглядеть следующим образом:
ffmpeg -i video.mp4 -filter_complex \
"[0:v]scale=-1:1920,crop=1080:1920,gblur=sigma=20[bg]; \
[0:v]scale=1080:-1[ov]; \
[0:a]volume=1.0[audio];
[bg][ov]overlay=(W-w)/2:(H-h)/2[mix]" \
-map "[mix]" -map "[audio]" -r 60 result.mp4 -y
Команда запускает библиотеку FFMPEG, чтобы передать на вход файл video.mp4. Применяю к нашему потоку filter_complex. Ниже расскажу, какие фильтры я использовал.
Вторая строка скрипта пропорционально меняет ширину нулевого видеопотока 0:v на его длину scale=-1:1920. Обрезает видео до вертикального формата crop=1080:1920 и размывает фон gblur-sigma=20. После — возвращает преобразованное видео в новый поток bg.
Третья строка снова берет 0:v, пропорционально меняет его длину на ширину scale=1080:-1 и возвращает результат в новый поток ov.
Аналогично преобразовываю аудио, чтобы оно не исчезло. Возможно, получится сделать это намного проще, но напрямую аудиопоток в map не отправить. Поправьте в комментариях, если вы знаете другой способ.
В четвертой строке смешиваю потоки bg и ov и располагаю видео в центре экрана overlay=(W-w)/2:(H-h)/2. Результат перемещаю в mix. После — отправляю потоки в финальный файл при помощи -map"[mix]" -map "[audio]".
Выставляю 60 FPS и сохраняю результат в result.mp4. Флаг -y перезаписывает файл, если он уже существует.
Результат
Начало положено! Нам удалось сэкономить минуту работы ценой всего нескольких часов исследований. Разве это не прекрасно?
2. Нарезка видео
Если длительность видео превышает 60 секунд, то YouTube не пропустить его в раздел Shorts. Для этого нужно модифицировать предыдущий скрипт.
Более того, хочу нарезать видео не просто на куски по 60 секунд, а разделять их на логические части. В описании под видео есть проставленные таймкоды. Значит я могу просто скопировать этот текст и передать в скрипт, а он уже обрежет видео автоматически. Приступим!
Для таймкодов на YouTube использую следующий формат:
00:00 - Text
01:40 - Text2
Их легко можно преобразовать в массив секунд:
time_codes=()
while read -r line; do
minutes=${line:0:2}
seconds=${line:3:2}
minutes="$(printf "%.0f" "$minutes")"
seconds="$(printf "%.0f" "$seconds")"
time_codes+=("$(($minutes*60+$seconds))")
done < $2
Если расстояние между таймкодами больше 60 секунд, их нужно отредактировать. Конечно, можно автоматизировать это разбиение, но так я рискую обрывать видео на нелогичных моментах.
Далее смотрю на длительность видео с помощью команды ffprobe:
lengths=()
prev=
for key in "${!time_codes[@]}"; do
if [[ $key == 0 ]]; then
prev=${time_codes[$key]}
else
current=${time_codes[$key]}
length=$((current-prev))
lengths+=("$length")
prev=$current
fi
done
vid_len=$(ffprobe -v error -select_streams v:0 -show_entries stream=duration -of default=noprint_wrappers=1:nokey=1 $1)
vid_len=${vid_len%.*}
length=$((vid_len-prev))
lengths+=("$length")
Теперь к рендерингу самих видео! Для этого модифицирую команду filter_complex:
for i in "${!lengths[@]}"; do
target="${1}_$(($i+1)).mp4"
ffmpeg -ss ${time_codes[$i]} -i $1 -filter_complex \
"[0:v]scale=-1:1920,crop=1080:1920,gblur=sigma=20[bg]; \
[0:v]scale=1080:-1[ov]; \
[0:a]volume=1.0[audio];\
[bg][ov]overlay=(W-w)/2:(H-h)/2[mix];" \
-map [mix] -map [audio] -t ${lengths[$i]} -r 60 $target -y
done
Здесь я добавил флаг -ss ${time_codes[$i]} для рендеринга с заданного момента в секундах, а также -t ${lengths[$i]}, который задает соответствующую длительность видео.
Отлично! Теперь видео подходят для раздела Shorts.
3. Добавление текста
Видео готово, осталось добавить текст. Сверху я буду выводить название видео и номер части, а снизу — призыв посмотреть полную версию. Центрировать текст не получится, поэтому приходиться генерировать каждую строку отдельно. Для удобства закину текст в файл с таймкодами и разобью его на две строки.
Далее модифицирую код, который считывает таймкоды:
name1=""
name2=""
time_codes=()
while read -r line; do
if [[ $name1 == "" ]]; then
name1=$line
elif [[ $name2 == "" ]]; then
name2=$line
else
minutes=${line:0:2}
seconds=${line:3:2}
minutes="$(printf "%.0f" "$minutes")"
seconds="$(printf "%.0f" "$seconds")"
time_codes+=("$(($minutes*60+$seconds))")
fi
done < $2
Создаю переменные для параметров текста:
text_size=80
margin_top=160
margin_bottom=320
line_spacing=100
font="$HOME/tools/Ubuntu/Ubuntu-Bold.ttf"
text_border=5
Теперь модифицируем команду для генерации клипов:
ffmpeg -ss ${time_codes[$i]} -i $1 -filter_complex \
"[0:v]scale=-1:1920,crop=1080:1920,gblur=sigma=20[bg]; \
[0:v]scale=1080:-1[ov]; \
[0:a]volume=1.0[audio];\
[bg][ov]overlay=(W-w)/2:(H-h)/2,\
drawtext=text='$name1':fontfile=$font:fontcolor=white:fontsize=$text_size:x=w/2-text_w/2:y=$margin_top\
:bordercolor=black:borderw=$text_border,\
drawtext=text='$name2':fontfile=$font:fontcolor=white:fontsize=$text_size:x=w/2-text_w/2:y=$margin_top+$line_spacing\
:bordercolor=black:borderw=$text_border,\
drawtext=text='Часть $(($i+1))':fontfile=$font:fontcolor=white:fontsize=$text_size:x=w/2-text_w/2:y=$margin_top+$line_spacing*2+20\
:bordercolor=black:borderw=$text_border,\
drawtext=text='Полное видео':fontfile=$font:fontcolor=white:fontsize=$text_size:x=w/2-text_w/2:y=h-$margin_bottom-$line_spacing\
:bordercolor=black:borderw=$text_border,\
drawtext=text='на канале':fontfile=$font:fontcolor=white:fontsize=$text_size:x=w/2-text_w/2:y=h-$margin_bottom\
:bordercolor=black:borderw=$text_border[mix];" \
-map [mix] -map [audio] -t ${lengths[$i]} -r 60 $target -y
Несмотря на большое количество кода, все довольно просто. В блоке с размытием фона появилось пять команд drawtext. У каждой есть текст, шрифт, цвет, размер, позиция по x, позиция по y, цвет и толщина обводки.
Результат.
Заключение
У меня получилось довольно удобное решение, которое уже не раз помогло мне сэкономить время. Некоторые строки я захардкодил, но это поправимо. Также планирую добавить выбор языка при помощи флага в shell-скрипте. Для русского все работает уже так.
Изначально у меня были мысли встроить в пайплайн загрузку готовых видео, но YouTube воспринимал их как спам и блокировал. Если у кого-то получилось адекватно автоматизировать данный процесс, делитесь своим опытом в комментариях. Буду очень благодарен.
Сегодня все больше и больше людей используют социальные сети как основной источник информации и развлечения. Именно поэтому вертикальные видео стали настолько популярными.
Во-первых, вертикальные видеоформаты легче потреблять на мобильных устройствах. Пользователи привыкли к прокрутке ленты вверх-вниз, поэтому вертикальные видео просто легче смотреть.
Во-вторых, вертикальные видеоформаты помогают лучше зацепить аудиторию. Именно из-за компактности и краткости таких видео, пользователи чаще смотрят их до конца и затем готовы перейти к действию, которое вы предлагаете.
Наконец, благодаря вертикальным видео, вы можете быстро и легко создавать контент, привлекающий внимание.
Итак, вертикальные видео - это не только модный тренд, но и эффективный инструмент для привлечения аудитории, удержания ее внимания и взаимодействия с ней. Не надо упускать возможность использовать этот формат в вашем контенте и получить новых подписчиков!
Почему они необходимы?
Сразу же отметим, что два наиболее популярных формата вертикального видео сегодня - reels/shorts/клипы и stories - имеют принципиальные различия по нескольким критериям.
Reels/shorts/клипы представляют собой монолог. Вам необходимо донести до зрителя, что вы поможете решить его проблему. Цель записи видео - привлечение новых подписчиков. За отведенные 30-60 секунд вам необходимо заинтересовать зрителя, удержать его внимание, предоставить пользу и подтолкнуть на конкретное действие, например, подписку на ваш канал.
Stories же предполагают диалог. Вы провоцируете зрителей к обсуждению. Здесь важнейшей является задача удержания подписчиков, повышения доверия к вашей персоне и стимулирования продаж. То есть вашей задачей становится налаживание долгосрочных отношений с аудиторией, которая уже подписана на вас.
Долгое время контент в социальных сетях оставался на том же уровне. Однако почему же сейчас происходит такой подъем интереса к форматам reels/shorts/клипы?
Просто потому, что привычные способы набора подписчиков больше не находят отклика. Реклама в Инсте/YouTube, где можно было вложить 1000 рублей и получить 100 подписчиков, теперь утратила свою эффективность.
Таким образом, вертикальные видео необходимы в наше время, чтобы быть в центре внимания аудитории, привлекать ее внимание и взаимодействовать с ней. Не упустите шанс использовать этот тренд в своем контенте для привлечения новых подписчиков и развития вашего бренда!
В феврале 2022 года нам, искренне преданным своему делу, стало ясно две важные вещи:
Вне зависимости от происходящего в мире, лучшее, что мы можем сделать - продолжать выполнять свою работу на высоком уровне, чтобы обеспечить себя и своих близких;
То, что раньше работало, уже не работает или работает не так эффективно; если 2 года назад умение создавать видео для соцсетей считалось навыком soft skills, то сегодня это необходимое умение для выживания на рынке и продвижении себя.
Как же действовать в этих новых условиях?
Создавать контент такого качества, что не понадобилось делать рекламу для привлечения аудитории.
Да, для многих это звучит невероятно. Но мы привыкли к тому, что за успехом стоит много труда - придется принять вызов.
И, конечно, учиться новому! Но стоит отметить, что теперь мы можем получать подписчиков совершенно бесплатно.
Сегодня, пожалуй, лучший способ органического роста без затрат на рекламу - создание коротких вертикальных видео. Независимо от названия в различных соцсетях - reels, клипы, shorts и т.д. - они помогут привлечь внимание аудитории и расширить свою базу подписчиков.
Одна из основных функций всех этих видеороликов - привлечение новых клиентов, и самое главное - это происходит абсолютно бесплатно.
Как это работает?
Вам нужно создать короткое видео длительностью от 30 до 60 секунд, где вы рассказываете что-то актуальное и важное на тему вашего блога.
Если ваш контент понравится аудитории, то люди будут ставить лайки, делиться видео и оставлять комментарии.
Алгоритмы социальных сетей начнут распространять ваш ролик сами, показывая его широкой аудитории, и в результате новые зрители будут подписываться на ваш аккаунт.
Процесс кажется простым, но для того чтобы он был систематичным, а не случайным, и чтобы каждое ваше новое видео «завирусило», вам необходимо знать и применять принципы вертикального контента.
Мой блог посвящен именно этому инструменту привлечения клиентов и выживания в бизнесе.
Есть три секрета, о которых мало кто говорит:
Во-первых, в России и СНГ эксперты массово применяют таргетированную рекламу для привлечения клиентов, в то время как на Западе такая практика не распространена.
Для западных экспертов это кажется странным, так как они всегда делали упор на качество контента, а не на "волшебные рекламные приемы".
Итак, основная цель моего блога - научить вас создавать такие видеоролики, которые привлекут подписчиков без затрат на рекламу.
Другой ключевой момент заключается в том, что аккаунты, которые успешно раскручиваются с использованием reels/shorts/клипов, об этом активно говорят.
Имеется высокий спрос на контент в формате reels/shorts/клипов, и пользователи социальных сетей находят это увлекательным и интересным, поэтому они с радостью его потребляют.
Сколько примеров успешных специалистов в узких областях, которые вдруг стали популярными благодаря использованию reels/shorts/клипов, вы можете назвать? Вероятно, не так уж и много, если вообще можете.
Второе важное направление моего блога - научить вас продвигаться не просто через reels/shorts/клипы, а с помощью вашего любимого дела.
Это поможет вам войти в 1% успешных пользователей, которые привлекают аудиторию и получают большое количество просмотров не из-за актуальности своей тематики, а благодаря качественному и привлекательному контенту.
И, наконец, третий важный секрет - даже если вы являетесь крутым специалистом и внимательно изучили все мои советы и задания в блоге, успех не гарантирован, если у вас отсутствует поддержка и обратная связь на ваш контент.
Еще одно важное направление моего блога - мы организовали регулярный бесплатный челлендж по VK Клипам, чтобы вы могли не только усвоить все тонкости применения reels/shorts/клипов, но и получить обратную связь от других участников.
Да, вы правильно поняли. Однако простое чтение здесь не поможет.
Потому что информация, которую я даю , и она легко доступна в интернете
В соавторстве с Сергеем Захаровым мы создали уникальный бесплатный челлендж по VK Клипам в социальной сети ВКонтакте, который регулярно проводится с нашей обратной связью.
Сергей Захаров - известный маркетолог ВКонтакте, с множеством успешных проектов, 4 бизнес-клубами и курсом "Математика Продвижения ВКонтакте".
Представьте, что происходит, когда объединяются два выдающихся профессионала?
Участники нашего бесплатного челленджа уже достигли крутых результатов в увеличении подписчиков, клиентов и заработанных деньгах.
Не упустите шанс присоединиться к нашему челленджу и увидеть результаты своими глазами.
На сегодня это все. Подпишитесь на нашу ленту, чтобы быть в курсе новостей. И обязательно присоединяйтесь к нам на наш следующий захватывающий челлендж.
Найти меня легко:
Вконтакте:
Сергей Шумилов
Сообщество ВК: Смм продвижение | Блог Сергея Шумилов
И в других соцсетях, ссылки в описании профиля
*Reels/Stories продукт Instagram
**Instagram принадлежит компании Meta, признанной экстремистской организацией и запрещенной в РФ
Офис:
Просыпаюсь рано утром.
Ем котлету, кофе пью,
И по первом каналу
гороскоп на день смотрю
В переполненной маршрутке
К окнам липну рожей.
От чего-то я не весел
В этот день погожий.
В монитор туплю часами,
Занимаясь черте чем
А в душе ежесекундно
Ненависть растет ко всем.
Телефон не умолкает,
Принтеры херачат
Нахрена на это все
Жизнь свою я трачу
А пошло оно все в жопу
Я не выйду на работу
Задолбали меня все
В о-фи-се!
Что недельный, что квартальный:
Все отчеты в унитаз.
Кто-то, сука, взял мой кофе,
Это был последний раз.
Меня бесят ваши лица,
Лживые улыбки
День, когда я встретил вас,
Был большой ошибкой
А пошло оно все в жопу
Я не выйду на работу
Задолбали меня все
В о-фи-се!
Я сварю кило пластида
В той кастрюльке, где был суп.
Я варить пластид умею,
Я читал Бойцовский клуб.
В пятницу в последний раз
Выйду на работу.
И счастливым безработным
Я проснусь в субботу.
А пошло оно все в жопу
Я не выйду на работу
Задолбали меня все
В о-фи-се!
Pioneer DDJ FLX4, имхо для таких ньюфагов в DJинге как я - самое то👍
Перешёл на него с Traktor Kontrol S2 mk3, доволен как слон.
Одна вакансия, два кандидата. Сможете выбрать лучшего? И так пять раз.
1) RDownload - бесплатный
2) Liquid Player - бесплатный пробный период на неделю, скачивание субтитров, удобней продолжать просмотр