일반적인 작업 흐름
표준 테스트 비디오를 가져옵니다.
예시, 연기 테스트 또는 다중 스트림 검증에 사용할 수 있는 반복 가능한 미디어가 필요할 때는 표준 비디오 세트를 사용하세요.
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에 게시하면 Insight는 이를 일반 RTSP 소스로 제공하며, 애플리케이션은 파일과 동일하게 사용합니다.
- HTTPS로 Insight를 열고 브라우저가 인증서를 신뢰하는지 확인합니다.
- Streaming Sources에서
src1의 파일 필드를 선택하고 src1 소스 대화 상자를 카메라로 전환합니다. - 카메라 접근 활성화를 선택하고 브라우저가 요청하면 접근을 허용한 다음, 카메라를 선택하고 할당합니다. 카메라를 할당하면 행에
[CAM]표시가 나타납니다. src1을 시작하고 슬롯에Live가 표시되며 미리보기에 카메라가 나타나는지 확인합니다.- 파일 소스와 동일한 RTSP URL로 애플리케이션을 실행합니다. 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 안에서 실행되면 브라우저는 애플리케이션의 RTSP 포트 외에도 neat --json에 표시되는 webrtcWhip 호스트 포트에 접근할 수 있어야 합니다. 포트 및 네트워크 동작을 참조하세요.
여러 입력 스트림을 검증합니다.
- 미디어 소스에서 여러 개의 비디오를 업로드하거나 준비합니다.
- 스트리밍 소스 사용
Auto Assign비디오를 소스 슬롯에 매핑합니다. - 애플리케이션에서 예상하는 소스 수에 대해
Bulk Start를 사용하여 시작합니다. - 해당하는
srcN스트림 URL을 사용하여 애플리케이션을 실행합니다. - 예상되는 채널로 설정하여 비디오 뷰어를 엽니다.
- 뷰어 진단 기능을 사용하여 스트림 병목 현상을 확인합니다. 통계 뷰는 이번 버전에 임시로 포함되었으며, 다음 버전에서는 런타임 병목 현상 진단 기능을 추가할 예정입니다.
애플리케이션이 SDK 컨테이너 외부에서 실행될 때, 테스트를 시작하기 전에 neat --json에서 RTSP, 비디오 UDP 및 메타데이터 UDP 호스트 포트를 확인합니다.
외부 도구에서 스트리밍
- 스트리밍 소스를 열고 유휴 상태로 표시된 슬롯을 선택합니다.
- 호스트에서 해당 슬롯으로 게시합니다. 예:
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)는 같은 RTSP 포트에서 자체 MediaMTX를 시작하고 스트림 번호를 src0부터 매깁니다. 둘 다 실행하지 말고, 다른 포트에서 실행하거나 대신 Insight의 슬롯을 사용하십시오.
IP 카메라를 슬롯으로 끌어오기
- 스트리밍 소스를 열고 유휴 상태로 표시된 슬롯의 파일 버튼을 클릭합니다.
- 대화 상자를 스트림 URL로 전환하고 카메라의 RTSP URL(예:
rtsp://192.168.1.10:554/h264Preview_01_main)과 사용자 이름 및 비밀번호를 입력한 다음 끌어오기를 누릅니다. - 슬롯에 연결 중…이 표시된 다음, 코덱, 해상도, 프레임 속도와 함께 끌어옴이 표시됩니다. 연결 불가는 카메라가 응답하지 않았다는 뜻입니다(Insight가 계속 재시도함). 끌어오기를 누를 때 카메라가 사용자 이름이나 비밀번호를 거부하면 대화 상자에 메시지가 표시되고 슬롯은 변경되지 않습니다. 행의 인증 실패는 카메라가 나중에(예: 처음에는 연결할 수 없었던 후) 자격 증명을 거부하기 시작했다는 뜻입니다. 중지를 누르고 다시 끌어오십시오.
- 다른 소스와 마찬가지로 슬롯의 RTSP URL을 대상으로 애플리케이션을 실행합니다. Neat 파이프라인은 H.264, H.265, MJPEG 카메라만 디코딩할 수 있으며, 그 외의 경우 코덱 셀이 호박색으로 바뀝니다.
- 슬롯을 해제하려면 행에서 중지를 누릅니다.