내 영화를 위한 미디어 서버를 설정하고 있습니다. 서버는 여러 대의 노트북/데스크톱과 마찬가지로 인터넷에 연결되어 있습니다. 서버는 최신 Ubuntu(서버 버전이 아닌 데스크톱 버전)를 실행합니다.
이것이 내가 달성하려는 시나리오입니다.
- 서버가 켜져 있고 네트워크에 연결되어 있습니다.
- 클라이언트(내 노트북)는 서버에 대한 웹 인터페이스를 엽니다(또는 ssh를 통해 서버에 명령을 보냅니다). 웹 인터페이스를 통해 원하는 영화를 선택하면 인터페이스가 명령을 실행합니다.
- 이 명령은 지정된 영화를 재생하고 이를 요청한 컴퓨터에 창(창만)을 전달하는 VLC 인스턴스를 생성합니다.
- 최종 결과: 내 노트북에는 영화를 재생하는 VLC 창이 있습니다. 작업이 끝나면 닫을 수 있습니다.
이와 같이 네트워크상의 클라이언트에 창을 전달할 수 있습니까?
답변1
그것은가능한, 그러나 이상적이지 않을 수도 있습니다. VLC 클라이언트(창)는 원하는 모니터에 나타나지만 재생됩니다.압축되지 않은비디오는 Network X 요청으로 전송되어야 합니다. 오버헤드가 없더라도 24bpp 및 30fps에서 720×540을 전송하려면 약 279Mbps(720px × 540px × 3바이트/픽셀 × 30fps × 8비트/바이트)가 필요합니다.
이더넷 프레임, TCP/IP 패킷 및 X 프로토콜 자체가 이를 강화합니다.
더욱 반직관적으로, 사후 처리된 RGB 데이터를 표시하므로 창이 클수록 더 많은 대역폭이 필요합니다. (실제 스케일링은 디스플레이 측에서 발생할 수 있습니다. 이 경우,줄이다창 크기는 성능에 영향을 미치지 않습니다.)
VLC(또는 다른 X 클라이언트)가 모니터에 표시되면 localhost
기대하는 응답성을 제공하기 위해 광범위한 최적화가 시작됩니다.
원한다면 직접 시도해 볼 수도 있습니다(실제로 보는 것은 재미있습니다).
ssh -Yf user@hostname vlc some-file.avi
VLC가 시작되지만: X 클라이언트의 호스트에서 오디오가 재생됩니다( hostname
위).아니요X 서버가 호스팅되고 비디오는 예상되는 fps의 일부로 업데이트됩니다. 스트림에 들어간 지 몇 초 안에 비디오와 오디오가 완전히 동기화되지 않습니다. 대부분의 표준 스트림은 시청할 수 없습니다. HD A/V 스트리밍은 생각하지 마세요.
표준 미디어 서버 설정 제공압축특정 형태의 네트워크 파일 액세스 프로토콜(예: NFS, CIFS)을 사용하여 서버에서 클라이언트로 스트리밍하고 비디오 클라이언트가 압축을 풀고 재생할 수 있도록 합니다.