Типові робочі процеси
Імпортуйте стандартні тестові відеофайли.
Використовуйте стандартні набори відеоматеріалів, коли вам потрібні повторювані медіафайли для демонстрацій, тестування або перевірки багатопотоковості:
https://artifacts.sima-neat.com/assets/videos/720p16/video01.mp4
...
https://artifacts.sima-neat.com/assets/videos/720p16/video16.mp4
https://artifacts.sima-neat.com/assets/videos/480p30/video01.mp4
...
https://artifacts.sima-neat.com/assets/videos/480p30/video16.mp4
Для ручного використання завантажте необхідні файли та завантажте їх із джерела медіа.
Для налаштування через API перевірте, чи вже є в Insight файли медіа:
curl -k https://127.0.0.1:9900/api/media-files
Якщо медіатека порожня, завантажте та додайте стандартне відео:
tmpdir="$(mktemp -d)"
curl -fL "https://artifacts.sima-neat.com/assets/videos/480p30/video01.mp4" \
-o "${tmpdir}/video01.mp4"
curl -k -F "file=@${tmpdir}/video01.mp4" \
https://127.0.0.1:9900/api/upload/media
Повторіть цю процедуру для інших файлів або завантажте архів, якщо ви хочете додати велику кількість медіафайлів.
Перевірте роботу застосунку, який обробляє відеопотік з однієї камери.
- Відкрийте Insight.
- Перейдіть до розділу «Джерела медіа» та завантажте короткий тестовий відеофайл.
- Перейдіть до розділу «Джерела потокового відео» та призначте відео для
src1. - Почніть
src1. - Запустіть свою програму, використовуючи правильне RTSP URL-адресу:
- Усередині контейнера SDK:
rtsp://127.0.0.1:8554/src1 - На пристрої DevKit або на зовнішньому комп’ютері:
rtsp://<sdk-host-ip>:<rtsp.tcp hostPortStart>/src1
- Усередині контейнера SDK:
- Відкрийте програму для перегляду відео та перегляньте канал
0. - Якщо ваш додаток надсилає метадані, переконайтеся, що відповідні елементи відображаються на відео.
- Використовуйте заповнювач «Статистика», щоб дізнатися, де в наступній версії відображатимуться дані системної діагностики навантаження.
Перевірка застосунку з живою вебкамерою
Використовуйте цю процедуру, щоб тестувати застосунок із реальною камерою замість записаного файлу. Вебкамеру підключено до комп’ютера з вашим браузером, а не до плати: браузер публікує її в Insight, який надає її як звичайне джерело RTSP, що застосунок споживає так само, як файл.
- Відкрийте Insight через HTTPS і підтвердьте, що браузер довіряє його сертифікату.
- Перейдіть до Streaming Sources, виберіть поле файлу
src1і перемкніть діалогове вікно Джерело для src1 на вкладку Камера. - Виберіть Увімкнути доступ до камери й дозвольте доступ на запит браузера, потім виберіть камеру й натисніть Призначити. Після призначення камери рядок показує позначку
[CAM]. - Запустіть
src1і підтвердьте, що слот повідомляєLive, а попередній перегляд показує камеру. - Запустіть застосунок із тим самим URL RTSP, що й для файлового джерела. Insight нормалізує вебкамеру до такого самого базового профілю H.264 із регулярними ключовими кадрами, який створює файлове джерело, тож апаратний декодер плати та GStreamer
rtspsrcспоживають його без додаткових дій — без ручногоffmpegчи окремого шляху:- Усередині контейнера SDK:
rtsp://127.0.0.1:8554/src1 - На DevKit або зовнішньому комп’ютері:
rtsp://<sdk-host-ip>:<rtsp.tcp hostPortStart>/src1
- Усередині контейнера SDK:
- Відкрийте Video Viewer і перегляньте канал
0.
Під час публікації вебкамери тримайте вкладку браузера видимою та на передньому плані: вона надсилає відео до Insight, а браузери обмежують приховані або фонові вкладки, що перериває потік. Закриття вкладки, відключення камери або вибір Зупинити завершує потік.
Коли Insight працює всередині SDK, браузер також має отримувати доступ до порту хоста webrtcWhip з neat --json, крім порту RTSP, який використовує застосунок. Див. Порти та поведінка мережі.
Перевіряйте декілька потоків вхідних даних.
- Завантажте або підготуйте кілька відео у розділі «Джерела медіа».
- Використовуйте потокові джерела.
Auto Assignщоб зіставити відео з відповідними слотами джерела. - Використовуйте
Bulk Start, щоб вказати кількість джерел, які очікує ваш додаток. - Запустіть програму, використовуючи відповідні URL-адреси потоків
srcN. - Відкрийте програму для перегляду відео, налаштувавши потрібний канал.
- Використовуйте інструменти діагностики для перегляду, щоб виявити вузькі місця в потоці даних. У цій версії розділ «Статистика» є лише тимчасовим, і в наступній версії планується додати інструменти діагностики в узьких місць у середовищі виконання.
Коли програма запускається поза контейнером SDK, перед запуском тесту визначте та налаштуйте хост-порти для RTSP, відеопотоку UDP та метаданих UDP, використовуючи дані з neat --json.
Трансляція із зовнішнього інструмента
- Відкрийте «Джерела потокового відео» та виберіть слот зі станом Idle.
- Опублікуйте в нього потік із хоста, наприклад
ffmpeg -f v4l2 -i /dev/video0 -c:v libx264 -preset veryfast -tune zerolatency -g 30 -pix_fmt yuv420p -f rtsp -rtsp_transport tcp rtsp://<insight-host>:8554/src2. - Слот переходить у стан «Зовнішній». Виберіть його й увімкніть попередній перегляд, щоб перевірити зображення; перший кадр з’являється на наступному ключовому кадрі відправника, тому тримайте інтервал ключових кадрів коротким (
-g 30вище). - Запустіть застосунок з RTSP URL-адресою слота, як і з будь-яким іншим джерелом.
- Щоб знову використати слот для файлу, зупиніть зовнішній інструмент або натисніть «Перехопити».
sima-ai/tool-mediasources (mediasrc.sh) запускає власний MediaMTX на тому самому порту RTSP і нумерує потоки з src0; запускайте його на іншому порту або використовуйте слоти Insight замість того, щоб запускати обидва.
Підтягування IP-камери в слот
- Відкрийте «Джерела потокового відео» та натисніть кнопку файлу слота зі станом Idle.
- Перемкніть діалогове вікно на URL потоку, введіть RTSP URL-адресу камери (наприклад,
rtsp://192.168.1.10:554/h264Preview_01_main), її ім’я користувача та пароль, а потім натисніть Підтягнути. - Слот показує «Підключення…», а потім «Підтягнуто» з кодеком, роздільною здатністю та частотою кадрів. «Недоступно» означає, що камера не відповіла (Insight продовжує повторні спроби). Якщо камера відхиляє ім’я користувача або пароль, коли ви натиска єте «Підтягнути», діалогове вікно показує повідомлення, а слот не змінюється; «Помилка автентифікації» в рядку означає, що камера почала відхиляти облікові дані пізніше (наприклад, після того як спочатку була недоступна): натисніть «Зупинити» й підтягніть потік знову.
- Запустіть застосунок з RTSP URL-адресою слота, як і з будь-яким іншим джерелом. Конвеєри Neat можуть декодувати лише камери H.264, H.265 і MJPEG; інакше комірка кодека стає бурштиновою.
- Натисніть «Зупинити» в рядку, щоб звільнити слот.
Налаштуйте кінцеві точки застосунку на основі відображення портів SDK.
Використовуйте цей процес, коли програма працює на DevKit, а Insight працює всередині SDK:
-
В SDK перевірте, чи запущено Insight:
insight-admin status -
Отримайте карту портів SDK:
neat --json -
Знайдіть IP-адресу хоста SDK за посиланням
insight.webUiUrl, або скористайтеся IP-адресою хоста, яка відображається під час процесу налаштування SDK. -
Знайдіть
rtsp.tcp.hostPortStart,videoUDP.hostPortStartтаmetadataUDP.hostPortStartуexposedPorts. -
Налаштуйте потоки вхідних даних програми за допомогою:
rtsp://<sdk-host-ip>:<rtsp.tcp hostPortStart>/src1rtsp://<sdk-host-ip>:<rtsp.tcp hostPortStart>/src2 -
Налаштуйте вихідні порти програми для кожного каналу:
video channel N: <sdk-host-ip>:<videoUDP hostPortStart + N>metadata channel N: <sdk-host-ip>:<metadataUDP hostPortStart + N> -
Запустіть програму та відкрийте переглядач відео.
-
Використовуйте
/api/ingest/stats, якщо у користувача не відображається відео. Ця функція повідомляє, чи надходять дані RTP і метадані до Insight перед тим, як ви почнете налагоджувати роботу браузера або WebRTC.