NVIDIA Rivermax와 함께 SMPTE 2110을 사용할 때 발생할 수 있는 문제를 해결하기 위한 가이드입니다.
-
로그에서 시스템이 GPUDirect를 지원할 것으로 예상되지만 다음 메시지가 표시되는 경우:
Cuda 디바이스는 RDMA를 지원하지 않습니다. GPUDirect는 Rivermax에 사용할 수 없습니다.환경 변수를 확인하고
RIVERMAX_ENABLE_CUDA가 1로 설정되어 있는지 확인합니다. -
RivermaxMediaSource를 열 때 다음 메시지가 표시되는 경우:
디바이스 IP에 대해 RTP 다이내믹 헤더 데이터 분할이 지원되지 않습니다.다음 명령을 실행할 경우
INTERNAL_CPU_MODEL이SEPARATED_HOST(0)로 설정되어 있는지 확인합니다.mlxconfig.exe q | findstr "REAL_TIME_CLOCK_ENABLE INTERNAL_CPU_MODEL" -
RivermaxMediaSource를 열 때 로그에 다음 경고가 표시되는 경우:
플로우를 스트림에 연결할 수 없습니다. 상태: 13.BlueField-2가 아닌 ConnectX-6 카드를 사용하고 있다면 언리얼 엔진의 프로젝트 세팅에서 시간 소스(Time Source) 를 확인하고 시스템(System) 으로 설정합니다.
NVIDIA Rivermax 플러그인의 시간 소스 세팅입니다.
-
RivermaxMediaSource를 열 때 표시된 이미지가 예상과 다르게 무지개 색인 경우 다음 명령이 동일한 출력을 보여주는지 확인합니다.
mlxconfig.exe q | findstr "FLEX_PARSER_PROFILE_ENABLE PROG_PARSE_GRAPH"
이러한 명령의 출력이 동일한지 확인합니다.
-
ST 2110을 사용하여 구동할 때 월에 티어링이 발생하면 모든 노드에서 PTP가 유효한지 확인합니다.
-
Putty를 사용하여 BlueField-2 카드의 COM 포트에 연결하고 루트 권한으로 로그인합니다.
-
루트 폴더에서
firefly_monitor.sh스크립트를 실행합니다. 이 스크립트는 DOCA 컨테이너가 실행 중인지 확인하고 PTP 상태를 출력합니다.
firefly_monitor.sh의 출력입니다.
-
각 노드의 그랜드마스터 클럭 아이디
gmIdentity값이 동일한지 확인합니다. 이 값이 다르면 시간 레퍼런스가 달라집니다. -
gmPresent및ptp_stable값이 유효한지 확인합니다.
-
중요 정보
-
UE 5.3~5.4의 경우 향후 제거될 예정입니다. SMPTE 2110과 관련해서 네트워크 패킷 크기 및 픽셀 그룹화에 대한 제한 요인이 있습니다. 이러한 제한으로 인해 일부 해상도를 구현하려면 하나 이상의 패킷이 나머지 패킷과 크기가 달라야 합니다. 이는 Rivermax에서 패킷 간 지터를 야기하는 것으로 알려져 있습니다. 따라서 이런 문제가 발생하지 않는 표준 해상도 사용을 권장합니다. 그러나 표준 해상도 사용이 가능하지 않은 경우에도 UE는 프레임 데이터를 균일한 크기 패킷으로 나누려고 시도합니다. 이것이 효과가 없으면 프레임당 마지막 패킷은 나머지 패킷과 다른 크기가 됩니다. 다음 CVar를 설정하여 균일하지 않은 패킷을 전송하는 기능을 비활성화할 수 있습니다.
Rivermax.Output.EnableMultiSRD=0해상도가 같은 크기 패킷으로 분할되지 않으면 UE 로그에 다음 메시지가 표시됩니다. "YOUR_RESOLUTION 해상도로 인해 크기가 다른 여러 패킷을 통해 행 데이터가 전송됩니다." -
Rivermax 버전 1.41.11 및 UE 5.4에서는
Rivermax.Output.ForceSkip콘솔 변수의 디폴트 값이 권장 값인 0으로 변경되었습니다. UE 5.3에서는 Rivermax.Output.ForceSkip=1이 사용되었으며 이 값은 장시간 재생 후에 문제를 야기하는 것으로 알려졌습니다. 이 CVar는 Rivermax 1.41.11에서 제공된RIVERMAX_TX_DELAY_ADAPTIVE_AUTO_CORRECTION_FACTOR환경 변수를 통해 기본적으로 해결되는 문제를 인위적으로 처리하기 위한 방법이었습니다.