После инвестирования около 20 часов мне наконец -то удалось заставить продюсеров потокового видео AWS Kinesis работать над моим Raspberry Pi, несмотря на запутанные инструкции, Github Repos, которые сильно отличались от официальных документов и слишком много альтернативных способов управления вещами — это История о том, как я это сделал.
👦🏽 Как это началось?
Все началось с невинного взгляда в WhatsApp, от студента, который пытался получить видеопотоки AWS Kinesis для работы для проекта колледжа. Он сказал, что видел мои коммиты в репо AWS Kinesis и отправил мне сообщение о помощи, чтобы поднять ее.
Я высокомерно подумал: «Ах, новички не могут даже правильно следовать за документами». В то время, мало что я знал, как глубоко прошла эта кроличья дыра, следовали за ним 3 целыми днями исследований, гуглирования и полного разума, и все это просто для того, чтобы получить простые работы «Отправить данные в облачный скрипт».
🖤 Вы смотрите на пропасть …
То, чего мы хотели достичь, было довольно просто, мы просто хотели, чтобы вымогать видео кадры в AWS Kinesis из /dev/video0
на Linux. Инстинктивно я посмотрел документы AWS, и вот Где начались проблемы
Проблемы.
GSTREAMER?!
Оказывается, есть в основном 2 способа, чтобы получить библиотеки производителей AWS Kinesis для работы. Один из них использует скомпилированный код C ++ из репо GitHub, а другой — это компиляция плагина GSTREAMER, но это еще не все. Команда GSTREAMER немного изменяется в зависимости от того, на какой платформе вы находитесь, это означает, что во всех 2 x 3 (Mac/Win/Linux) способах запустить это, что вас встречают правой, когда вы сначала загружаете их привет- мировой пример. Можно терпеливо попытаться прочитать все это, но у документам даже нет Предварительные условия Раздел , это делает начало работы еще сложнее.
Предлагаемые исправления — Добавление предварительных условий раздела будет легко исправить это.
Docker на помощь? … Нет
Следующий способ запустить и запустить видео -продюсера Kinesis, используя Docker, можно по себе, что это будет меньше из двух зол, и это будет работать одинаково на всех платформах, но вы все равно будете неправы. Документы кратко упоминают, что есть какой -то способ запустить продюсера, но к концу они оставляют вас с — Начните потоковой передачу с камеры, используя GST-LAUNCH-1.0
команда, которая подходит для вашего устройства.
Команды GSTREAMER, которые они хотели, чтобы я запустил здесь, продолжали жаловаться, что плагин GSTREAMER для поддержки Kinesis-Stuff не был установлен.
По сути, это означало, что даже собственные изображения Docker от Amazon не работают.
Предлагаемые исправления — Установка вещей с использованием Docker — это отдельный способ поднять производителя, он должен был быть с ** Complete Инструкции о том, что мы должны делать, не нужно бегать взад -вперед между несколькими страницами.
Неравенство среди платформ
Теперь, в Windows и Mac, вы не можете получить потоковую передачу веб -камеры с Docker, но на Linux вы можете. Там нет таблицы, которая говорит вам, какой путь позволяет вам делать то, что такое преимущества и каковы недостатки такого и так далее. Это делает все это действительно подходом к удару, решая, что делать.
Предлагаемые исправления — Все два разных способа (Docker и Gstreamer) и способы для разных платформ все обсыпаны друг с другом лучшим способом, чтобы создать отдельное и полное учебное пособие для каждой платформы, а затем добавить лист сравнения, чтобы обобщить все красиво.
Это было только начало, это были все явные проблемы, которые я мог видеть сразу же, когда я посмотрел на документацию AWS, Azure, с другой стороны, в одном из их учебников IoT Azure проводят нас через каждый сценарий полностью от начала до конца. У них также есть несколько видео, чтобы показать нам, как что -то сделать.
🌪 дым и зеркала
Вернемся к проблеме, которую мы пытались решить — «Как получить продюсера AWS Kinesis, работающего на Linux»
Первоначально я просто предположил, что документы было трудно понять, но правильно, мне просто нужно было точно следовать за ними. Но, мальчик! был ли я неправ. Вскоре я пришел к осознанию того, что документы были бездельными. Да, позвольте мне объяснить.
Лживые документы № 1
В Использование производителя C ++ SDK на Raspberry Pi Документы говорят вам запустить УСТАНОВКА-SCRIPT , но я осмотрел вокруг, и если бы кто -то следовал за документами до такой степени, и у меня есть, вы не сможете найти такой файл. Самая близкая вещь, которую вы можете найти к чему -то подобному в предыдущей версии Github Repo в одном из Старые коммиты Анкет
Да. Вы видите проблему? Мало того, это не то, где это заканчивается.
Единственная причина, по которой я смог выяснить это, заключалась в том, что документы, упомянутые с использованием git клон -рекурсивный
, Я скептически относился к тому, что это значит Но я думал, что это потому, что репо, когда -то раньше встроила репо. Теперь документы все еще говорят, что это так, но на самом деле это не так.
Лживые документы №2
В Шаг 3: Запустите и проверьте код Документы говорят о компакт-дисках в Amazon-Kinesis-Video-Streams-Producer-C
Но это невозможно, потому что один из коммитов удалил этот встроенный репозиторий GitHub ( Читать дальше )
Единственный способ заставить это работать, это проверить более старый код из одного из Предыдущие коммиты — Это то, что я делаю здесь
Я перестану больше об этом по этому поводу, но временное решение для этого состоит в том, чтобы проверить репо на одном из более ранних этапов, которые исправляют все выбросы с синхронизацией документов с репо.
Предлагаемые исправления — Checkout Commit 824DE900C2D4B42A403319ACE5DE9D68EC88B171
🔥 Мое решение
Я знал, что с этим нужно что -то сделать. Я не мог позволить всем тратить столько же времени, сколько я потратил впустую, поэтому я написал очень короткий технический блог об этом. Как транслировать видео с помощью потоковой передачи видео AWS Kinesis — Docker на Linux? — Это дает вам достаточно информации, чтобы заставить это работать, и ничего больше.
Но, надеюсь, кто -то один день найдет в нем большую ценность.
Наконец, как я заставил потоковую передачу работать, как вы можете?
Docker-Compose Up-Build
Я написал этот блог, обобщающий мой подход — как транслировать видео с помощью потоковой передачи видео AWS Kinesis — Docker на Linux?
Это все, что вам нужно сделать. 😎
Это отправит видеопоток из /dev/video0
Прямо на ваш видеопоток AWS Kinesis
Теперь подход, который я предлагаю в блоге, может быть не самым лучшим, он может быть не самым эффективным, но это не цель этого. Официальные документы могут узнать больше о том, как ускорить ситуацию, но первоначальная настройка, которая, как я считаю, должна быть намного проще, чем сейчас.
👩 🏽🚀 Заключение
Что мы узнали здесь? И почему я был очень злим, когда впервые столкнулся с этой проблемой?
AWS Kinesis на самом деле великолепен
Лично я думаю, что этот огромный уровень сложности для того, чтобы работать с AWS Kinesis, делает весь трубопровод очень трудным в использовании, и потому что я использовал AWS Kinesis, прежде чем я узнаю, что это не так, AWS Kinesis — это Довольно круто и в сочетании с SageMaker, он способен делать действительно впечатляющие вещи. (дорого, да, но впечатляющие вещи)
Пространственное время континуум
Я также уверен, что Рохан с 2 лет назад, безусловно, отказался бы от попыток заставить эту работу, и потому что все способы получить и бег продюсера AWS Kinesis значительно сложны на большом куче нового. Пользователи, которые в противном случае использовали бы сервис, но теперь не смогли этого сделать.
Также очень удивительно отметить, что способы, которыми я пытался заставить продюсера работать и запустить, — это также способы, которыми большинство веб -разработчиков попытались бы добиться успеха, и все они потерпели неудачу, мне пришлось буквально вернуться назад, чтобы получить продюсера работающий. Когда клиенты должны согнуть пространственное время континуума, чтобы ваш сервис работал, это редко бывает хорошей вещью.
В настоящее время нет возможности встать
Проблема непропорционально в конечном итоге затронула всех новых пользователей, которые пытались использовать AWS Kinesis, практически без очень очень умного, и без использования истории фиксации GitHub я не могу придумать, как кто -то сможет заставить продюсера работать, это означает Там будет очень мало людей, которые смогут его поднять.
Так что это было так. Вот как я смог получить потоковую передачу AWS на работу.
Amz, Встать на DMS
Amazon, вы смотрите и хотите, чтобы я создал изображения Docker, чтобы добавить поддержку потоковой передачи RTSP, не стесняйтесь. Мой DMS открыт для вас. Если бы я был слишком тяжело с тобой, это только потому, что ты заставил меня тратить время на неделю на тебя, ничто против тебя, чувак. Ты в порядке. 🤝🏽
Оригинал: «https://dev.to/rohansawant/the-story-of-how-i-kinda-fixed-aws-kinesis-producers-helped-a-student-and-saved-humanity-hundreds-of-man-hours-17e8»