LINUX.ORG.RU

Сообщения question4

 

Ликбез по неразрушающему редактированию при сжатии с потерями

Форум — Multimedia

Если формат сжимает с потерями, значит при каждом изменении и сохранении всё будет пережиматься, размываться, будут теряться детали, добавляться артефакты… Но я знаю, что есть исключения. Например, JPEG можно поворачивать на 90 градусов и зеркалить. Вообще JPEG состоит из независимых блоков 8х8 или 16х16, любой из которых можно менять или удалять, не затрагивая остальные. Видео и звук можно обрезать по ключевым фреймам — при склейке первый кадр после шва должен быть ключевым, хвост вообще можно обрезать где угодно. А что ещё?

Можно ли преобразовать JPEG в какой-то из новых форматов без перекодирования? Помимо JPEG XL.

Можно ли конвертировать друг в друга без перекодирования какие-либо из форматов, использующих вейвлетное сжатие: DjVu, JPEG2000, WebP и т.п.?

Можно ли обрезать у видео края кадров без перекодирования? Например, убрать пустое чёрное пространство, добавленное к горизонтальному видео, чтобы сделать его вертикальным.

Перемещено hobbit из talks

 , , , ,

question4
()

Твиттер пишут криворукие дебилы

Форум — Talks

На этот раз забанили в Твиттере. Успел только зарегистрироваться, отписаться от НАСА, отключить заблюривание небезопасных картинок и пролистать раздел Media одного пользователя года на полтора-два вниз. Выдаёт капчу, но не может её загрузить, так как https://client-api.arkoselabs.com/rtig/image?challenge=0&… выдаёт 403.

 ,

question4
()

5 гласных в алфавитном порядке. Как лучше считать?

Форум — Development

Наткнулся на лингвистический прикол: поиск слов, в которых есть все 5 гласных в алфавитном порядке. В случае английского это aeiou («y» не участвует, как дублирующая «i»), и таких слов довольно много. Для русского рассказывавший выбрал аиоуэ, и нашлась только «радиодуэль», которой нет в большинстве словарей.

Я решил тоже попробовать поискать. Питоном в первых попавшихся списках слов. Условия сделал чуть менее жёсткими: гласные должны быть в алфавитном порядке, и из каждой пары а-я, о-ё, у-ю, ы-и, э-е должна быть только одна буква.

Сделал так: из списка слов выбирается subset, в котором ровно по 1 гласной из каждой пары, затем регулярным выражением выбираются слова, где они в алфавитном порядке.

import re, zipfile, py7zr

def five_vowels(w): 
    return w.count('а') + w.count('я') == w.count('э') + w.count('е') == w.count('ы') + w.count('и') == w.count('у') + w.count('ю') == w.count('о') + w.count('ё') == 1

rex = '[^аеёиоуыэюя]*' + '[^аеёиоуыэюя]*'.join(['а*','е*','ё*','и*','о*','у*','ы*','э*','ю*','я*']) + '[^аеёиоуыэюя]*'
# '[^аеёиоуыэюя]*а*[^аеёиоуыэюя]*е*[^аеёиоуыэюя]*ё*[^аеёиоуыэюя]*и*[^аеёиоуыэюя]*о*[^аеёиоуыэюя]*у*[^аеёиоуыэюя]*ы*[^аеёиоуыэюя]*э*[^аеёиоуыэюя]*ю*[^аеёиоуыэюя]*я*[^аеёиоуыэюя]*', w)]

wordlist = zipfile.ZipFile('word_rus.zip').read('word_rus.txt').decode().split('\r\n')
subset = [w for w in wordlist if five_vowels(w)]
ordered = [ w for w in subset if re.fullmatch(rex, w)]
print(ordered)

wordlist = py7zr.SevenZipFile('russian-wordlist-inflections-1251.txt.7z').read(['russian-wordlist-inflections-1251.txt'])['russian-wordlist-inflections-1251.txt'].read().decode('cp1251').split('\n')
subset = [w for w in wordlist if five_vowels(w)]
ordered = [w for w in subset if re.fullmatch(rex, w)]
print(ordered)

