Vehicle Motion Cues

Apple рассказала о новых фишках, которые появятся в этом году (с выходом iOS 18), направленных для помощи людям с ограниченными возможностями — трекинг глаз, распознавание «нетипичной» речи и пр.

Но меня лично заинтересовала функция Vehicle Motion Cues — помощь тем, кого укачивает (например, в машине), так как я этим тоже страдаю.

Из описания Vehicle Motion Cues:

Исследования показывают, что укачивание обычно вызывается сенсорным конфликтом между тем, что человек видит и тем, что он чувствует, что может помешать некоторым пользователям комфортно использовать iPhone или iPad во время езды в движущемся транспортном средстве.

Используя датчики, встроенные в iPhone и iPad, Vehicle Motion Cues распознает, когда пользователь находится в движущемся транспортном средстве, и выводит анимированные точки по краям экрана, меняющие свое направление в противоположную сторону от движения автомобиля, что помогает уменьшить сенсорный конфликт,.

Эту функцию можно настроить на автоматическое отображение на iPhone или включить и выключить в Центре управления.

А вот как это должно будет выглядеть — автомобиль поворачивает вправо, точки начинают по экрану перемещаться влево. Когда машина ускоряется, то точки движутся назад.

Vehicle Motion Cues

Загрузка HLS / MPEG-DASH потоков через ffmpeg

Чтобы скачать с какого-то ресурса видепоток в формате HLS (манифест m3u8) или MPEG-DASH (манифест mpd) и сохранить, например, в MP4, то:

ffmpeg -i "<ссылка на видео>" -c copy <результирующий файл>.mp4

Замена аккумуляторов на Google Pixel и iPhone XS

В 2017 году приобрел тогда еще самый первый Google Pixel, и работал он верой и правдой, пока не перешел в 2020 на iPhone XS, но сам гуглфон продолжал использовать по рабочим делам. Через какое-то время аппарат стал быстро разряжаться (хватало лишь на пару часов), а вся система вести себя крайне тормознуто.

Нашел поблизости от себя мастерскую по ремонту, но там заявили, что аккумулятора для Google Pixel у них нет, т.к. модель очень старая и предложили купить его самому. Такой аккумулятор есть на Aliexpress (емкость 2770 мА·ч), но еще обнаружился и на Яндекс.Маркете, где его и приобрел за 750 руб. Сдал телефон с аккумулятором в ремонт, через пару дней получил обратно. По стоимости обошлось в 2800 руб. Теперь телефон разряжается не так быстро, но все равно при активном использовании проценты заряда уменьшаются на глазах. Возможно, что новый аккумулятор еще не «прокачался».

Затем решил провести замену аккумулятора и на iPhone XS — там износ аккумулятора по официальным данным составлял 86%, а через стороннюю команду «Battety Stats» даже 84%:

Your iPhone battery’s real stats:
MaximumFCC (original maximum capacity): 2716 mAh
NominalChargeCapacity (current maximum capacity): 2288 mAh
CycleCount (number of complete charge cycles): 256 cycles
Relative to when it was new, your battery capacity is 84,24%.

Заменил в iPort по промокоду BONUS за 4590 3590 руб. Аккумулятор хоть не оригинальный (навряд ли уже есть), но такой же емкости. И вот тут уже заряд держится хорошо.

[macOS] Увеличить размер шифрованного dmg-образа

Если нужно зашифровать какую-то директорию, то для этого в macOS можно использовать манипуляцию с образами — через Disk Utility выбираем создание нового образа «из папки». На этом же этапе можно выбрать опцию и шифрования. В дальнейшем, образ можно монтировать, когда есть в этом потребность.

Правда, обнаружил нюанс — образ создается с фиксированным размером, и при попытке что-то в него положить новое, приводит к ошибке о нехватке места. Ок, через Disk Utility можно также сделать Resize, но у меня эта попытка каждый раз выдавала ошибку.

А вот изменение размера через консоль сработало (в примере — до 800 МБ):

hdiutil resize -size 800m <путь до образа>

Конвертирование аудио через ffmpeg

Конвертирование всех аудио-файлов в директории, например, из ogg в формат aac:

find <директория> -type f -name "*.ogg" -exec ffmpeg -i {} -c:a aac -strict experimental -b:a 256k {}.aac \;

где -b:a 256k — значение битрейта

А если нужно в mp3 с максимальным качеством, то:

