• Android Camera2 API от чайника, часть 6, финальная Стрим видео — сначала кодировали, теперь декодируем


    Итак, в предыдущем посте мы занимались кодированием «живого» видео формата H.264 на Android устройстве, которое затем отправляли для просмотра на персональный компьютер под виндой. Там наш видеопоток успешно раскодировывался и лицезрелся с помощью VLC плеера. А так же с помощью библиотеки VLCJ CAPRICA благополучно впихивался и в окошки JAVA приложения. Правда, каким именно образом он (VLC плеер) всё это проделывал, так и осталось загадкой. Но с другой стороны — работает, да и ладно.

    Подстольный настольный компьютер, ноутбук, лэптоп — всё это прекрасно, но тем не менее, всё больше народа смотрит видео и управляет разными девайсами не из-за стола, а чаще валяясь на диване, со смартфоном в руках. И соответственно, к примеру, даже нашей роботележкой ныне удобней управлять именно оттуда. Поэтому настало время выяснить, как наш закодированный видео поток принять и отобразить на экране такого же Android устройства. Естественно, как и раньше мы проделаем всё через Camera2 API, концепцию Surface, да ещё и асинхронно!

    Кому интересно — вперёд.
    Читать дальше →
  • Очки сумрачного зрения. Android Camera2 API от чайника, часть 5 внезапная



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

      Судите сами, к какому открытию может привести чтение обычной статьи о современных смартфонах. Источник приводить не буду, чтобы не делиться будущими доходами.
      Вершиной вычислительной фотографии можно, пожалуй, считать ночную съемку. Примером может служить «Ночной Режим» в смартфонах Google Pixel. В нём IT гиганту пришлось задействовать съёмку в RAW, HDR-стекинг, компенсацию «смазов», распознавание сцен нейросетями. А появление второй камеры в прошлогоднем Pixel 4 сделало «Night Sight» пригодным даже для съемки звезд. В сумме это создает ощущение волшебства: глаза видят кромешную тьму, а на фотографии лёгкие сумерки. Как шутят на форумах, скоро на смартфон можно будет снять чёрную кошку в тёмной комнате и она будет чёткой.

      Другое дело, что ходить ночью и тыриться в экран мобильника как-то неудобно, даже в ночном режиме. И тут мой взгляд случайно упал на VR-гарнитуру для смартфона, валявшуюся на полке. Прорыв свершился! Осталось только, используя её и накопленные за четыре поста знания о Android Camera2 API, направить изображение с «Night Sight» прямо в глаз. Заодно и руки будут свободны, чтобы поймать чёрную кошку в тёмной комнате. Совсем без света, конечно, не получится, фотонов, хоть немного, да нужно. Но по крайней мере уровня котановских гляделок в темноте мы достигнуть (а может, даже превзойти) обязаны.
      Читать дальше →
    • Стрим видео с Android устройства по UDP в JAVA приложение

      • Tutorial
      Итак, выходим на финишную прямую. Стримить видео с андроида на VLC плеер мы уже научились, теперь осталось только интегрировать окошко с видео в JAVA приложение и начать рулить роботелегой.



      В этом нам очень сильно поможет проект с открытым исходным кодом VLCJ CAPRICA.
      The vlcj project provides a Java framework to allow an instance of a native VLC media player to be embedded in a Java application.
      Идея у ребят простая, но гениальная (реально перцовая). Вместо мучений с библиотеками FFmpeg и прочим, надо сразу вызывать специалиста ядро нормального, функционального и профессионального медиаплеера VLC. И вызвать его прямо из JAVA приложения.

      Кому интересно, просим под кат.
      Читать дальше →
      • +12
      • 5.8k
      • 1
    • Android Camera2 API от чайника, часть 3. Media Codec и стрим видео по UDP

      • Tutorial
      Итак, со съемками фоточек и записью видео при помощи Camera2 API мы вроде бы, разобрались. Осталось только научиться передавать видеопоток c Android устройства страждущим получателям извне. Конечной целью, как уже неоднократно ранее говорилось, является интеллектуализация роботелеги — ставим на неё смартфон и так сказать, превращаем обезьяну в человека. В этом нам поможет Media Codec. И конечно, новое Camera2 API.


      Кому интересно, прошу под кат.
      Читать дальше →
    • Android Camera2 API от чайника, часть 2, пишем видео

      • Tutorial


      Продолжаем разбираться с CAMERA2 API Android.
      В предыдущей статье мы осваивали работу камеры, чтобы делать фоточки, используя новое API. Теперь же займёмся съемкой видео. Вообще изначально, главной моей целью был стрим по сети живого видео с камеры Android при помощи Media Codec, но так уж вышло, что сначала на сцену вылез Media Recorder и захотел поделиться с почтеннейшей публикой тем, как хорошо он умеет записывать видосики. Поэтому стримингом мы займёмся в следующий раз, а пока разберёмся, как присобачить Media Recorder к новому API. Пост про него получился довольно банальным, поэтому под кат могут заглядывать только новички и совершеннейшие чайники.

      Читать дальше →
    • Человеческое сознание. Перенести нельзя скопировать?


        Предыдущая статья на эту тему вызвала к жизни бурное обсуждение в количестве более четырехсот комментариев, среди которых, как водится, не было ни одного умного (шутка). В принципе, это и неудивительно. Такая же ситуация обстоит, например, с лингвистикой. Как говаривал гениальный и увы, уже покойный академик Андрей Зализняк, поскольку каждый человек свой язык знает, а лингвистика она про язык, то почему бы ему и не разбираться в ней, так сказать, априори. И как мы знаем, также уже почивший сатирик Михаил Задорнов со своими изысканиями в области русского языка не даст соврать:

        «А слово «Богатырь» образовано из двух слов – «бог» и «тырить».

        С самосознанием, сознанием, самоосознанием, самостью, внутренним «я», личностью — дело обстоит примерно также. Поскольку это всё есть внутри головы почти у каждого из нас, то почему бы нам не родить ещё парочку-тройку умных мыслей и предположений по этому поводу, коль скоро философы спорят на эту тему уже две тысячи лет, а учёные и психологи лет двести и всё никак не могут докопаться до истины. Ещё правда, есть нейробиологи-томограферы, которые всё делают через томограф, но это каста относительно молодая и в основном они смотрят «где» и «что» в голове происходит, не объясняя «как». У них на это, правда, есть свои резоны, к которым мы ещё вернемся.
        Читать дальше →
      • Android Camera2 API от чайника

        • Tutorial


        Не так давно я возился со своей роботележкой, пытаясь водрузить на нее ANDROID смартфон. Моей, то есть его задачей, было сделать тележку эволюционно продвинутой. Чтобы она, так сказать, чувствовала мир его сенсорами, смотрела его глазом (камерой), слышала микрофоном и ругалась по громкой связи. Ресурсов AVR, понятное дело, на это уже не хватало и поэтому бывший на телеге микроконтроллер переехал на уровень ниже, куда-то в район спинного мозга управлять моторчиками и разными безусловными рефлексами.

        Но странное дело, когда я начал писать приложение для смартфона, нехорошая IDE ANDROID STUDIO стала постоянно зачеркивать мой код и называть его устаревшим.

        camera = Camera.open();

        Особенно, как вы видите, в тех частях, где я пытался работать с камерой. Это было очень обидно, потому что я прочитал в интернете и усвоил множество уроков работы с андроидом и камерой здесь, здесь, здесь и даже здесь. Там ничего не зачеркивалось. И называлось заурядно Camera API. Все там было просто и логично. Но Google упрямо толкал меня к какому-то Сamera2 API.

        Я туда посмотрел и просто опупел от количества разных коллбэков, билдеров, хэндлеров и луперов на каждую строчку демонстрационного кода. Было совершенно непонятно с какой стороны к этому подступиться, если ты обычный любитель, а не android developer. Причем в сети даже на сегодня статей на тему Сamera2 API чуть, хотя вышло это обновление вроде как, аж четыре года назад. Но всё что я нашел, это статью в Хакере в 2016, пост в трех частях от украинских братьев того же года, двойной пост на Хабре в 2017 и статью Understanding Camera2 от японского мегагика Томоаки Имаи. И это я ещё имею в виду какую-то структурированную и оформленную информацию, а не раскиданные в интернете обрывки кода типа, «смотрите, как я могу» и простыни в стиле, «посмотрите код плиз, у меня ничего не работает».

        А теперь, если вам всё ещё интересно зачем мне потребовалось пилить свой пост на эту тему
        уже в 2019, то добро пожаловать под кат.
        Читать дальше →
      • Эволюция или делаем базу для роботележки на ARDUINO платформе, а сенсоры и видео гоним на компьютер через смартфон

          Для уважаемых читателей GeekTimes очередная (четвёртая) долгожданная статья о том, что будет, если снова замешать ардуинку, ESP8266, WI-FI, приправить смартфоном на Android и посыпать сверх JAVA приложением.

          Речь у нас пойдет про роботелегу из позапрошлой статьи, которой пришла пора хотя бы немного поумнеть.

          image

          Кому интересно, добро пожаловать под кат.
          Читать дальше →
        • Автоматизация тибетских поющих чаш с помощью «Ардуино». Шаговый двигатель вместо монаха. Беспроводное программирование

            И ПЕРЕДАЧА БОЖЕСТВЕННОЙ ВОЛИ СИГНАЛОВ ТОЧНОГО ВРЕМЕНИ ЧЕРЕЗ ESP8266.
            ЧАСТЬ ЧЕТВЕРТАЯ




            Так уж всё совпало. Сначала я увидел статью на «Гиктаймс» про шторы управляемые шаговым двигателем. Вспомнил, что такой же двигатель валяется у меня без дела второй год. Затем взгляд мой упал на поющую чашу, которая пылилась на полке уже лет пять. А затем в голову начали приходить разные умные мысли…

            Нет, конечно иногда по настроению, я брал сию чашу в руки и некоторое время извлекал из нее разного рода чарующие звуки, но это было не совсем-то чего мне хотелось. А хотелось мне чем-то заниматься параллельно, а чаша пусть бы в это время звучала сама. Понятно что тысячу лет назад на это потребовался бы отдельный раб человек, лет триста назад — хитроумный заводной механизм, а сейчас… Ну, а сейчас у нас есть и шаговый двигатель и плата «Arduino ProMini» и прочая незамысловатая электроника. Осталось только немного побыдлокодить. И заодно сделать так, чтобы чаша эта тибетская заодно отбивала точное время — зря, что ли наплодили столько серверов точного времени. А с ними пусть общается ESP8266, она это умеет.

            Итак…
            Читать дальше →
          • Человеческое сознание. Перенести нельзя скопировать?

              Здоровье гика это, прежде всего здоровый мозг гика. А где в мозгу гика находится гик?



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

              Как человек дошёл до жизни такой — выделил себя любимого из окружающего мира, разделил духовное и материальное, придумал богов и загробный мир и почему именно так всё у него вышло — это история очень интересная, но все же отдельная, которую можно поведать в следующий раз. Сейчас бы хотелось коснуться именно практических фактов связанных с нашим самоосознанием, которые к сегодняшнему дню в неимоверной борьбе сумели вырвать у природы нейробиологи и когнитивные психологи вооруженные по последнему слову техники томографами и энцефалографами.
              Читать дальше →
            • Программирование и передача данных в «Ардуино» по «воздуху» с помощью ESP8266. Часть Третья. Здравствуй, «ANDROID»

                Предлагаю вам, уважаемые читатели GeekTimes, очередную статью из цикла по использованию микросхемы ESP8266 в качестве беспроводного моста для AVR микроконтроллеров, на примере аппаратной платформы Arduino Uno (Nano). В этот раз для полета на Луну управления платформой мы задействуем вместо компьютера устройство на базе «ANDROID». Ну, например, смартфон.



                Подробности под катом:
                Читать дальше →
              • Программирование и обмен данными с «ARDUINO» по WI-FI посредством ESP8266 Часть Вторая

                  Предлагаю вам, уважаемые читатели GeekTimes, следующую статью из цикла (надеюсь, что не последнюю) по использованию микросхемы ESP8266 в качестве беспроводного моста для AVR микроконтроллеров, на примере аппаратной платформы Arduino Uno (Nano).

                  После первой статьи на эту тематику я получил множество дружелюбных откликов как-то: “А на кой чёрт ты взял ардуину, если всё можно было сделать исключительно на ESP8266” или “Почему ты, болван, не использовал esp-link ”. “Действительно почему?” — подумал я и накатал уже эту статью и обновил несколько своих программ в качестве новых аргументов.

                  Итак, встречайте беспроводной программатор для AVR микроконтроллеров BABUINO version 0.9



                  Подробности под катом:
                  Читать дальше →
                • Программирование и обмен данными с «ARDUINO» по WI-FI посредством ESP8266 Часть Первая

                    Как и многие другие самоделкины, я регулярно использую микроконтроллеры AVR для всяких разных любительских поделок. А благодаря концепции «Arduino» эти поделки теперь приобретают еще и элегантный вид. Действительно, за какие-то 300-400 рублей мы получаем миниатюрную многослойную плату с маской, шелкографией и с полностью разведенной на ней периферией для микроконтроллера (причем в SMD исполнении!). Я уже не говорю о всевозможных подключаемых модулях этой же «Arduino» серии: датчиках, контролерах, дисплеях и целых наборов, так нужной нам дополнительной периферии. И опять же всё также недорогих и в прекрасном исполнении. Практически уже нет необходимости, что-то разводить и допаивать на «коленке».­­­­­­­­­


                    Но все эти разнообразные любительские поделки, требуют естественно, предварительного программирования. Да и в последующем при разных усовершенствованиях, постоянно приходится эти поделки перепрошивать. Понятное дело, что удобнее делать это дистанционно, чем постоянно таскать их к обычному программатору. Вообще, благодаря той же платформе «Arduino», вариантов и здесь много: Bluetooth, ZigBee, радиоканал с вашим личным протоколом, IR, и даже Wi-Fi. Все они позволяют наладить беспроводной контакт с вашим микроконтроллером. Но мы же остановимся на последнем варианте. Основных причин здесь четыре:

                    1: современно, интернет вещей же!

                    2: беспроводной роутер есть в каждой квартире, регистрируй в домашней сети свои устройства и вуаля!

                    3: ваши поделки осуществляют революционный скачок в своём развитии; мало того, что их можно программировать на расстоянии, они теперь ещё и сами могут общаться с окружающим их миром: электронные часы самостоятельно берут точное время с часовых NTP-серверов, исполнительные устройства управляются с другого конца города или страны, регистрирующие девайсы сохраняют накопленные данные в облако и т.д. и т.п.

                    4: есть замечательная серия микросхем ESP8266 на которой не очень легко всё это реализовать.
                    Читать дальше →
                  • Беспроводной звук. С компьютера и почти по всей квартире



                    Как очень хотелось всё сделать на WI-FI…

                    Конечно, можно было бы начать эту статью с лирического отступления про «умные» дома будущего (или квартиры), в которых повсюду стоят миниатюрные (или не очень) звуковые колонки, услаждающие хозяев музыкой. Вероятно, в ближайшем будущем так оно и случится, когда каждый девайс у нас дома будет оснащен копеечным WI-FI адаптером. Но почему-то в настоящее время такие технические решения, связанные с беспроводной раздачей звука по WI-FI, могут стоить каких-то неразумных денег. Вот, например, мультирум-системы от фирмы «SONOS», где только одна! беспроводная WI-FI колонка, обойдётся покупателю в сумму свыше двадцати тысяч рублей.
                    Читать дальше →