Как-то можно это записать покороче?

 ,

question4
()

Кто-нибудь может это пояснить?

Форум — Talks

Дело было в конце мая, но постов на ЛОРе не было, вроде.

https://github.com/googleapis/elixir-google-api/commit/078b497fceb1011ee26e094029ce67e6b6778220

https://ipullrank.com/google-algo-leak

Вроде бы, случайно выложили документацию по API и ранжированию результатов. Из этого делают далеко идущие выводы.

Кто в этом разбирается, можете подтвердить или опровергнуть?

 ,

question4
()

Книга на LinkedIn

Форум — Talks

Когда-то проходил какой-то курс на Coursera. Сейчас пришло письмо, что курс издан в виде отдельного PDF под названием «30 algorithmic interview questions with solutions», дали ссылку на заблокированный в РФ сайт: https://www.linkedin.com/posts/alexanderskulikov_30-algorithmic-interview-questions-with-solutions-activity-7193703459714424832-ORWE Для скачивания нужен аккаунт с привязкой к телефону.

Кому интересно и не лень, можете сделать доброе дело и выложить в более доступном месте.

P.S. Пока тут: https://0x0.st/XPaH.pdf

 

question4
()

Вас когда-нибудь банили на livejournal.com по диапазону IP?

Форум — Talks

Попробовал скачать wget-ом один журнал. После 500М заблокировали. У кого опыт есть, это надолго?

 ,

question4
()

Глюки Kate со временем?

Форум — Desktop

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

В чём может быть дело?

lsof этот файл не видит. Я правильно понимаю, что Kate его при каждом сохранении открывает-закрывает и запоминает время?

P.S. Предыдущие несколько недель пользовался vim и mcedit, которые тоже отслеживают модификацию файла посторонними, но ни о чём не сигналили.

 ,

question4
()

Небольшой телефон с хорошей камерой

Форум — Talks

Нужен телефон, чтобы цеплять на руль велосипеда, чтобы смотреть карту. 10-дюймовый планшет для этого великоват. Водостойкость и ударопрочность полезны но некритичны. А вот возможность фотографировать в сумерках и ночью очень желательна.

Если он легко рутится или вообще есть рабочая свободная прошивка — совсем здорово.

 ,

question4
()

Синхронизировать 2 клипа в mpv

Форум — Multimedia

Хочу сравнить 2 видео. Для этого можно их запустить в mpv одно над другим:
mpv --lavfi-complex="[vid1][vid2]vstack[vo];[aid1][aid2]amix[ao]" klf.mp4 --external-file=klf.mpg
или
mpv --lavfi-complex="[vid1]scale=640x480[v1s];[v1s][vid2]vstack[vo];[aid1][aid2]amix[ao]" klf.mp4 --external-file=klf.mpg

Но в данном случае оказалось, что в начале klf.mp4 есть 10-секундная заставка. Как синхронизировать видео и аудио из разных файлов? В документации нашёл cue и adelay, но они не срабатывают, и готовых примеров не нашёл. Как задержать запуск 2-го файла на 10 секунд?

Ответ:

  1. Добавить пустой кусок видео можно фильтром tpad. Приостановить звук — adelay, указав паузу для каждой дорожки данного файла, либо с параметром all=1 для всех. Итоговый вариант:
    mpv --lavfi-complex="[vid2]tpad=start_duration=10:start_mode=add:color=black[v2p]; [vid1][v2p]vstack[vo];[aid2]adelay=delays=10s:all=1[a2p]; [aid1][a2p]amix[ao]" klf.mp4 --external-file=klf.mpg --keep-open=yes

  2. Но amix работает криво, и одна из дорожек запаздывает на труднопредсказуемое время. Заданные 10s не соблюдаются, и я не уверен, удастся ли подобрать длительность паузы, чтобы совпадающие были синхронными. В итоге звук пришлось сравнивать в kdenlive.

 ,

question4
()

С диска пропадают файлы

Форум — Linux-hardware

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

smartctl /dev/sdb -l error пишет «No Errors Logged».