find /Users/bulkinav/Desktop/music -type f -name "*.aac" -exec ffmpeg -i {} -c:a libmp3lame -q:a 0 {}.mp3 \;

где -q:a 0 — значение качества от 0 до 9 (0 — самое высокое)

Вступительная музыка из фигурного катания на Первом канале

В сезоне 2023/2024 при выходе на лед участников соревнований по фигурному катанию, которые транслирует Первый канал, стало звучать динамичное музыкальное сопровождение, сразу понравившееся многим (в том числе спортсменам).

Вначале подумал, что это специально написаная композиция по заказу Первого канала, но оказалось все проще — Shazam подсказал, что это John Matthews — BoomBox Jazz, и в Apple Music такого нет, но есть тут и компиляция на YouTube:

Как указано в описании, композиция «доступна в свободном доступе для использования во всех телевизионных, видео, рекламных и игровых проектах и трансляциях», чем Первый канал и воспользовался.

[macOS] Xcode — Unable to boot the Simulator

Столкнулся с тем, что при попытке запуска симулятора возникает ошибка «Unable to boot the Simulator».

Решение, которое помогло — удаление кеша:

sudo rm -R ~/Library/Developer/CoreSimulator/Caches

Чтение больших файлов из архива

Есть RAR-архив с паролем, в нем текстовый файл размером ~4 ГБ, который после распаковки занимает ~120 ГБ.

Задача — посмотреть, что находится в файле, хотя бы какую-то часть данных (например, первые 100 строк).

Используем утилиту unar для распаковки:

unar e p<ПАРОЛЬ> <название архива>.rar <название файла в архиве>.txt> <имя файла для распаковки>.txt

В итоге на выходе получаем распакованный txt-файл. Открыть его «блокнотом» или чем-то похожем не получится — не хватит оперативной памяти. Поэтому вытащим только определенные строки:

head -n <число строк> <исходный файл>.txt > <результирующий файл>.txt

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

А узнать, сколько вообще строк в файле, можно так:

wc -l файл.txt

Вызов

Сколько пиара было по фильму «Вызов» (еще бы — отправили съемочную группу в космос, сняли, в принципе, неплохое кино), сколько его держали в прокате на «больших экранах» (аж пять месяцев, выжимали все, что можно), сколько «Первый канал» из всех утюгов рассказывал о съемках и прочем, и тем не менее, кассовые сборы даже близко не приблизились к «Чебурашке» (6 млрд рублей).

Куда интереснее то, что «По щучьему велению», вышедший в конце октября, смог за два месяца обойти «Вызов» по аудитории и кассовым сборам (где-то плачет грустный Константин Львович). При чем бюджет первого — 660 млн, а последнего — уже под миллиард (905 млн).

Конечно, не стоит забывать о факторе сезонности. Одно дело показывать фильм в период школьных каникул, другое — в мае, когда все разъезжаются по дачам. И тут вопросы к продюсером — могли же «Вызов» поставить и на Новый год 2023, но, видимо, был политический фактор, ведь на День космонавтики фильм презентовали аж самому президенту.

В общем, имеем то, что первый в мире фильм, снятый в космосе, показ кассу хуже, чем сказка про Емелю-дурочка.

Склейка видео / изменение громкости через ffmpeg

Имеется камера, пишет на SD-карту видеопоток, который представляет собой «куски» в формате MP4 по 1 минуте. Чтобы объединить их в одно итоговое видео, можно сделать так:

ffmpeg -f concat -safe 0 -i <(for f in /*.mp4; do echo "file '$f'"; done) -c copy output.mp4

Если нужно увеличить громкость аудио (например, на +20dB) и изменить битрейт, то:

ffmpeg -i input.mp4 -af "volume=20dB" -c:v copy -c:a aac -b:a 320k output.mp4

А так можно избавиться от шумов в аудио (но работает не всегда так, как ожидается — могут быть потеряны участки, где в этот момент, например, «щелчки»):

ffmpeg -i input.mp4 -af "afftdn=nr=10:nf=-30:tn=1" output.mp4

Так можно извлечь аудио (в примере — формат aac) из видео:

ffmpeg -i input.mp4 -c:a copy output.aac

Удалить аудио из видео:

ffmpeg -i input.mp4 -c:v copy -an output.mp4

Объединить видео с аудио:

ffmpeg -i input.mp4 -i input.aac -c copy output.mp4

Улучшить видео через шумоподавитель на основе вейвлетов:

ffmpeg -i input.mp4 -vf vaguedenoiser=method=1:threshold=4 output.mp4