• Существует ли микросхема - диктофон с записью на microSD?

    @Getman_s
    Разработчик с опытом более 30 лет
    Можно использовать микросхему VS1063A-L. Есть пример проекта VS1063 Standalone Player/Recorder - VSIDE. Вообще, для реализации программного mp3 кодирования нужен довольно мощный микроконтроллер (например, STM32F407). Если хочется просто сделать диктофон с записью на SD-карту и не стоит задача очень экономно расходовать память, то лучше использовать не MP3, а ADPCM кодирование.
    Ответ написан
    Комментировать
  • Как определить "качество видео" через ffmpeg?

    Denormalization
    @Denormalization
    Проще использовать mediainfo:
    mediainfo --Inform="Video;%Width%x%Height%" file.avi
    Ответ написан
    Комментировать
  • Как определить "качество видео" через ffmpeg?

    @monah_tuk
    ffmpeg -i lightning-timezones.mkv
    Guessed Channel Layout for  Input Stream #0.1 : stereo
    Input #0, matroska,webm, from 'lightning-timezones.mkv':
      Metadata:
        ENCODER         : Lavf56.15.102
      Duration: 00:02:21.61, start: 0.067000, bitrate: 442 kb/s
        Stream #0:0: Video: h264 (High 4:4:4 Predictive), yuv444p, 1920x1080, SAR 1:1 DAR 16:9, 29.97 fps, 29.97 tbr, 1k tbn, 59.94 tbc (default)
        Metadata:
          ENCODER         : Lavc56.13.100 libx264
        Stream #0:1: Audio: pcm_s16le, 48000 Hz, 2 channels, s16, 1536 kb/s (default)


    конкретно:
    Stream #0:0: Video: h264 (High 4:4:4 Predictive), yuv444p, **1920x1080**, SAR 1:1 DAR 16:9, **29.97** fps, 29.97 tbr, 1k tbn, 59.94 tbc (default)


    Выделенное **ITEM**, первое разрешение, второе - FPS, DAR - Display Aspect Ratio - соотношение сторон картинки (подробнее про SAR, DAR, PAR: https://en.wikipedia.org/wiki/Pixel_aspect_ratio).

    144p это не качество, а кодировка разрешения: 176×144 прогрессивная развёртка. Я могу вам сделать 1080p такого отвратительного вида, что вас тошнить будет от одного воспоминания. Обычно такой вид используется для представления разрешения по низкой стороне, а p или i после - прогрессивная или межстрочная развёртка (прогрессивная - полный кадр, FPS 1:1, межстрочная - в каждом кадре два (в теоретически и больше) полукадра, которые потом хитрыми алгоритмами восстанавливаются до полного кадра, чем увеличивают FPS на выходе в 2 раза). Одно такое кодирование может скрывать несколько разрешений, к примеру: 1080p это и 1920x1080 и 1440x1080, в обоих случаях DAR 16:9, а вот SAR в первом случае 1:1, а во втором 1.33:1. Или 720p, помимо популярного 1280x720 (DAR 16:9, SAR 1:1), это может быть 960x720 при DAR 4:3 и SAR 1:1 или, так же 960x720 при DAR 16:9 и SAR 1.33:1

    Забыл написать про ffprobe - используйте его. Если есть ffmpeg, есть и он:
    ffprobe -v 0 -select_streams v -print_format flat -show_format -show_streams /home/alexd/thunderbird-timezones-fix.mkv

    в качестве параметров "-print_format" можете указывать: flat, json, xml, csv, compact, ini - что вам покажется удобнее. "-select_streams" позволяет выбрать стримы по любому критерию, поддерживаемому ffmpeg: v - video, a - audio, # - по номеру и т.д. Пример выхлопа:
    streams.stream.0.index=0
    streams.stream.0.codec_name="h264"
    streams.stream.0.codec_long_name="H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10"
    streams.stream.0.profile="High 4:4:4 Predictive"
    streams.stream.0.codec_type="video"
    streams.stream.0.codec_time_base="1001/60000"
    streams.stream.0.codec_tag_string="[0][0][0][0]"
    streams.stream.0.codec_tag="0x0000"
    streams.stream.0.width=640
    streams.stream.0.height=480
    streams.stream.0.coded_width=640
    streams.stream.0.coded_height=480
    streams.stream.0.has_b_frames=2
    streams.stream.0.sample_aspect_ratio="1:1"
    streams.stream.0.display_aspect_ratio="4:3"
    streams.stream.0.pix_fmt="yuv444p"
    streams.stream.0.level=30
    streams.stream.0.color_range="N/A"
    streams.stream.0.color_space="unknown"
    streams.stream.0.color_transfer="unknown"
    streams.stream.0.color_primaries="unknown"
    streams.stream.0.chroma_location="left"
    streams.stream.0.timecode="N/A"
    streams.stream.0.refs=4
    streams.stream.0.is_avc="1"
    streams.stream.0.nal_length_size="4"
    streams.stream.0.id="N/A"
    streams.stream.0.r_frame_rate="30000/1001"
    streams.stream.0.avg_frame_rate="30000/1001"
    streams.stream.0.time_base="1/1000"
    streams.stream.0.start_pts=67
    streams.stream.0.start_time="0.067000"
    streams.stream.0.duration_ts="N/A"
    streams.stream.0.duration="N/A"
    streams.stream.0.bit_rate="N/A"
    streams.stream.0.max_bit_rate="N/A"
    streams.stream.0.bits_per_raw_sample="8"
    streams.stream.0.nb_frames="N/A"
    streams.stream.0.nb_read_frames="N/A"
    streams.stream.0.nb_read_packets="N/A"
    streams.stream.0.disposition.default=1
    streams.stream.0.disposition.dub=0
    streams.stream.0.disposition.original=0
    streams.stream.0.disposition.comment=0
    streams.stream.0.disposition.lyrics=0
    streams.stream.0.disposition.karaoke=0
    streams.stream.0.disposition.forced=0
    streams.stream.0.disposition.hearing_impaired=0
    streams.stream.0.disposition.visual_impaired=0
    streams.stream.0.disposition.clean_effects=0
    streams.stream.0.disposition.attached_pic=0
    streams.stream.0.tags.ENCODER="Lavc56.13.100 libx264"
    format.filename="/home/alexd/thunderbird-timezones-fix.mkv"
    format.nb_streams=1
    format.nb_programs=0
    format.format_name="matroska,webm"
    format.format_long_name="Matroska / WebM"
    format.start_time="0.067000"
    format.duration="84.451000"
    format.size="80212"
    format.bit_rate="7598"
    format.probe_score=100
    format.tags.ENCODER="Lavf56.15.102"
    Ответ написан
    1 комментарий
  • Минимальные требования к серверу для работы с ffmpeg+nginx?

    @Sergey78
    Малина не потянет к сожалению.
    Я пробовал с PI3. Писал в ram-диск, но все равно слишком тормозило и видео файлы получались "битые". Если правильно помню, картинка была 1280х720.
    Так же пробовал ставить Motion eye и записывать видео на внешний hdd. Тоже вообщем не работоспособно даже с одной камерой и небольшим fps.
    У меня камера висит удаленно без инфраструктуры, поэтому PI с gsm модемом было очень удобно размерами. В итоге сделал просто получение картинки с камеры раз в минуту и отправку по ftp на vds.
    Ответ написан
    Комментировать
  • Как прочитать память ядра на процессоре Intel используя уязвимость meltdown?

    kirill89
    @kirill89 Автор вопроса
    Кому интересно, изучил множество рабочих примеров в сети, нашел один адекватный. Сильно упростил, добавил комментариев, положил тут. Пока еще изучаю и дополняю, но в целом ответ на мой вопрос нашел.
    Ответ написан
    2 комментария
  • Как обойти блокировку VPN провайдером?

    pavelcarcass
    @pavelcarcass
    ИТ-менеджер из г. Иркутска
    SSH туннель попробуй использовать. Будет работать всё, что умеет использовать Socks5 для подключения.
    Гайд, как поднять ssh туннель из-под винды при помощи PuTTY https://putty.org.ru/articles/putty-ssh-tunnels.html

    В linux это даже еще проще:

    ssh -D localhost:12345 логин@сервер -N

    Софт настраиваем на Socks5-прокси с адресом localhost (127.0.0.1) и портом 12345.
    Ответ написан
    3 комментария
  • Как обойти блокировку VPN провайдером?

    Jump
    @Jump
    Системный администратор со стажем.
    Используйте SoftEther - там поддерживается куча VPN протоколов, в том числе и свой встроенный.
    Этот самый встроенный протокол базируется на SSL и неотличим от https для всяких анализаторов трафика, работает очень шустро.
    Ответ написан
    4 комментария
  • В каких случаях вы использовали Redis?

    @chronic86
    Ruby on Rails junior
    1. Хранилище сессий и профилей пользователей;
    2. Сервер очередей, плюс держим в уме механизм publish/subscribe;
    3. Полноценная замена Memcached, притом в случае с Redis мы получим репликацию, более длинные ключи и значения, возможность восстановления кэша с диска и тп;
    4. Место для хранения количества пользователей онлайн, кодов капч, различных флагов, саджестов поисковых запросов;
    5. СУБД для небольших приложений — сокращалок ссылок, имиджбордов, возможно даже блогов;
    6. Роль «словаря» в шардинге, то есть сервер, который знает, какие шарды на каких серверах искать;
    7. Хранилище промежуточных результатов вычислений при обработке больших объемов данных;


    eax.me/redis
    Ответ написан
    Комментировать
  • За кем следить на GitHub?

    JSinga
    @JSinga
    Итак попытаемся разобраться и сделать это логично:
    Мы любим фронтенд значит нам нужно что то на языке JavaScript - ищем на гитхабе проекты с большим кол-вом звездочек и все еще "живые":
    github.com

    Смотрим неколько проектов и смотрим там на контрибьюторов которые внесли много коммитов результат:
    pazguille
    getify
    spicyj
    hhaidar
    nolimits4web

    То же самое для html:
    PaulKinlan
    hubgit
    Ms2ger
    LeaVerou - обратите внимание это девочка и еще и из MIT
    davelab6
    enaqx

    Попутно смотрим в какие группы эти ребята входят и отмечаем инетересные
    reactjs
    html5rocks
    GoogleChrome

    Ну алгоритм вам надеюсь понятен, дальше можно просматривать бесконечно!
    Ответ написан
    1 комментарий
  • Возможна ли прослушка телефонного разговора на базе андроид?

    DrZ0idberg
    @DrZ0idberg
    Android-разработчик. Стаж - возраст Android.
    На Андроиде без рута в общем случае не получится такое реализовать. То есть теоретически то написать можно, но решение будет не массовое и очень по разному будет работать на разных устройствах.
    Ответ написан
    Комментировать
  • Как seo-продвинуть сайт без денег?

    ArtDenis
    @ArtDenis
    Разработчик сайтов и мобильных приложений
    Посмотрите разметки - schema-org.
    Сделайте чтобы сайт работал быстро - pagespeed
    Зарегистрируйте сайт на Яндекс Вэбмастер и Гугл Вэбмастер. Посмотрите их рекомендации.
    Сделайте чтобы сайт был без ошибок.
    Проверьте заголовки, описание, ключевые слова (необязательно), чтобы таблицы были в table, списки в ul и т.д.
    Добавьте sitemap.xml, robots.txt, dublin.rdf, .htaccess.
    Добавьтесь в Яндекс Карты, Гугл Карты. В Яндекс Каталог (Если добавят, то вы круто подниметесь вверх)

    А затем просто тупо регистрируйте его на множестве площадках, лучше если это не будут порносайты, а еще лучше если это будут сайт по схожей тематике сайта)
    Кстати, последнее, если будете регистрировать на торговых площадках, то возможно клиенты будут еще звонить с них, но это уже не относится к SEO.
    Ответ написан
    2 комментария
  • Как использовать Leaflet оффлайн?

    @ssssergey Автор вопроса
    В общем, благодаря ответу ittim мне удалось дойти до 3 пункта из его списка.
    Просто хочется поподробнее раскрыть первые два пункта для тех кому интересно.
    1. С сайта extract.bbbike.org скачивается нужный вам фрагмент карты. Там в поле:
    - "Format" выбираете "OSM XML 7z";
    - "Your email adress" вписываете ваш адрес почты, на которую они пришлют фрагмент карты;
    - "Name of area to extract" - как-нибудь обзовите фрагмент;
    Потом идет кнопка Extract. Ее пока пропускаете. А нажимаете на кнопку поменьше и пониже "here". Ну естественно перед этим нужно навести карту справа на необходимое место. Если промахнулись ничего страшного. Нажимаете на появившуюся кнопку "Select a different area" и все возвращается в исходное положение. После того как вы убедились, что оранжевый прямоугольник покрывает необходимый участок нажимаете "Extract". Все. В течение получаса на вашу почту придет ссылка, по которой вы скачаете свой фрагмент.
    2. Скаченные фрагмент это не картинка, а XML данные, которые нужно преобразовать в картинки (tiles). Для этого с сайта maperitive.net скачиваете программку. Запускаете. Заходите File->Open map sources, выбираете скачанный XML фрагмент (предварительно распакованный). Программка задумается ненадолго (в зависимости от размера файла). Заходите в Tools->Generate Tiles. После этого программка будет думать еще дольше. По завершению в папке Tiles внутри программной папки появятся те самые тайлы в формате png.
    3. Оказалось, что сервер можно не поднимать. Просто прописываете ссылку на папку с тайлами. Например: d:/Tiles//{z}/{x}/{y}.png

    P.S. Оказалось можно пропускать 1 пункт и делать тайлы прямо из программки Maperitive.
    P.P.S. Программка Maperitive оказалась непростой. В нижней части имеется поле командной строки, которое позволяет осуществлять гибкую настройку. Например, по умолчанию осуществляется рендеринг пяти уровней зума, но если написать в командной строке generate-tiles minzoom=8 maxzoom=18, то можно зум рендерится с 8 до 18 уровней.

    P.P.P.S. Оказалось, что 1 пункт (т.е. локальная подгрузка стороннего источника карт) все-таки необходим, если вы хотите видоизменять карту, применяя так называемые Правила (Rules). Встроенная карта на эти изменения не реагирует. В частности, я пытался сделать так, чтобы названия иностранных населенных пунктов (ну например турецких) отображались на русском или английском, но не на турецком. Или чтобы аэропорты были подписаны. Так вот это удалось сделать только подгрузив карты из локального источника.
    Ответ написан
  • Как использовать Leaflet оффлайн?

    @ittim
    Можно реализовать с картой OpenStreetMaps.
    1. Скачать нужный фрагмент карты extract.bbbike.org в формате OSM.
    2. Нужно отрендерить тайлы. Вот список приложений для рендеринга wiki.openstreetmap.org/wiki/RU:Rendering. Простой в использовании maperitive.net/.
    3.На локальном вэб-сервере разместить папку с тайлами.
    4. ссылка в Leaflet http://localhost/Tiles/{z}/{x}/{y}.png
    Ответ написан
    2 комментария
  • Можно ли использовать вытащить и использовать gsm модуль из телефона для хобби проекта?

    @Eugeniy2014
    Найдите сотовые телефоны сименс-начиная с с45 -поддерживают режим АТ команд.
    Ответ написан
    Комментировать
  • Как отправить сообщение в Facebook с предзаполненным текстом или ссылкой на инвайт?

    AMar4enko
    @AMar4enko
    У меня знакомый iOS-разработчик пытался сделать отправку сообщения с контентом в Facebook.
    Единственный вариант, который он нашел - это через их SDK, который для этого использует их официальное приложение. Если оно не установлено - все, приплыли.
    Ответ написан
    1 комментарий
  • Чем можно заменить встроенный opcache в php 5.5?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    даунгрейд до 5,4 и APC.

    Попробуйте так же поиграться с opcache.optimization_level. Скажем выставить все в 0x00000000 и потом попеременно включать.

    Какой бит за что отвечает можно посмотреть тут: stackoverflow.com/questions/21181045/php-opcache-o...
    Ответ написан
    Комментировать
  • Как настраивать порты при установке во FreeBSD при помощи pkgng?

    RicoX
    @RicoX
    Ушел на http://ru.stackoverflow.com/
    Во первых вы используете не порты, а пакеты, для фри - это огромная разница. Во вторых для фри лично я бы советовал использовать порты, в собранных пакетах часто нет нужного.
    Пусть примерно такой:
    portsnap fetch (Загрузить дерево портов)
    portsnap extract (В первый раз, потом апдейтить)
    whereis php5 (Ну или нужный порт)
    cd /usr/ports/lang/php5
    make config (задаем нужные опции сборки)
    make install clean (ставим порт)
    Ответ написан
    5 комментариев
  • Почему PDO::__construct время от времени выполняется 5 секунд?

    alexey-m-ukolov
    @alexey-m-ukolov Автор вопроса, куратор тега PHP
    Нашел ответ - на сервере с mysql указал skip-name-resolve.
    На девелоперских машинах настройкой DNS никто не занимался толком, поэтому поиск имени хоста превращался в веселую карусель.
    Ответ написан
    Комментировать