e2fsck при плановом тестировании при перезагрузке ошибок не нашёл и ничего не восстановил.

$ mount | grep sdb1
/dev/sdb1 on / type ext4 (rw,noatime)

P.S. Ранее на этой же машине 2 раза пропадали файлы из ~/.local/share/kwalletd/

P.P.S. Сверил даты — оба аудиофайла пропали после неудачной установки клиента Zscaler, которая заодно убила утилиту ping. Но это не объясняет проблемы с KWallet.

P.P.P.S. Восстанавливать данные файлы не требуется — пароли вбил повторно, музыку скачал. Вопрос на будущее — как поймать удаление.

 , ,

question4
()

Установка Zscaler убила сеть

Форум — Admin

По работе поставил на домашнюю машину клиент Zscaler. Запустил его конфигуратор, который заругался на отсутствие systemctl(?) и чего-то debconf. После этого начались проблемы с сетью: уже открытые сайты работали, но новые не открываются, и ничего не пингуется. Админ предложил снести Zscaler и перезагрузиться — не помогло.

Ping, как выяснилось, работает только по IP и под рутом. Доменные имена не ресолвятся. Gentoo с OpenRC.

В чём проблема, как исправить?

Дополнение 1:

DNS отвалилось из-за замены /etc/resolv.conf на симлинк на /run/systemd/resolve/stub-resolv.conf. Восстановил из резервной копии.

Ошибка, которую выдаёт пинг без рута:

$ LC_ALL='C' ping 8.8.8.8
ping: socktype: SOCK_RAW
ping: socket: Operation not permitted
ping: => missing cap_net_raw+p capability or setuid?

Если добавить setcap CAP_NET_RAW+p /usr/bin/ping и даже setcap CAP_NET_RAW+i /usr/bin/ping или setcap CAP_NET_RAW+e /usr/bin/ping, как советуют на некоторых форумах, это не помогает.

Дополнение 2:
ping заработал после переустановки net-misc/iputils.

Дополнение 3:
За неделю новых проблем не появилось.

 , , zscaler

question4
()

nut-scanner не находит библиотеку

Форум — General

При запуске nut-scanner не находит libusb:

# nut-scanner
Cannot load USB library (/usr/lib64/libusb-1.0.so) : file not found. USB search disabled.

С этой библиотекой в Gentoo не всё просто:

# file /usr/lib64/libusb-1.0.so 
/usr/lib64/libusb-1.0.so: ASCII text
# file /usr/lib/libusb-1.0.so 
/usr/lib/libusb-1.0.so: symbolic link to libusb-1.0.so.0.3.0
# file /usr/lib/libusb-1.0.so.0.3.0 
/usr/lib/libusb-1.0.so.0.3.0: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, stripped
# file /lib64/libusb-1.0.so.0.3.0
/lib64/libusb-1.0.so.0.3.0: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, stripped

Нужна последняя, но как её скормить nut-scanner-у? LD_LIBRARY_PATH не помогла:

# LD_LIBRARY_PATH=/lib64 nut-scanner
Cannot load USB library (/usr/lib64/libusb-1.0.so) : file not found. USB search disabled.

P.S. sys-power/nut-2.8.0-r3 и dev-libs/libusb-1.0.26.

Итог: Из-за странного алгоритма поиска библиотеки остаётся только руками заменять /usr/lib64/libusb-1.0.so на симлинк на /lib64/libusb-1.0.so.0.3.0 и затем обратно. Возможно, в будущем будет работать LD_LIBRARY_PATH.

 , ,

question4
()

Какой программой сжимать VP9 и AV1 на GPU?

Форум — Linux-hardware

Сабж. Какие программы умеют хорошо сжимать видео на современных видеокартах в форматы AV1 и VP9?

В качестве ориентира скажу, что Avidemux при кодировании x264 с дефолтными настройками на Nvidia GeForce GT 710 всё неприемлемо размазывает.

 , ,

question4
()

Узнать размер зеркала без скачивания

Форум — General

