LINUX.ORG.RU

Избранные сообщения superuser

Подскажите программу для управления мобильным устройством через Wi-Fi

Форум — Mobile

Подскажите программу для управления мобильным устройством через Wi-Fi. Нужно что-то типа радмина, но для мобильника. Не через инет. Желательно клиенты и для компа и для мобильника (но можно и для чего-то одного, если нет для обоих).
Кейс: обитаю на даче. В качестве роутера с вайфаем используется старый телефон на Android 6.0, приклеенный белым рулонным пластырем (внезапно, он хорошо держит) к окну террасы (там лучше сигнал). Хочу им управлять с компа или мобильника через wi-fi, а не бегать к нему за любым чихом вроде включения VPN.
Есть что-то работающее через локалку, а не тимвьюер?

 ,

Qwentor
()

хэш каждого мегабайта архива php bash

Форум — Development

Здравствуйте!
Подскажите как написать скрипт желательно на php, но можно и на bash.
Есть архив 21МБ, нужно посчитать хэш каждого мегабайта, то есть на выходе получить 21 хешей md5.

 , ,

kozanostra
()

Телефонный антиспам

Форум — Talks

Собственно, это уже где-то обсуждалось в толксах. Как я говорил, я запилил «антиспам» на основе астериска (chan_dongle & FXSO), который троллит звонящих рекламщиков и телемаркетойдов, тихо и мирно сидя на «резервном» номере и обещал мануал. Я его запилил

В тред призывается theNamelessOne.

 , ,

ncrmnt
()

[uvcvideo] Auto Exposure реально выключить?

Форум — General

Зависит от камеры или средствами драйвера можно отключить?

uvcdynctrl -c
Listing available controls for device video0:
  Brightness
  Contrast
  Saturation
  Hue
  Gamma
  Power Line Frequency
  White Balance Temperature
  Sharpness
  Backlight Compensation

Как видно самый тривиальный способ не катит...

$ v4l-info 

### v4l2 device info [/dev/video0] ###
general info
    VIDIOC_QUERYCAP
	driver                  : "uvcvideo"
	card                    : "iSlim 1320"
	bus_info                : "usb-0000:00:1d.7-4"
	version                 : 3.2.5
	capabilities            : 0x4000001 [VIDEO_CAPTURE,STREAMING]

standards

inputs
    VIDIOC_ENUMINPUT(0)
	index                   : 0
	name                    : "Camera 1"
	type                    : CAMERA
	audioset                : 0
	tuner                   : 0
	std                     : 0x0 []
	status                  : 0x0 []

video capture
    VIDIOC_ENUM_FMT(0,VIDEO_CAPTURE)
	index                   : 0
	type                    : VIDEO_CAPTURE
	flags                   : 0
	description             : "YUV 4:2:2 (YUYV)"
	pixelformat             : 0x56595559 [YUYV]
    VIDIOC_ENUM_FMT(1,VIDEO_CAPTURE)
	index                   : 1
	type                    : VIDEO_CAPTURE
	flags                   : 1
	description             : "MJPEG"
	pixelformat             : 0x47504a4d [MJPG]
    VIDIOC_G_FMT(VIDEO_CAPTURE)
	type                    : VIDEO_CAPTURE
	fmt.pix.width           : 640
	fmt.pix.height          : 480
	fmt.pix.pixelformat     : 0x47504a4d [MJPG]
	fmt.pix.field           : NONE
	fmt.pix.bytesperline    : 0
	fmt.pix.sizeimage       : 307200
	fmt.pix.colorspace      : SRGB
	fmt.pix.priv            : 0

controls
    VIDIOC_QUERYCTRL(BASE+0)
	id                      : 9963776
	type                    : INTEGER
	name                    : "Brightness"
	minimum                 : 0
	maximum                 : 255
	step                    : 1
	default_value           : 128
	flags                   : 0
    VIDIOC_QUERYCTRL(BASE+1)
	id                      : 9963777
	type                    : INTEGER
	name                    : "Contrast"
	minimum                 : 0
	maximum                 : 100
	step                    : 1
	default_value           : 0
	flags                   : 0
    VIDIOC_QUERYCTRL(BASE+2)
	id                      : 9963778
	type                    : INTEGER
	name                    : "Saturation"
	minimum                 : 0
	maximum                 : 200
	step                    : 1
	default_value           : 100
	flags                   : 0
    VIDIOC_QUERYCTRL(BASE+3)
	id                      : 9963779
	type                    : INTEGER
	name                    : "Hue"
	minimum                 : -180
	maximum                 : 180
	step                    : 1
	default_value           : 0
	flags                   : 0
