게시 지점으로 ASF 데이터 보내기
[이 페이지와 연결된 기능인 Windows Media Format 11 SDK는 레거시 기능입니다. 원본 판독기 및 싱크 작성기에 의해 대체되었습니다. 원본 판독기 및 싱크 작성기는 Windows 10 및 Windows 11 최적화되었습니다. 가능한 경우 새 코드에서 Windows Media Format 11 SDK 대신 소스 판독기 및 싱크 기록기를 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]
Windows Media Format SDK를 사용하여 ASF 데이터를 Windows Media 서버의 게시 지점으로 푸시할 수 있습니다. 그런 다음 서버는 해당 게시 지점에서 데이터를 브로드캐스트합니다. 이 시나리오는 한 컴퓨터에서 콘텐츠를 캡처하거나 다시 인코딩하고 다른 컴퓨터(또는 여러 컴퓨터)에서 콘텐츠를 배포하려는 경우에 유용합니다. 푸시 배포는 HTTP 프로토콜을 사용하기 때문에 방화벽 내의 컴퓨터에서 방화벽 외부의 Windows Media 서버로 콘텐츠를 이동해야 하는 경우에도 유용합니다.
참고
게시 지점은 기본적으로 리렉터처럼 작동합니다. 클라이언트는 URL(예: mms://MyServer/MyPublishingPoint)의 게시 지점을 지정하고 서버는 이를 콘텐츠 요청으로 변환합니다.
게시 지점에 데이터를 푸시하려면 밀어넣기 싱크 개체를 기록기 개체에 연결합니다. 푸시 싱크는 서버에 대한 연결을 열고 푸시 세션을 관리하는 데 사용됩니다. 기록기 개체는 파일 만들기의 다른 모든 측면을 처리합니다.
다음 단계를 수행합니다.
- IWMWriter 포인터를 반환하는 WMCreateWriter 함수를 호출하여 기록기 개체를 만듭니다.
- IWMWriterPushSink 포인터를 반환하는 WMCreateWriterPushSink 함수를 호출하여 밀어넣기 싱크 개체를 만듭니다.
- 기록기에서 IWMWriterAdvanced::AddSink 를 호출하고 네트워크 싱크의 IWMWriterPushSink 인터페이스에 대한 포인터를 사용하여 네트워크 싱크를 기록기에 연결합니다.
- IWMWriterPushSink::Connect를 호출하여 서버에 연결합니다.
- 스트림을 씁니다. 이 단계에서는 기록기 개체에서 프로필을 설정하고, 작성기에 샘플을 보내고, 다른 작업을 수행할 수 있습니다. 자세한 내용은 ASF 파일 작성을 참조하세요. 추가 작업에는 메타데이터 특성 설정( 메타데이터 작업에 설명된 대로) 또는 스트림에서 live-DRM 설정( DRM 지원 사용에 설명된 대로)이 포함될 수 있습니다. 이러한 작업은 ASF 파일 쓰기와 동일하게 수행됩니다.
- 쓰기가 완료되면 기록 기에서 IWMWriterAdvanced::RemoveSink 를 호출하여 푸시 싱크 개체를 분리합니다.
- 푸시 싱크에서 IWMWriterPushSink::EndSession 을 호출하여 서버와의 세션을 종료합니다.
이러한 단계는 WMVNetWrite 샘플 애플리케이션에 설명되어 있습니다.
참고
매우 낮은 비트 전송률의 비디오 전용 파일을 보내는 경우 게시 지점에서 몇 초 동안 재생을 시작하지 않을 수 있습니다. 예를 들어 단일 패킷에 작은 비디오 프레임이 많고 오디오가 없는 경우 또는 낮은 비트 속도의 비디오 전용 파일에서 첫 번째 패킷과 두 번째 패킷 사이에 긴 시간 간격이 있는 경우와 같은 다양한 경우에 발생할 수 있습니다. 이 문제를 방지하려면 파일에 자동 오디오 스트림을 삽입합니다.
인증
서버에 대한 인증은 푸시 싱크 개체에 의해 자동으로 처리됩니다. 그러나 애플리케이션은 자격 증명을 제공해야 할 수 있습니다. 이 작업은 다음과 같이 IWMCredentialCallback 콜백 인터페이스를 통해 수행됩니다.
- 애플리케이션에서 IWMStatusCallback 및 IWMCredentialCallback 인터페이스를 구현합니다.
- IWMRegisterCallback 인터페이스에 대한 푸시 싱크 개체를 쿼리합니다.
- 애플리케이션의 IWMStatusCallback 인터페이스에 대한 포인터를 사용하여 IWMRegisterCallback::Advise를 호출합니다.
- 푸시 싱크가 애플리케이션에서 자격 증명을 가져와야 하는 경우 IWMCredentialCallback 인터페이스에 대한 IWMStatusCallback 포인터를 쿼리하고 IWMCredentialCallback::AcquireCredentials를 호출합니다. 이 방법에 대한 자세한 내용은 인증을 참조 하세요.
- 완료되면 IWMRegisterCallback::Unadvise 를 호출하여 푸시 싱크에서 이벤트 알림 가져오기를 중지합니다.
관련 항목