Есть сайт со статическим HTML и кучей рисунков. Например, http://ohbah.com/comicget/comics/ Интересно узнать, каков будет его объём на диске после скачивания wget-ом. В интернете нашёл совет:

wget2 --recursive  -erobots=off --no-parent --spider --server-response http://example.com/folder/1/2/3/ 2>&1 | grep -i content-length | gawk '{sum+=$2}END{print sum/1e6}'

Но таким образом не выводится объём изображений, который там на порядки больше, чем HTML. Добавление ключа --page-requisites ничего не меняет.

Если выводимый wget текст сохранить в файл, взять pcregrep -o1 'Adding URL: (.*)' и скормить URL-ы curl -IL, будут размеры изображений, но не будет размеров части HTML-файлов.

Существует ли менее костыльное решение?

 ,

question4
()

Три монитора без иксов

Форум — General

Можно ли использовать 3 монитора в ядерной консоли для разных tty? Сейчас у меня на все три выводится одно и то же (причём ширина соответствует самому узкому из мониторов).

 ,

question4
()

Наткнулся на свободные игры на RenPy

Форум — Games

Исходники хостятся на собственном сервере Gitea: https://git.cavemanon.xyz/Cavemanon

Визуальные романы. 3 коротких, 2 подлиннее. Скрипты — под лицензией Affero 3, картинки и музыка — Affero, CC-BY-SA, CC0. Есть и бинарные сборки:

Snoot Game https://snootgame.xyz
Скандально известная пародия на игру Goodbye Volcano High, которая пыталась выехать на LGBTQ+ повестке и антропоморфных динозаврах. Коллективное творчество с 4chan.
Выпускной класс, безликий (в буквальном смысле) новенький Анон И. Мус, небинарная гитаристка-скандалистка. Можно убедить её сменить ориентацию на гетеросексуальную. Или довести до расстрела школы. Или оставить всё как есть.
Приятная гитарная музыка, похожая на Wallflowers и Dire Straits.

I Wani Hug that Gator! https://cavemanon.itch.io/i-wani-hug-that-gator-demo
Спинофф от тех же авторов со снижением накала драмы. Безликий новенький Инко Г. Нито и мрачная художница в инвалидном кресле. Игра в процессе написания. Кстати, это не аллигатор, а барионикс.

A Star in Her Eyes https://cavemanon.itch.io/a-star-in-her-eyes
She Likes You Alotl https://cavemanon.itch.io/she-likes-you-alotl
She’s a bit sluggish https://cavemanon.itch.io/shes-a-bit-sluggish
Предельно простые симуляторы свиданий с персонажами из замороженной игры Exit 665.

 

question4
()

Что сейчас в России с бытовыми ИБП?

Форум — Linux-hardware

На новой квартире примерно раз в пару недель мигает электричество. Надоело каждый раз восстанавливать несохранённое. Можете посоветовать дешёвый бесперебойник, обеспечивающий 500 Вт?

Первые попавшиеся на Яндекс-маркете — ExeGate и CBR. Про них беглый поиск ничего не нашёл — ни хорошего, ни плохого. Дальше — PowerCom, ими, вроде, кто-то успешно пользуется некоторыми моделями. Можете про них что-то сказать? Или есть советы получше?

 

question4
()

Регулярные ошибки PR_IO_TIMEOUT_ERROR

Форум — Linux-org-ru

Уже несколько часов примерно каждый десятый клик по ссылке на ЛОРе выдаёт ошибку в Фаерфоксе:

Время ожидания соединения истекло

При соединении с www.linux.org.ru произошла ошибка. PR_IO_TIMEOUT_ERROR

Код ошибки: PR_IO_TIMEOUT_ERROR

Что-то с сервером? Или у меня проблемы?

 

question4
()

FoxyProxy перехватывает сайты не из белого списка

Форум — Desktop

Я настроил FoxyProxy в фаерфоксе направлять запросы к нескольким сайтам по шаблонам через TOR-прокси, включая запросы DNS. TOR я включал только когда заходил на эти сайты.