Ничего нового :(
$ modinfo uvcvideo 
filename:       /lib/modules/3.2.5-030205-generic/kernel/drivers/media/video/uvc/uvcvideo.ko
version:        1.1.1
license:        GPL
description:    USB Video Class driver
author:         Laurent Pinchart <laurent.pinchart@ideasonboard.com>
srcversion:     8C7099B998ADA2049B68BD6
...
$ apt-cache show uvcdynctrl
Package: uvcdynctrl
Status: install ok installed
Priority: extra
Section: libs
Installed-Size: 83
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Architecture: i386
Source: libwebcam
Version: 0.2.1-1build1
...

Suntechnic
()

Запись видеопотока в виртуальное устройство v4l2loopback

Форум — Development

Суть такова, есть такой проект v4l2loopback, который представляет собой модуль ядра, который создаёт виртуальные V4L2 устройства, и в них можно писать видео и читать его обратно другими программами

https://github.com/umlaeute/v4l2loopback/

Проблема в том, что в документации V4L2 нету примеров кода для работы с OUTPUT девайсами, только разрозненные рекомендации в описаниях ioctl-ов. Примеры есть только для capture девайсов.

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

Подозреваю, что в v4l2loopback кривая и бажная реализация получения кадров через mmap, а мой код всё делает правильно, как в мануале. Но полностью в этом не уверен, ибо железных V4L2 ouput девайсов у меня в наличии нету и протестировать не могу, чтобы сравнить результаты.

Собственно, кому-нибудь из ЛОРовцев приходилось писать видео в V4L2 девайсы используя mmap (Streaming I/O в терминах V4L2)?

Примеры кода не гуглятся

 ,

Harald
()

Самый простейший и легковесный http-сервер?

Форум — Admin

Какой простейший и самый легковесный HTTP сервер вы можете посоветовать? Чтобы никаких лишних примочек, никакой поддержки интерпретаторов. Чтобы умел только показывать файлы и содержимое директории и занимал минимум памяти. Хочется воткнуть такой на Raspberry Pi.

 , ,

Rinaldus
()

Запись потока RTSP с уличной камеры в файл

Форум — Multimedia

Здравствуйте, коллеги!

Пытаюсь на коленках организовать запись с наружных камер видеонаблюдения на локальный HDD. Камеры простые, отдают поток RTSP по ссылке вида

rtsp://111.222.333.444:554/user=user&password=password&channel=1&stream=0?.sdp

В качестве граббера потока выбрал ffmpeg, который (теоретически) должен уметь выполнять конструкцию вида

/usr/bin/ffmpeg -i ‘rtsp://111.222.333.444:554/user=user&password=password&channel=1&stream=0?.sdp’ ~/Videos/cam01.mp4

Поток живой, VLC открывает и показывает с минимальной разумной задержкой (секунда-две). При этом ffmpeg пытается подключиться, пасует на UDP, переключается на TCP но и там отваливается по тайм-ауту со словами «Output file #0 does not contain any stream».

При этом, на этапе записи НЕ стоит задача перекодировки потока. Только захват и запись, остальное, при необходимости, можно будет выполнить позже. Для этого попробовал указать -vcodec copy -acodec copy, но ffmpeg version 3.4.7 Copyright (c) 2000-2019 the FFmpeg developers built with gcc 4.8.5 (GCC) 20150623 (Red Hat 4.8.5-39) отказался. Говорит: «Unknown decoder ‘copy’».

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

В общем, прошу помощи: как правильно должна выглядеть строка запуска ffmpeg под мою задачу?

Заранее признателен!

P.S. Сюда, по понятным причинам, выложить не могу, но, если кому-то будет нужно для исследования данной проблемы, в личку готов дать ссылку на реальный поток.

 , ,

root66
()

Создание виртуалки, на основе образа своего компа

Форум — Desktop

Всем привет. На машине стоит Ubuntu 18.04 с настроенным стеком программ для работы. Сейчас нужно перенести все это добро на отдельную виртуалку на сервер. Каким образом можно создать виртуальный открытый образ для того чтобы отзеркалиться?

 ,

full_nub
()

wine: перенаправить вызов с dll на нативный so

Форум — Development

Нужно перехватить вызовы к определенной dll и перенаправить на вызовы нативного в системе so. Набор API (названия функций и т.д.) полностью совпадают.

Как такое реализовать?

 , , ,

xDShot
()

Infra Red Scanner — свободный приёмник-передатчик IrDA-сигналов на базе Arduino

Новости — Hardware and Drivers
Группа Hardware and Drivers

Соджи Ямакава (Soji Yamakawa), профессор Университета Карнеги-Меллона и разработчик бесплатного авиасимулятора YSFlight, опубликовал исходники собственного приёмника-передатчика инфракрасных сигналов на базе Arduino, который позволяет записать IrDA-сигнал, а потом воспроизвести его.

Для работы с данным девайсом также разработано свободное кроссплатформенное ПО, которое может быть собрано как в варианте с GUI, так и в виде CLI-программы. Бинарные пакеты данного ПО подготовлены для ОС Windows.

ПРИМЕЧАНИЕ: Если кто сможет опакетить данное ПО с GUI для Debian 9.x - дайте ссылку на DEB в комментариях!

>>> Подробности

 , , , transmitter

atsym
()

Выбор паяльной станции

Форум — Talks

Господа, посоветуйте бюджетную паяльную станцию. Фен, подставки,крепеж вот это вот всё.


Перемещено leave из linux-hardware

 ,

Deleted
()

Кэш браузера в RAM

Форум — Desktop

На одной учетке потребовалось минимизировать хомяк. Ну сижу все разбрасываю. Думаю - кэш браузера в /tmp отрпавлю... И тут лисица полярная как выпрыгнет - я чего-то не понял или управлять местом хранения кэша в современном браузере больше никак? Ни в FF ни хромоподелиях не нашел настройки места хранения кэша. Только через параметр командной строки хрома, а в FF вообще никак? Опять юзать Opera 12?

Чьи проделки? Это из-за санкций или Поттеринг-собака вредит?

 , ,

Suntechnic
()

Как использовать Linux на eMMC

Форум — Linux-install

Здравствуйте уважаемые форумчане.

Купил себе ноутбук с eMMC без HDD. Возникли вопросы. - Как использовать и устанавливать Linux на eMMC. Какую фс использовать? Что делать со swap? Использовать ли дискард/трим? Используется ли в контроллере eMMC трим/дискард.И так далее и тому подобное. Давайте обсудим и поспорим. Обменяемся интересными ссылками по теме.

 , , ,

bigjim
()

правильные опции создания и монтирования ext4?

Форум — General

решил сделать абсолютно правильную ext4, создав её со всеми нужными опциями. цель: получить как можно более быструю фс, но без риска, что она испортится при сбое. прочитал маны, погуглил, и вот:

mke2fs -vjt ext4 -b 4096 -I 256 -E lazy_itable_init=1,nodiscard,resize=0 -O dir_index,ext_attr,extent,extra_isize,filetype,flex_bg,uninit_bg,uninit_groups,^journal_dev,^meta_bg,^resize_inode,^sparse_super /dev/sdXx
tune2fs -O ^dir_nlink !$

монтировать собираюсь со следующими опциями:

noatime,nodiratime,relatime,async,dirsync,noiversion,mand,acl,block_validity,nodelalloc,journal_data_ordered,user_xattr,journal_async_commit,barrier,block_validity,dioread_nolock,delalloc,auto_da_alloc,nodiscard

1. что скажут знатоки? может что-то лишнее, или чего-то не хватает? может есть ещё какие-то незадокументированные опции?
2. может кто-то посоветует определённые commit=, journal_iopriority=, max_batch_time=, inode_readahead=?
3. правильно ли я понимаю, что ext_attr и extra_isize нужны для ACL?
4. в tune2fs есть опция hash_alg= на выбор legacy, half_md4, tea, чем отличаются, и есть ли смысл менять?
5. что такое Fylesystem Flags? и что значит signed_directory_hash?
6. что делает tune2fs -E mount_opts=? на опции монтирования не влияет, принимает только одно любое слово
7. если вдруг понадобиться обеспечить также целостность данных, достаточно ли будет монтировать с journal_data? и нужно ли при этом убрать journal_data_ordered?
8. всё ли нормально будет работать с noatime,nodiratime,relatime? что делает strictatime, только возвращает дефолтное поведение atime?
9. что ещё посоветуете? стоит ли использовать e4rat?

 ,

teod0r
()

Как узнать количество пластин жёсткого диска средствами Linux?

Форум — Linux-hardware

Производитель заявляет что в HDD может быть две или три пластины, как можно узнать сколько пластин в диске?

 ,

just_a_brake
()

Как создать карту района города?

Форум — Talks

Ищу способ как мне склеить из кусков онлайн-карты графический файл карты района города(Бирюлёво) да еще в таком масштабе, чтобы читались названия улиц и домов, я хочу напечатать её на нескольких А4 листах либо на ватмане А1, только ни один из действующих на сегодня поставщиков онлайн-карт не дает такого функционала есть вот это вот https://yandex.ru/map-constructor/ , но оно не дает скачать карту в нужном размере и масштабе, как мне сделать это?

 ,

cheetah111v
()

Нестандартные таймкоды в контейнерах

Форум — Multimedia

Приветствую. Я хочу рассказать о таком явлении, как нестандартные (нелинейные) таймкоды. Они возможны во всех современных контейнерах: MKV, MP4, MPG/VOB, TS и частично AVI (там только в видеопотоке средствами кодера). Если аудиодорожка или видеодорожка отсутствует в определенный промежуток времени, но при этом она должна быть, то информация об отсутствующих фреймах/кадрах пишется в таймкод контейнера, чтобы воспроизводящие устройства (плееры, конвертеры) их учли и на их месте сгенерировали тишину в звуке (или дубликаты кадров в случае видео) для поддержания синхронизации видео и звука. Такие участки еще называют gaps, но бывают еще overlaps (перекрытия). Чтобы было понятнее, gaps это тоже самое, что delay (информация для плеера), только находится в середине файла, поэтому MediaInfo его не показывает.

Причины их возниковения:
1. Записывающее устройство (со спутника или эфира) в случае, если не успевает закодировать кадр во время, может вставить информацию о пропущенных кадрах в контейнер.
2. При склейке двух файлов, если в каком-то из них видео и аудио имеют немного разную длину, на местах склейки могут образовываться пустоты.
3. При редактировании (резке) без пересжатия в программах типа VideRedo, SolveigMM из-за того, что фреймы видео и аудио потоков не совпадают по времени, невозможно разрезать, чтобы видео и звук заканчивались одновременно, а дальше см. п. 2
4. Растяжка средствами контейнера является их подвидом.
5. Иногда пофайловое открытие VOBов из DVD, содержащего несколько видеозаписей, приводит к подобному эффекту.
6. Поврежденный видеофайл.
7. Сознательная диверсия.

Как программы реагируют на нестандартные таймкоды:
Плееры:
Как правило все плееры, в том числе аппаратные, их учитывают и воспроизводят файл без рассинхрона. Так как таймкоды (в том числе delay) являются спецификацией контейнера. Некоторые плееры (SMPlayer) могут на время потерять синхронизацию, но уже со следующего GOP она восстанавливается.

Муксеры:
mkvtoolnix и ffmpeg копируют таймкоды как есть.
Исключения: при сохранении в AVI, из-за его ограничений, таймкоды звуковых дорожек теряются и появляется рассинхрон. Таймкоды видеодорожки переносятся в extradata кодера (например, mpeg4). Чтобы избежать рассинхрона у ffmpeg есть опции -vsync cfr -async 1 (действуют только при пересжатии видео и звука, а не copy). При полном пересжатии без этих опций в форматы, отличные от AVI, ffmpeg копирует таймкоды в новый файл (то есть вся аномалия переносится на плечи плееров).
mkvtoolnix не учитывает таймкоды в MPG/VOB контейнерах, но они там встречаются редко (в этих контейнерах он учитывает только delay). MPG/VOB нельзя в нем открывать (через промежуточный MKV, полученный в MakeMKV или ffmpeg, можно). Баг рапорт https://gitlab.com/mbunkus/mkvtoolnix/issues/2612
tsMuxer игнорирует таймкоды. Учитывает delay только для MPG и TS.
eac3to с опцией -demux показывает наличие gaps и overlaps (иногда драматизирует) и корректирует, но только для звуковых дорожек (для видео ему пришлось бы делать decode/encode, хотя, мог бы через обратные значения звука), причем только поддерживаемых (Vorbis, например, исправлять не будет и даже ничего не покажет), с ограниченной точностью из-за размеров фреймов аудиопотоков.
UPD: повторные исследования показали, что eac3to ничего не корректирует, ничего не показывает или показывает ерунду (завышенные значения длины gap).

Конвертеры:
Здесь все не так радужно. Множество конвертеров их игнорируют (в лучшем случае корректируется только начальный delay), как правило это те, кто обрабатывает звук и видео отдельно, то есть сначала извлекает потоки, при этом информация о таймкодах, естественно теряется.
MeGUI исправляет только delay, таймкоды игнорирует. XviD4PSP5 возможно тоже (у меня уже нет Windows, чтобы проверить).
ffmpeg копирует таймкоды как есть (кроме звуковых дорожек в AVI), см. раздел муксеры. Рекомендуется пользоваться им.
ConvertToDVD игнорирует.
Handbrake основан на ffmpeg и учитывает. У него есть настройки CFR/VFR, использующие опцию -vsync.
Sony Vegas и Edius уважают таймкоды (у звука по крайней мере) только в MPG/VOB контейнерах, но не MP4(H.264). Впрочем, новые версии я не проверял.
Avidemux учитывает (но надежно работает только с mkv).

Демуксеры:
При извлечении дорожек из файла, таймкоды почти всегда теряются и появляется риск рассинхрона. Некоторые демуксеры умеют корректировать только delay.
Из mkvextract можно извлечь такой командой
mkvextract tracks input.mkv 1:output.ac3
mkvextract timecodes_v2 input.mkv 1:timecodes.txt
Потом при муксе в mkvtoolnix файл timecodes.txt нужно указать в соответствующем поле. При этом с извлеченной дорожкой ничего делать нельзя (кроме может быть пересжатия и простые операции, типа изменения громкости, цветокоррекция). То есть, ключевые параметры (fps, длительность) при миграции без пересжатия должны сохраняться.

Распространенные мифы:
Видео и звук надо обрабатывать отдельно.
На самом деле это чревато рассинхроном. Единственным надежным способом его избежать для звуковых дорожек, это излекать в ffmpeg с параметрами
ffmpeg -drc_scale 0 -i input.mkv -map 0:1 -c:a pcm_f32le -ac 2 -async 1 output.wav
-drc_scale отключает DRC компрессию в AC3, -ac 2 микширует в два канала. При необходимости убрать.

При перепаковке из контейнера X в контейнер Y, надо сначала излекать элементарные потоки и муксить с нуля.
На самом деле это чревато рассинхроном. Переносить потоки из одного контейнера в другой желательно напрямую, чтобы таймкоды скопировались. Или самостоятельно принимать методы по их ликвидации (по силам только для звука). tsMuxer'ом пользоваться нельзя.

GUI конвертеры лучше командной строки
Графические конвертеры имеют ограниченные настройки и как правило прячут от пользователя полезную служебную информацию. А, если не прячут, то она проскакивает слишком быстро и с ненужными строками (ffmpeg GUI).

Еще несколько замечаний:
1.При звуковой PAL-NTSC растяжке средствами контейнера, ffmpeg с опцией -async 1 хоть и не наделает рассинхрона, но звук будет испорчен постоянными микропаузами для поддержания синхронизации. В этом случае единственный вариант извлекать звуковую дорожку без учета таймкодов и самому перетягивать, при этом о fps перетяжки придется только догадываться и сравнивать в аудиоредакторе.
2. Опция -vsync cfr на файлах с переменной частотой кадров, полученных со смартфонов, породит дубли.

Как детектировать нестандартные таймкоды:
1.eac3to -demux покажет (не для всех аудиодорожек). UPD: полагаться на eac3to нельзя.
2. Долгий ручной вариант. Сделать перекодирование в легкий формат в AVI. В одном случае без опций -vsync -async (и лучше сначала распаковать на элементарные потоки, а потом упаковать для надежности и пережать), в другом случае напрямую с этими опциями. Потом в видеомонтажке сравнивать покадрово и по звуковой волне получившиеся два файла. Если таймкоды стандартные, файлы будут идентичны (вплоть до совпадения хэш суммы, если использовать опции -map_metadata -1 -map_chapters -1). Важно, чтобы это был именно AVI, чтобы монтажка не занималась излишней самодеятельностью с таймкодами сама.

Я хочу использовать мою любимую программу XviD4PSP5 для обработки видео
Если нестандартные таймкоды только в аудиодорожке, их может исправить ffmpeg с пересжатием. Если в видеодорожке, можно скормить XviD4PSP5 временный lossless файл:
ffmpeg -drc_scale 0 -i input.mkv -map 0:0 -map 0:1 -c:v libx264 -preset ultrafast -qp 0 -g 12 -vsync cfr -c:a pcm_s16le -af volume=-2dB -async 1 output.mkv

В 16 бит может быть клиппинг, -af volume для его предотвращения. С 32 bit PCM в MKV могут быть проблемы. В случае использования fixed point (16, 24 бита) при декоде или энкоде ffmpeg использует тихую матрицу микширования 5.1>2.0 (-ac 2).

Файлы для тестирования:
https://www.mediafire.com/file/ice1p92m21gzp98/gaps.7z/file

Как я обнаружил это явление:
Очень давно
При распаковке MKV появляется рассинхрон
http://forum.ixbt.com/topic.cgi?id=29:34519

Вывод:
Чтобы избежать проблем, пользуйтесь только ffmpeg, где все предусмотрено. Не сохраняйте в AVI. Для экспорта аудиоредакторам и видемонтажкам пользуйтесь опциями -vsync cfr -async 1

Enjoy.

 

videoinspector
()

Как получить цвета из дефолтной темы GTK+3?

Форум — Development

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

Старые методы, которыми полнится инет, не работают, а с CSS-темингом я пока не разобрался.

 , , ,

meliafaro
()

sed и замена символов в большом файле

Форум — General

Здравствуйте Столкнулся с проблемой что sed не отрабатывает на файле размером 15 гигабайт, на части этого файла отрабатывает. Не отрабатывает это значит что-то делает, ошибок нет, но файл не меняется.

задача была такая 1. заменить \n на ',' «концов строки» может быть несколько \n\n\n а запятая нужна одна, в самом конце запятая не нужна 2. в начале файла воткнуть 1 символ 3. в конец файла воткнуть 1 символ

в итоге файл с 111111 222222 333333

нужно было переделать в [11111,22222,33333] не меняя имени файла

нашел такие варианты(возможно не самые лучшие) sed -i -r ':a;N;$!ba;s/\n+/,/g' FILE; sed -i -e '1 s/^/[/;' FILE; echo «]» >> FILE

попробовал 1000 строк и 3 гигабайта и уже на этом объеме проблема, попробую найти размер с которого начинается проблема

 , , ,

Sintetik
()

Русские буквы в консоли(TTY) на Debian 9

Форум — General

Раньше все работало после установки пакета console-cyrillic. Так получилось, что с появлением systemd в дебиане я как-то не обращал на это внимание. Сейчас квадратики в TTY. Практически все перепробовал из нагугленного, помогает только setupcon. Совать в автозапуск его это костыль, хочется правильно. systemd-vconsole-setup насколько я понял в дебиане нет. В иксах все нормально с локалью. dpkg-reconfigure console-setup - настраивал.

Как правильно настроить русские буквы в TTY?

 , , ,

tm4
()