C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[61934] Re:Re:Re:[질문]동영상 저장
궁금이... [darkman76] 1546 읽음    2010-07-16 14:24
너무 자세한 답변 해박한 지식에 대한 공유 감사합니다.

실제로 반신반의 하면서 질문을 올렸는데 이렇게 상세한 지식을 갖고계신 분이 있을줄이야

몰랐습니다.

근데 말이죠 제가 스트리밍을 잘 못 하고 있나 봅니다.

최초 스트리밍 서버(VLC)를 셋팅할때  대상이란 곳에 통신 프로토콜 선택하는 곳에 UDP로 통신했고

트랜스 코딩 옵션 프로파일 부분에 님께서 말씀하신 H.264 + AAC(TS)를 선택하고 셋팅했습니다.

그리고 받는쪽에선 당연히 UDP통신 모듈을 사용해서 받아서 바로바로 저장 하는데

bool __fastcall Common_SaveFile(AnsiString sFname, byte* pMsg)
{
    try
    {
        if(DirectoryExists(sFname) == false)
            CreateDir(sFname);

        AnsiString sTmpstr = "test.TS";
        FILE *fout;

        sTmpstr = sFname + sTmpstr;

        fout = fopen(sTmpstr.c_str(), "at+");
        fwrite(pMsg, sTmpstr.Length(), 1, fout);

        fclose(fout);
    }
    catch( ... )
    {
        return false;
    }
    return true;
}

보시면 아시겠지만 unsigned char로 받은 통신버퍼를 그대로 저장하거든요

그런데도 곰플레이어에서는 코덱을 찾을수 없다고 나오네요

그리고 스트리밍 플레이를 테스트 해보았는데 윈도우미디어로요

거기서는 이상하게도 다른 포맷은 코덱을 찾을수 없다고 나오고 유독 WMV + WMA(ASF)

플레이가 되는군요 그리고 음성은 안나오고요

제가 설정을 잘 못한건지 모르겠습니다.

그리고 마지막으로 VLC라는게 원본파일에 관계 없이 아무 포맷으로 보낼 수 있는건가요?

자세한 답변 너무 감사한데 또 이렇게 질문을 마구 던지니 송구스럽습니다.

그럼 즐거운 주말 되세요 








Lyn 님이 쓰신 글 :
: 추가설명으로..
:
: 영상코덱 이외에 음성코덱 (Mp3, WMA, OGG) 등도 들어갑니다.
: 포맷에 따라선 자막이 들어가는 경우도 있지요.
:
: 즉...
:
: mkv라는 컨테이너 포맷 안에는 x264 등의 영상코덱으로 압축된 데이터와, ogg 등의음성코덱으로 압축된 데이터가 muxing 되어있죠...
:
:
: mk4
: 아제나 님이 쓰신 글 :
: : 동영상은 컨테이너와 코덱으로 나뉘어집니다.
: :
: : .avi
: : .mp4
: : .mkv
: : 이런 것은 컨테이너라고 하고요.
: :
: : H264
: : MPEG4
: : XVID
: : DIVX
: : 이런 것은 코덱이라고 하지요.
: :
: : 그리고 네트워크 전송을 위하여 동영상을 패킷타이징 하는 것을
: : 채널 코딩이라고 합니다. 보통 RAW Stream, RTP over UDP, TransportStream 등이 있지요.
: :
: : VLC 플레이어로 스트리밍 할 때, 코덱과 채널 코딩 방법를 선택할 수 있는데요.
: : 바로 받아서 플레이할 수 있는 채널 코딩 형식은 TransportStream (ts) 형식 밖에 없습니다.
: : 나머지는 전송된 데이터를 다시 합치거나 나누거나 따로 처리를 필요로 합니다.
: :
: : 그러니까 VLC에서 TS로 전송하시고, 저장을 .TS로 하시면
: : 곰플레이어나 팟플레이어 같은 프로그램으로 그대로 재생할 수 있습니다.
: : 코덱 선택은 곰플레이어나 팟플레이어가 지원하는 코덱이면 되는데 H264, AAC 쓰는게 가장 무난하겠지요.
: :
: : TS 형식은 우리가 흔히 사용하는 디지털 상용 방송에서 쓰는 방식이라 생각하시면 됩니다.
: : HDTV 저장하면 보통 .TP로 저장하죠. 사실 그 안에 내용은 TS 입니다.
: :
: :
: :
: : 고구마 색깔 님이 쓰신 글 :
: : : VLC 플레이어를 스트리밍 서버로 두고 클라이언트에서는 UDP로 받은 스트리밍 정보를
: : :
: : : 그대로 파일로 저장하고 싶은데
: : :
: : : 제가 임의로 확장자 .MP4 이렇게 해서 파일로 저장하고 곰플레이어로 플레이 하니까 코덱이 없다고 나오네요
: : :
: : : 스트리밍 서버에서 보낸 정보는 인코딩된 정보일것이고 그걸 스트리밍으로 받아서 그대로 파일로 쓰면 원본과
: : :
: : : 같은 파일이 될 것 같은데 그게 생각처럼 쉬운일이 아니네요
: : :
: : : 혹시 경험이 있으신 분은 답글 부탁드립니다. ^^

+ -

관련 글 리스트
61918 [질문]동영상 저장 고구마 색깔 1152 2010/07/15
61920     Re:[질문]동영상 저장 아제나 1373 2010/07/15
61921         Re:Re:[질문]동영상 저장 Lyn 1256 2010/07/15
61934             Re:Re:Re:[질문]동영상 저장 궁금이... 1546 2010/07/16
61950                 Re:Re:Re:Re:[질문]동영상 저장 아제나 2831 2010/07/19
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.