UDP 로 TS 파일을 송출하는 서버를 개발하였습니다.
그리고 나서 테스트용으로 "UDP 로 수신한 패킷을 저장하는 프로그램을 만들어봤는데,
패킷은 UDP 해더 빼고 사이즈대로 버퍼에 있는걸 저장하는 것 같은데,
저장된 파일이 play 가 안되네요. TS 포맷은 별도의 해더를 생성하지 않아도
되는게 아닌가요? 아니면 저장했을 때 다른 형태로 저장을 해야하나요?
아리송하네요 ㅜㅜ
<!--CodeS-->
procedure TForm.IdUDPServerUDPRead(AThread: TIdUDPListenerThread;
AData: TBytes; ABinding: TIdSocketHandle);
var
FileHandle: Integer;
begin
try
FileHandle := 0;
FileHandle := FileOpen('a.ts', fmOpenReadWrite);
if length(Adata) < 1310 then exit;
FileSeek(FileHandle, fpos, 0);
FileWrite(FileHandle, AData, length(AData));
fpos := fpos + length(AData);
Memo.Lines.Add(Format('%d position, Data length %d', [fpos, length(AData)]));
finally
FileClose(FileHandle);
end;
end;
<!--CodeE-->
if length(Adata) < 1310 then exit;
이 부분이 의심이 가네요. 1310이 1310 byte를 의미하는것 같은데
1310 byte보다 적으면 FileSeek을 통해서 탐색하고 FileWrite도 파일에
기록되는것 같은데 보통 동영상파일을 보면 1310 byte는 기본적으로 넘지않을까요?
한번 확인해보세요...