Но время от времени при попытке войти на некоторые сайты, включая teams.microsoft.com и reddit.com, получаю ошибку «Прокси-сервер отказывается принимать соединения». Если включаю прокси или отключаю FoxyProxy — всё работает. В чём проблема? Почему FoxyProxy обрабатывает обращения не из белого списка?

Oтвет: Судя по журналу FoxyProxy, шаблон t.co обрабатывается как *t.co* и применяется к microsoft.com и reddit.com. Шаблон *://t.co/ таких проблем не вызывает.

 , foxyproxy,

question4
()

После перезагрузки нет звука

Форум — Linux-hardware

Gentoo. Несколько недель аптайма, неоднократно апдейтился, не перезагружаясь. Помимо прочего, пересобирал Firefox с поддержкой pipewire вместо apulse, перезапускал, работало. Медиаплееры тоже апдейтил и перезапускал, работали.

На сутки выключил машину, сейчас включил, и звук нигде не работает. Куда копать?

Результат alsa-info.sh: https://pastebin.com/PAMmUP9v (Вкратце: чип на материнской плате и HDMI, колонки на первом.)

Фаерфокс при проигрывании звука пишет:

[Child 6948, MediaDecoderStateMachine #4] WARNING: 7f9929fbf280 Could not set cubeb stream name.: file /var/tmp/portage/www-client/firefox-115.5.0/work/firefox-115.5.0/dom/media/AudioStream.cpp:321

mplayer:

couldn't open play stream: Device or resource busy
ao2: can't open sndio

Дополнение: Пока выяснил, что при загрузке запустились 2 процесса pipewire, и было видно устройство PulseAudio. После того, как я убил pipewire, плееры смогли работать через ALSA. Звука в Фаерфоксе пока нет, так как ему нужен PulseAudio.

Дополнение 2: Каким-то образом я пропустил стадию «пересобрать мир с USE=‘pulseaudio’». После её выполнения:

  1. При выключенном gentoo-pipewire-launcher плееры нормально играют через ALSA, Firefox при проигрывании видео выдаёт ошибку «OpenCubeb() failed to init cubeb».
  2. При включённом от рута gentoo-pipewire-launcher MPV выдаёт ошибку «ALSA lib /var/tmp/portage/media-plugins/alsa-plugins-1.2.7.1-r1/work/alsa-plugins-1.2.7.1/pulse/pcm_pulse.c:758:(pulse_prepare) PulseAudio: Unable to create stream: Timeout», Firefox надолго задумывается и выдаёт ту же ошибку cubeb дважды.
  3. При включённом от пользователся gentoo-pipewire-launcher MPV играет через Pipewire, Firefox играет видео без ошибок cubeb. Но ничего не слышно.
  4. В последнем случае wpctl status выдаёт следующее:
$ wpctl status
PipeWire 'pipewire-0' [1.0.0, oleg@jet, cookie:679913454]
 └─ Clients:
        31. pipewire                            [1.0.0, oleg@jet, pid:14327]
        33. WirePlumber                         [1.0.0, oleg@jet, pid:14320]
        34. WirePlumber [export]                [1.0.0, oleg@jet, pid:14320]
        45. Firefox                             [1.0.0, oleg@jet, pid:13488]
        55. mpv                                 [1.0.0, oleg@jet, pid:18703]
        61. wpctl                               [1.0.0, oleg@jet, pid:18721]

Audio
 ├─ Devices:
 │      44. Cayman/Antilles HDMI Audio [Radeon HD 6930/6950/6970/6990] [alsa]
 │  
 ├─ Sinks:
 │  *   49. Cayman/Antilles HDMI Audio [Radeon HD 6930/6950/6970/6990] Цифровой стерео (HDMI) [vol: 1.00]
 │  
 ├─ Sink endpoints:
 │  
 ├─ Sources:
 │  
 ├─ Source endpoints:
 │  
 └─ Streams:
        50. Firefox                                                     
             52. output_FL       > HDMI 0 *:playback_FL [init]
             54. output_FR       > HDMI 0 *:playback_FR [init]
        56. mpv                                                         
             57. output_FR       > HDMI 0 *:playback_FR [active]
             59. output_FL       > HDMI 0 *:playback_FL [active]

Video
 ├─ Devices:
 │  
 ├─ Sinks:
 │  
 ├─ Sink endpoints:
 │  
 ├─ Sources:
 │  
 ├─ Source endpoints:
 │  
 └─ Streams:

Settings
 └─ Default Configured Node Names:

Правильно ли я понимаю, что pipewire-pulseaudio играет звук через видеокарту вместо материнской платы? Как переключить? Как зафиксировать это перманентно?

И как запускать gentoo-pipewire-launcher под пользователем, если он запускается из *.desktop-файла при старте KDE?

Дополнение 3: Перезагрузил систему после пересборки. Теперь gentoo-pipewire-launcher запускается от того пользователя, который запускает иксы. Видимо, в прошлый раз не были прописаны какие-то права. Остался вопрос: как переключить PulseAudio на материнскую плату?

Дополнение 4: Как выяснилось, SDL2 была собрана с -pulseaudio и -pipewire.

Дополнение 5: fuser -v /dev/snd/* показало, что все устройства держит timidity. После отключения демона Timidity++ стали видны другие карты:

$ wpctl status
PipeWire 'pipewire-0' [1.0.0, oleg@jet, cookie:48267698]
 └─ Clients:
        31. pipewire                            [1.0.0, oleg@jet, pid:20833]
        33. WirePlumber                         [1.0.0, oleg@jet, pid:20826]
        34. WirePlumber [export]                [1.0.0, oleg@jet, pid:20826]
        51. Firefox                             [1.0.0, oleg@jet, pid:3822]
        60. mpv                                 [1.0.0, oleg@jet, pid:7113]
        71. wpctl                               [1.0.0, oleg@jet, pid:7138]

Audio
 ├─ Devices:
 │      42. Встроенное аудио     [alsa]
 │      44. Cayman/Antilles HDMI Audio [Radeon HD 6930/6950/6970/6990] [alsa]
 │  
 ├─ Sinks:
 │  *   41. Встроенное аудио Аналоговый стерео [vol: 0.40]
 │      49. Cayman/Antilles HDMI Audio [Radeon HD 6930/6950/6970/6990] Цифровой стерео (HDMI) [vol: 1.00]
 │  
 ├─ Sink endpoints:
 │  
 ├─ Sources:
 │  *   40. Встроенное аудио Аналоговый стерео [vol: 1.00]
 │  
 ├─ Source endpoints:
 │  
 └─ Streams:
        58. Firefox                                                     
             53. output_FR       > ALC887-VD Analog:playback_FR [init]
             55. output_FL       > ALC887-VD Analog:playback_FL [init]
        61. mpv                                                         
             62. output_FL       > ALC887-VD Analog:playback_FL [active]
             63. output_FR       > ALC887-VD Analog:playback_FR [active]
        66. Firefox                                                     
             67. output_FL       > ALC887-VD Analog:playback_FL [active]
             68. output_FR       > ALC887-VD Analog:playback_FR [active]

Video
 ├─ Devices:
 │  
 ├─ Sinks:
 │  
 ├─ Sink endpoints:
 │  
 ├─ Sources:
 │  
 ├─ Source endpoints:
 │  
 └─ Streams:

Settings
 └─ Default Configured Node Names:

Фаерфокс, MPV и VLC стали нормально проигрывать звук. Mplayer почему-то стал играть один из файлов в 2 с небольшим раза быстрее. Потом пришёл в норму.

Следующий вопрос: как подружить pipewire с timidity? Не то, чтобы я им много пользовался, но перфекционизм давит.

Дополнение 6: И с media-video/pipewire[-pipewire-alsa], и с media-video/pipewire[pipewire-alsa], если они уже загружены, timidity не запускается.

Неполный ответ: Нужно убедиться, что всё сделано строго по https://wiki.gentoo.org/wiki/PipeWire (USE, группы, rtkit), отключить Timidity и перезагрузиться.

 , , ,

question4
()

RSS подписка на новые темы