������ �� ���� �����ϰų� ���÷����� �� ������ ������, ���� �� ����ŸƮ ���̵� �������� ����� ���� �ܼ��� ���� ���� ��Ʈ��ũ���� �۵��ϵ��� �ȼ� ��Ʈ������ ������ �� �ֽ��ϴ�. ������ ���� ������ ��Ʈ��ũ �Ǵ� ������ ���ͳݿ��� ���� ���÷����ϰų� ����� ���� �� ���� �÷θ� �缳���Ϸ��� ���, ������ ����� ���ƾ� �� �� �ֽ��ϴ�.
�ȼ� ��Ʈ���ֿ� ���ݵǴ� �ñ׳θ� ����, �� ����, ��ġ����Ŀ ������ ���۷��� ���� �����Դϴ�. ������ �̷��� ������ ��� ��ʿ� �´� ������ �ַ������ �������� ������, ���ٴ� �ڽ��� ������ �°� ������ ���� �����մϴ�. �̸� ���� �ñ׳θ� ����, �� ����, ��ġ����Ŀ ������ ���� ���۵� Pixel Streaming Infrastructure(�ܺ� ������Ʈ)���� �����Ͽ� �� ���� EULA�� ���� �����Ӱ� ������ �� �ֵ��� �߽��ϴ�(������ ���� �� 2�� ���̼��� ����).
�ȼ� ��Ʈ���� ����Ʈ���� �� �� ������ ���� �ڼ��� ������ Pixel Streaming Infrastructure �������� �����ϼ���.
STUN �� TURN ����
�ñ׳θ� �� �� ������ �� ���� ���ø����̼ǰ� ������ ���� ���� ������ ������ �� ��������, �� ��Ƽ�� ���ο��� ��ü IP �ּҸ� �����ؾ� �մϴ�. �������� UE5 ���ø����̼ǿ��� ������ IP �ּҿ� ������ �� �־�� �ϸ�, �� �ݴ뵵 �����ؾ� �մϴ�.
�ܼ��� ���� ���� ��Ʈ��ũ ������ �� ��������Ʈ�� ���� �ٸ� ��Ƽ�� ��ü ��Ʈ��ũ ī�忡 �˷��� �����̺� IP �ּҸ� ����Ͽ� �ش� IP �ּҿ� ������ �� �ִٰ� �����մϴ�. ������ ���ͳ��� ���ϰų�, ���� ����ݿ� ���� �ְų�, �������� UE5 ���ø����̼� ���̿� ��Ʈ��ũ �ּ� ��ȯ(Network Address Translation, NAT) ���� ���Ե� ���� ���� ���� ��찡 �Ϲ����Դϴ�. ��� �� ��Ƽ�� NAT�� ���� Ž�� ��ƿ��Ƽ(STUN, Session Traversal Utilities for NAT) ���������� �����ϴ� ������ �����Ͽ� ���������� ǥ�õǴ� ��ü IP �ּҸ� ã�ƾ� �մϴ�. STUN ������ ���������� ǥ�õǴ� IP �ּҸ� �� ��������Ʈ�� �˸� �� �ñ׳θ� �� �� ������ ���� ������ ��� �߰��� �� �ֽ��ϴ�.
���� TURN ������ ����Ͽ� UE5 ���ø����̼ǰ� ������ ���� �̵�� ��Ʈ���� �߰��� �� �ֽ��ϴ�. TURN ���������� ���� TURN ������ UE5 ���ø����̼ǰ� �������� ��� ����˴ϴ�. UE5 ���ø����̼��� ��Ʈ���ֵ� ��� ������ TURN ������ �����ϰ�, TURN ������ �ش� ������ �������� �����մϴ�. �� ��� UE5 ���ø����̼ǰ� ������ ���� ���� ������ �����ϴ�. ���� ij���� ��Ʈ��ũ �Ǵ� ������ ����� ��Ʈ��ũ�� Ŭ���̾�Ʈ���� ����� ����̽��� �����Ϸ��� TURN ������ ����� ���ۿ� �����ϴ�. ����� �� ����� ��Ʈ��ũ������ Ŭ���̾�Ʈ�� WebRTC ���������� ����Ͽ� ���������� �������� ���ϴ� ��찡 �ֽ��ϴ�.
STUN �� TURN ���������� �ϳ��� �������� �ٸ� ������ ���� ��ȯ�ϴ� ��ɰ� ���Ҿ� ��ȣ ���� Ȯ��(Interactive Connectivity Establishment, ICE) �����ӿ�ũ�� �����մϴ�.
���ͳݿ��� STUN �� TURN ������ �� ���� ���� �ҽ� ������ ã�� �� �ֽ��ϴ�. ���� ȣ�����ϴ� ��� ����� ����� �� �ִ� �ۺ�� STUN ������ ������, ���� ȣ�������� �ʴ� ���� ����� ���� ���Ǹ� ��←�� �մϴ�. TURN ���������� ���� �̵� �߰��ϴ� �� ���ݵǴ� ó������ �뿪�� ������ �ۺ�� TURN ���� ����� �̿��� �� �ִ� ���� �年�ϴ�.
���Ǹ� ���� SignallingWebServer/platform_scripts/
�������� Windows, Linux �� Mac���� CoTURN �� �����ϴ� ��ũ��Ʈ�� ���ԵǾ� �ֽ��ϴ�. CoTURN�� ���� ������ STUN/TURN ������, ���� ���� �ҽ��Դϴ�. ������ ����ߴ� STUN �� TURN ���۷��� ������ ���ۿ� �ٷ� ����� �� �ִ� ������ �ƴϾ��� ������ �����߽��ϴ�.
�ȼ� ��Ʈ������ ICE ������ ����ϵ��� �����Ϸ���, ����ϰ��� �ϴ� STUN �� TURN ������ ȣ��Ʈ �̸��� �ñ׳θ� �� �� ������ peerConnectionOptions ȯ�漳�� �Ķ���Ϳ��� �����ؾ� �մϴ�. �� �Ķ������ ������ �����ϰ� �Ķ���� �����ϴ� ����� ���� �ڼ��� ������ �ȼ� ��Ʈ���� ���۷����� �����ϼ���.
�̿� ���Ҿ� ��ü STUN �Ǵ� TURN ������ ȣ�����ϴ� ��� peerConnectionOptions �Ķ���Ϳ��� ������ IP �ּҿ� ��Ʈ�� ������ ���ͳݿ��� �ݵ�� ǥ�õǾ�� �մϴ�.
��Ƽ �÷��̾� ��������Ʈ
��� ����ڰ� ������ �� ���� ���ǿ� ������ �ش� ������ �����ϴ� ������ �������� �ʰ� �����ؾ� �ϴ� ��찡 �ֽ��ϴ�.
���� ��� ��ǥ�ڴ� ���������� �� ������ ������ ������ �� ������ �ٸ� ����ڴ� ��Ʈ���� ���� �� ������, ���������̼ǰ� ���� ������ ����� ���Դϴ�. �ƴϸ� ����ڸ��� �ٸ� Ŀ���� ��Ʈ�� ��Ʈ�� �����Ͽ� ������ ���� ������ �پ��� ��Ҹ� �ǽð����� �����ؾ� �� ���� �ֽ��ϴ�.
�̷��� �ó����������� ������ ���� �ϳ��� �� ���� �������� �ϳ��� �� ���� �ν��Ͻ��� �����ϰ�, �ñ׳θ� �� �� ���������� �ٸ� �÷��̾� HTML �������� ����� �˴ϴ�.
�� �ó����������� ���� �ٸ� HTML �÷��̾� �������� �� JavaScript ȯ���� Ŀ������¡�Ͽ� ���ϴ� ��Ʈ�Ѹ� ������ �� �ֽ��ϴ�. �� ����, ������� �� Ŭ������ �ñ׳θ� �� �� �������� �ٸ� URL�� ��û�ؾ� �մϴ�. ���� ��� ��ǥ�ڴ� http://yourhostname/presenter.html
�� �ε��ϰ�, �ٸ� ����ڵ��� http://yourhostname/attendee.html
�� �ε��մϴ�.
�÷��̾� ������ Ŀ������¡ ����� ���� �ڼ��� ������ �÷��̾� �� ������ Ŀ������¡�ϱ��� �����ϼ���.
��ġ����ŷ�� ���� ���� Ǯ ����
��ġ����Ŀ�� �� ���� 5.5���� ���� �ߴܵǾ����ϴ�. ��ġ����Ŀ�� �ʿ��� ����ڴ� �ȼ� ��Ʈ���� �������� ���� ������ ����� �� �ֽ��ϴ�. ������ �ش� ����� ���� �������� ������ ���� ��� �������� �۵��� �ߴܵ� �� �����Ƿ� ������ ��ü���� �ַ���� �����ϴ� ���� �����ϴ�.
��� ����ڸ� ������ ��Ʈ���� �����ϴ� ��� �� ����ڿ��� ������ ���ͷ�Ƽ�� ������ �����Ϸ��� ���, ����ڸ��� ������ �ȼ� ��Ʈ���� ������Ʈ ������ �����ϰ�, �� ����ڸ� ������ �ñ׳θ� �� �� ������ �����ϰ� �Ͽ� ������ �����ϸ� �˴ϴ�.
�ȼ� ��Ʈ���� ������Ʈ�� �� ������ ������ ȣ��Ʈ���� ������ ���� �ְ�, �� ���� �� ������Ʈ�� ��Ʈ ������ �ٸ� ��� ��Ʈ�� ����ϵ��� ȯ�漳���Ѵٸ� ������ ȣ��Ʈ�� 2�� �̻��� ������ ���� ���� �ֽ��ϴ�. �̷��� ��Ʈ ���ÿ� ���� �ڼ��� ������ �ȼ� ��Ʈ���� ���۷����� �����ϼ���.
���� ��ǻ�Ϳ��� �ȼ� ��Ʈ������ ����Ͽ� �ټ��� �� ���� �ν��Ͻ��� ������ ��ȹ�� ���, NVIDIA GeForce ���ΰ� ���� �Һ��ڱ� ���� ī�� ��ټ��� �ִ� 8���� ���ڴ��� ���ÿ� ������ �� �ֽ��ϴ�(2024�� ����). Quadro, Tesla�� ���� �������� ī���� ��� ���� ������ �������� �ʽ��ϴ�.
�̷��� ������ ȯ�漳���� �����ϴ� �� ������ �ǵ���, �ȼ� ��Ʈ���� �ý����� � �ñ׳θ� �� �� ������ ����� �� �ִ����� Ŭ���̾�Ʈ ���ῡ ���ǰ� �ִ��� ���θ� �����ϴ� ��ġ����Ŀ ������ ����� �� �ֽ��ϴ�.
Ŭ���̾�Ʈ���� ��ü �ñ׳θ� �� �� ���� URL�� �����ؾ� �ϴ� ��� ��ġ����Ŀ ������ ���� �����մϴ�. ��ġ����Ŀ ������ �� ��û�ڸ� ��ü �ñ׳θ� �� �� ������ �����ϸ�, �ñ׳θ� �� �� ������ Ŭ���̾�Ʈ�� UE5 ���ø����̼� ���� �Ǿ� �� �Ǿ� ������ �����մϴ�. �ش� ������ Ȱ�� ������ ���� ��ġ����Ŀ ������ ���� ������ ������ ������ ���� �ñ׳θ� �� �� ������ �������� �ʽ��ϴ�.
�ȼ� ��Ʈ���� �ý��ۿ� ��ġ����Ŀ ������ ���۷��� ������ ���ԵǾ� ������, ��ġ�� PixelStreamingInfrastructure/Matchmaker/
�����Դϴ�. �� ������ �״�� ����ص� �Ǹ�, �ñ׳θ� �� �� �������� ������ ������ ó���ϴ� �� matchmaker.js
������ �ʿ信 ���� Ŀ������¡�ص� �˴ϴ�.
��ġ����Ŀ ������ �����Ϸ��� ���� �ܰ踦 ��������.
-
�ñ׳θ� �� �� ������ �����ϱ� ����
run.bat
������ �����Ͽ� ��ġ����Ŀ ������ �����մϴ�. �⺻������ ������ 90�� ��Ʈ���� Ŭ���̾�Ʈ�� HTTP ������ �����ϰ�, 9999�� ��Ʈ���� �ñ׳θ� �� �� ������ ������ �����մϴ�. �̷��� ������ ����ٿ��� ������ ���� ȯ�漳�� �Ķ���� �����Ͽ� �������̵��� �� �ֽ��ϴ�.�Ķ���� ���� --HttpPort ��ġ����Ŀ ������ ���������� ������ HTTP ������ �����ϴ� ��Ʈ�� �����մϴ�. --MatchmakerPort ��ġ����Ŀ ������ �ñ׳θ� �� �� �������� ������ ���� ������ �����ϴ� ��Ʈ�� �����մϴ�. ���� ��� ������ �����ϴ�.
\> node cirrus --HttpPort 88 --MatchmakerPort 9988
-
�ñ׳θ� �� �� ������ ������ ���� ȯ�漳�� �Ķ���� �����մϴ�.
�Ķ���� ���� --UseMatchmaker �� �Ķ���� true
�� �����ϸ� �ñ׳θ� �� ������ ���� ���¸� ��ġ����Ŀ ������ �����մϴ�.--MatchmakerAddress �� �ñ׳θ� �� �� ������ ������ ��ġ����Ŀ ������ IP �ּ��Դϴ�. --MatchmakerPort �� �ñ׳θ� �� �� ������ ��ġ����Ŀ ������ ������ �����ؾ� �� �� ����� ��Ʈ�Դϴ�. �� ���� ��ġ����Ŀ ������ ������ --MatchmakerPort ���� ��ġ�ؾ� �մϴ�. --PublicIp ���������� ǥ�õ� �ñ׳θ� �� �� ���� IP �ּ��Դϴ�. ��ġ����Ŀ ������ ����ڸ� �� �ñ׳θ� �� �� ������ ������ �� �� IP �ּҷ� �����ϴ�. ���� ���� �������� ǥ�õǾ�� �մϴ�. --HttpPort �ñ׳θ� �� �� ������ HTTP ������ �����ϴ� ��Ʈ�Դϴ�. ��ġ����Ŀ ������ ����ڸ� �� �ñ׳θ� �� �� ������ ������ �� �� ��Ʈ�� �����ϴ�. �� �Ķ���� �����ϴ� ����� �ȼ� ��Ʈ���� ���۷����� �����ϼ���.
�µ�ǵ� �����ϸ�
�� ����ó�� ������ Ǯ ������ ������ �� Ŭ���̾�Ʈ ������ ó���ϴ� ������ ����Ϸ��� ���, ������ �� ���� ���ø����̼� ���� �̸� ������ ���� �ʴ� ���� �����ϴ�. ����� ���� ���� ������ ������ ���ҽ��� ����Ǹ�, �ݴ�� ����� ���� ���� ������ ������ ������ ������ ������ ��ٷ��� �� �� �ֽ��ϴ�. �� ��� Ŭ���̾�Ʈ�� ������ �õ��� ������ �� ���� �ν��Ͻ��� �����ϴ� ���� �����ϴ�.
�ȼ� ��Ʈ���� �ý����� ������Ʈ�� ������ ��ġ����Ŀ ������ ������, �� ���� ���� �����ϸ� ȣ���� �ý����� �����ϴ� �� �ʿ��� ��� ��Ҹ� ���� ���Դϴ�. ������ ���� �̷��� ������ Ŭ���� ���÷��̴� ��ü Ŭ���� ���� �����ڿ��� ��� �����ϴ����� �� �ֽ��ϴ�.
SFU��?
������ ���� ����(Selective Forwarding Unit, SFU)�� ������ ���� �̵�� ��Ʈ���� ���������� ������ϴ� �����Դϴ�. �ȼ� ��Ʈ���ֿ��� SFU�� ������ �� ���� ���ø����̼ǿ��� ��Ʈ�� ������ �����ϰ�, ������ �Ǿ�(���� ����� �� ������)�� �����ϴ� ���Դϴ�. ������ ���������� ���꼼���Ͽ� �� ������ �Ǿ��� �켱�� ��Ʈ��ũ ���ǿ� ���߱ �մϴ�.
SFU ��� �� �ȼ� ��Ʈ������ ��Ʈ�� �뿪�� ������ ���� ���� ��ε�ij��Ʈ ������ �����մϴ�. ���� ��ε�ij��Ʈ �������� �� �ν��Ͻ��� �ػ� �پ��� �ټ��� ��Ʈ���� �����մϴ�. �� ���� SFU�� �������� ��Ʈ��ũ ���ǿ� ���� ��Ʈ���� � ����Ƽ ������Ʈ�� �����ڿ��� �������� �����մϴ�.
���� �ȼ� ��Ʈ������ SFU�� ����ܰ� ����Դϴ�.
SFU ��� ����
SFU�� ��� �Ǿ �Ǿ� �� �Ǿ� ������� �ȼ� ��Ʈ���� ���ø����̼ǿ� ����� ���, �Ϲ������� ������ ���ں��� �� ���� �Ǿ ������ �� �ִ� �ϴ�� ��Ʈ���� �����ϰ� �մϴ�. SFU�� �ȼ� ��Ʈ���� ���ø����̼��� �ټ��� ����� �����ڸ� �ʿ�� �ϸ�, �̷��� �������� ��Ʈ��ũ ������ ���� �� �پ��� ��Ʈ�� ����Ƽ ����(��: ���� ��Ʈ����Ʈ, �ػ� �Ǵ� ������ ����Ʈ)�� �䱸�� �� �����ϰ� ����� �� �ֽ��ϴ�.
SFU ȯ�漳��
SFU�� PixelStreamingInfrastructure/SFU/
�� �ִ� config.js
������ �����Ͽ� ȯ�漳���� �� �ֽ��ϴ�.
SFU�� �⺻������ �ػ� ��Ʈ���� ��ü, 1/2, 1/4 �� 3������ ����Ƽ ������ �����ϵ��� ȯ�漳���Ǿ� �ֽ��ϴ�. �̷��� ȯ�漳���� -SimulcastParameters=
�� ����Ͽ� ������ �� �ֽ��ϴ�. �ڼ��� ������ �ȼ� ��Ʈ���� ���۷����� �����ϼ���.
���ڵ� ������ 8���� ���ѵǴ� ��찡 ���� �Һ��ڿ� GPU���� H.264 �ϵ���� ���ڴ��� ����� �� 8���� �ʰ��ϴ� ���� ��ε�ij��Ʈ ��Ʈ���� �����ϸ� ���� ���ѿ� �ε��� �� �ֽ��ϴ�. Pixel Streaming 2�� ��� 8��°�� �ʰ��ϴ� ��Ʈ���� ����Ʈ���� ���ڴ��� �ڵ� ��ȯ�˴ϴ�. �̴� NVidia �ϵ������ ���� ����Դϴ�.
ȣ��Ʈ �ӽ� �ϵ���� ����
�� ���� ���ø����̼� �� �ȼ� ��Ʈ���� �� ���� ȣ�����ϱ� ���� Amazon(AWS) �Ǵ� Microsoft Azure�� ���� ���� �����ڸ� �����ϴ� ���, �ϵ���� ������ �ٸ� ���� ȣ��Ʈ ���� �߿��� ������ �� �ֽ��ϴ�. ȣ��Ʈ�� ������ ���� ������ ��Ʈ���� ����Ƽ�� ������ �� �� �ִٴ� ���� �����ϼ���.
���� ��� GPU ������ �������ų� �� ���� ȣ��Ʈ�� �����ϴ� ���, ��Ʈ������ �ִ� ���� ����Ƽ�� ���� ���� �� �ֽ��ϴ�.