공부용 블로그

Protocol_1주차(3) 본문

설계/Protocol

Protocol_1주차(3)

tomato212 2018. 6. 1. 18:15

1. What is a video streaming protocol?

(참고 : https://www.dacast.com/blog/video-streaming-protocol/)


"A video streaming protocol is a standardized delivery methods for breaking up video into chunks, 

sending it to the viewer, and reassembling it."


대부분의 디지털 비디오는 크게 두 가지 용도로 디자인 되었다. 

저장(storage)과 재생(playback).


대부분의 비디오 파일은 스트리밍을 위해 설계되지 않았다.

간단히 말해 비디오를 스트리밍하는 것은 비디오 파일을 Chunk(작은 조각)으로 나누는 것이다.

이 chunk는 순차적으로 전송되어(server to player) 수신되면 재생한다.


라이브 스트리밍의 경우 video source(원본 비디오)가 카메라에서 곧바로 들어온다. 그렇지 않으면 파일에서 온다.


2. 프로토콜과 codec의 차이점은?


코덱은 비디오 압축기술이다. 각가의 코덱은 서로 다른 목적으로 사용된다.

예를 들어, 애플의 ProRes는 비디오 편집에 사용되고, H.264는 가장 일반적인 코덱으로 온라인 비디오를 위해 널리 사용된다.

(프로토콜과의 차이점은 3번질문 맨아래와 연결됨)


3. format은 뭐지?


포맷은 비디오 파일의 container format을 말한다. 보통 container format은 .mp4, .m4v, avi를 포함한다.

container format은 간단히 말해 비디오파일, 오디오파일, metadata를 담고 있는 박스이다. live streamer에게 중요한 개념은 아니다.


내가 의류도매상이라고 가정해보자.

나는 옷들을 bulk로 운송한다.(옷들=video)

코덱은 이 옷들을 압축해 묶음으로 만드는 장비이다. (공간을 절약해준다)

container format은 이 묶음들은 넣는 박스이다.

streaming protocol은 이 박스들을 목적지까지 운송할 수 있는 통로 or 길이다. 


4. 스트리밍 프로토콜의 종류는?


5. Real-Time Messaging Protocol(RTMP)

- 스트리밍 프로토콜의 원조격인 RTMP는 MicroMedia에서 개발했으며 현재에도 가장 널리 사용되고 있다.

그러나 현재는 live stream을 처리하는데 주로 쓰인다.


when you set up your encoder to send your video feed to your online video platform the video will be sent to the CDN using the RTMP protocol, but then it will be delivered to the end viewer in another protocol, usually hls streaming protocol.


=> 무슨말이야??


내 비디오를 인코딩해서 online video platform 으로 보낼때, 비디오는 RTMP 프로토콜을 사용해서 CDN으로 보내진다.

그렇지만 다시 그 비디오는 다른 프로토콜을 사용해서 최종 viewer(보통 그 viewer가 사용하는 스트리밍 프로토콜)에게 전달된다. ???


RTMP 프로토콜은 viewer-facing video streaming protocol로 비추된다.

왜냐면 Flash plugin에 의존되기 때문에.

플러그인은 수년동안 보안 문제로 문제가 되어왔고, 단계적으로 중단되어 왔다. 


6. 왜 최종 viewer로 비디오 파일을 전송할때는 RTMP를 안쓰고 다른 프로토콜을 사용하지?


7. 플러그인은 왜 보안문제가 생겼을까?


8. RTMP는 누가 쓰지?


RTMP는 매우 낮은 latency를 제공한다.

그러나 플래시 플러그인을 재생해야 하기 때문에 권장하지 않는다.

예외적으로 스트림 처리에서는 계속 사용한다. 이 부분에서는 RTMP의 역할이 아직 강력하다.


9. low latency를 달성하려면?

(참고 : http://castware.co.kr/low-latency-비디오-테스트를-마치며/)



10. latency와 실제 일어나는 시간과 뷰어가 화면으로 보는 시간의 차이(딜레이)가 서로 다른 것인가?

(참고 : http://castware.co.kr/이벤트-테스트/)


Some protocols focus on reducing latency, or the delay between an event happening in real life and being depicted on the viewer’s screen. Some protocols only work on certain systems. Others focus on digital rights management (DRM).


Answer : 같은 것임. latency가 생기는 요인에는 여러가지가 있음. (서버와 클라이언트의 물리적 거리, 뷰어의 수, 네트워크 상태, Stream의 수 등등)






'설계 > Protocol' 카테고리의 다른 글

protocol_2주차(2) HLS(apple)  (0) 2018.06.08
protocol_2주차(1) WebRTC  (0) 2018.06.08
What is latency?  (0) 2018.06.02
Protocol_1주차(2)  (0) 2018.05.30
Protocol_1주차(1)  (0) 2018.05.28