스트리밍은 스트리밍 포멧으로 변환을 해야 합니다. transcoding이라고하죠. 일단 MPEG에도 여러방식이 있지만, encoding방식에 따라 스트리밍이 가능한지 안한지 구분을 하게 됩니다. RTP/RTSP 프로토콜을 이용하여 스트리밍을 하지만 그 미디어가 플레이 될때. 위에 따라오는 패킷이 loss가 생겨도 미디어를 얼마나 잘 플레이 해줄까가 문제가 되겠네요..
예로 AVI가 앞뒤로 10M를 읽어서 decoding을 해서 영상으로 보여진다고 하면.. 패킷의 사이즈는 정해져있어서 10M를 다보내진 못합니다. 그래서 이것을 다 받아야만 플레이가 가능하죠. 정확히 코덱에대한 알고리즘을 알지는 못하지만 MPEG의 기본 코덱인 mpg는 스트리밍이 가능합니다.
H.263, mp3도 스트리밍이 가능합니다.
제가 avi를 jmf를 이용해서 스트리밍을 했을때 안돼더군요..
이럴때는 transcoding을 이용하여 스트리밍 가능한 포멧으로 바꾸어주어야 합니다.
조금 검색해 보면 streaming가능한 파일포멧을 찾을수 있을겁니다.^^;;
추가로 윈도미디어에서는 wmv,asf가 스트리밍 가능 포멧이죠^^;;
RTP/RTSP로 스트리밍할 때, 보통 .MP4 또는 .MOV를 사용합니다.(사실 MP4는 MOV를 기반으로 만든 것이기 때문에 접근방식은 같습니다.) 이 두개의 파일 포맷은 힌트트랙을 제공하는데, 이는 데이타 전송방법을 저장하는데 사용합니다. 따라서 RTP/RTSP 방식으로 전송하는 놈은 저장된 미디어의 포맷(보통 인코딩 방식)과 상관없이 힌트트랙만을 참조해서 데이타를 보내게 됩니다. 당연한 얘기지만, 이 방식을 사용하려면 전송하기 이전에 반드시 힌트트랙을 생성해줘야 합니다.
만약에 AVI를 RTP/RTSP로 데이타를 전송한다면 약간 복잡해지지만, 가능합니다. 전송하는 놈이 저장된 미디어 포맷에 따라서 적절한 페이로드를 생성해서 보내주면 됩니다. 얘는 새로운 미디어 포맷의 전송기능을 추가할 때마다 그에 따른 페이로드를 구성해주는 모듈을 추가해야합니다.
RTP/RTSP를 사용해서 어떤 미디어 포맷도 전송가능하리라 생각합니다. 독자적인 페이로드를 정의해서 사용할 수도 있겠지만, 여러 다른 프로그램과 호환성을 고려한다면 전송할 미디어 포멧의 페이로드를 정의한 표준문서를 찾아보는 것이 좋겠습니다.
스트리밍은 스트리밍
스트리밍은 스트리밍 포멧으로 변환을 해야 합니다. transcoding이라고하죠. 일단 MPEG에도 여러방식이 있지만, encoding방식에 따라 스트리밍이 가능한지 안한지 구분을 하게 됩니다. RTP/RTSP 프로토콜을 이용하여 스트리밍을 하지만 그 미디어가 플레이 될때. 위에 따라오는 패킷이 loss가 생겨도 미디어를 얼마나 잘 플레이 해줄까가 문제가 되겠네요..
예로 AVI가 앞뒤로 10M를 읽어서 decoding을 해서 영상으로 보여진다고 하면.. 패킷의 사이즈는 정해져있어서 10M를 다보내진 못합니다. 그래서 이것을 다 받아야만 플레이가 가능하죠. 정확히 코덱에대한 알고리즘을 알지는 못하지만 MPEG의 기본 코덱인 mpg는 스트리밍이 가능합니다.
H.263, mp3도 스트리밍이 가능합니다.
제가 avi를 jmf를 이용해서 스트리밍을 했을때 안돼더군요..
이럴때는 transcoding을 이용하여 스트리밍 가능한 포멧으로 바꾸어주어야 합니다.
조금 검색해 보면 streaming가능한 파일포멧을 찾을수 있을겁니다.^^;;
추가로 윈도미디어에서는 wmv,asf가 스트리밍 가능 포멧이죠^^;;
DMB도 그렇고
Streaming에서
RTP위의 프로토콜로는 MPEG2 TS가 많이 쓰입니다.
ES야 뭐가 됐든 상관이 없지요.
인터넷 경유라면 비디오 ES의 경우
MPEG4 AVC 또는 MS v-1가
많이 쓰입니다.
___________________________________
Less is More (Robert Browning)
___________________________________
Less is More (Robert Browning)
RTP/RTSP로 스트리밍할
RTP/RTSP로 스트리밍할 때, 보통 .MP4 또는 .MOV를 사용합니다.(사실 MP4는 MOV를 기반으로 만든 것이기 때문에 접근방식은 같습니다.) 이 두개의 파일 포맷은 힌트트랙을 제공하는데, 이는 데이타 전송방법을 저장하는데 사용합니다. 따라서 RTP/RTSP 방식으로 전송하는 놈은 저장된 미디어의 포맷(보통 인코딩 방식)과 상관없이 힌트트랙만을 참조해서 데이타를 보내게 됩니다. 당연한 얘기지만, 이 방식을 사용하려면 전송하기 이전에 반드시 힌트트랙을 생성해줘야 합니다.
만약에 AVI를 RTP/RTSP로 데이타를 전송한다면 약간 복잡해지지만, 가능합니다. 전송하는 놈이 저장된 미디어 포맷에 따라서 적절한 페이로드를 생성해서 보내주면 됩니다. 얘는 새로운 미디어 포맷의 전송기능을 추가할 때마다 그에 따른 페이로드를 구성해주는 모듈을 추가해야합니다.
RTP/RTSP를 사용해서 어떤 미디어 포맷도 전송가능하리라 생각합니다. 독자적인 페이로드를 정의해서 사용할 수도 있겠지만, 여러 다른 프로그램과 호환성을 고려한다면 전송할 미디어 포멧의 페이로드를 정의한 표준문서를 찾아보는 것이 좋겠습니다.
내 블로그: http://unipro.tistory.com
댓글 달기