안녕하세요..
어제에 이어 또 올리는 군여.. 오늘은 약간(?) 아니..
많이 다른 문제로..
TVideo 컴포넌트를 이용하면 쉽사리 화상을 얻을 수 있어서
좋더라구요..
근데.. 이걸 소켓으로 전송을 하고자 한다면 어떤 방식으로 해야 할지요..
TVideo에서 스트리밍 같은걸로 지원을 해주는지...
아니면.. 일반적으로 쓰는.. 화면을 한장 한장 켑쳐 해서 보내야 하는지..
궁금하군요..
지금 자료 뒤져 보면서 보고는 있는데.. 힘드네요.. --;;
이분야는 처음으로 한번 접근 해보는데.. 소켓으로 넘겨 줄려면 어떤 방법으로
해야 할지 모르겠습니다...
이미 시도 해보신 분들이 아마 경험 하시지 않으셨을까 싶으네영...
흑흑.... 그럼.. 좀 있다 뵙죠...
감사함돠.. 읽어 주셔서리..
> 안녕하세요..
> 어제에 이어 또 올리는 군여.. 오늘은 약간(?) 아니..
> 많이 다른 문제로..
>
> TVideo 컴포넌트를 이용하면 쉽사리 화상을 얻을 수 있어서
> 좋더라구요..
>
> 근데.. 이걸 소켓으로 전송을 하고자 한다면 어떤 방식으로 해야 할지요..
> TVideo에서 스트리밍 같은걸로 지원을 해주는지...
>
> 아니면.. 일반적으로 쓰는.. 화면을 한장 한장 켑쳐 해서 보내야 하는지..
> 궁금하군요..
>
> 지금 자료 뒤져 보면서 보고는 있는데.. 힘드네요.. --;;
>
> 이분야는 처음으로 한번 접근 해보는데.. 소켓으로 넘겨 줄려면 어떤 방법으로
> 해야 할지 모르겠습니다...
>
> 이미 시도 해보신 분들이 아마 경험 하시지 않으셨을까 싶으네영...
>
> 흑흑.... 그럼.. 좀 있다 뵙죠...
>
> 감사함돠.. 읽어 주셔서리..
저두 그걸 써 봤는데...정말 끝내주더 라구요..
전 이렇게 했습니다.
참고로 이경문님인가여?
그분이 만드신걸 거울 삼아 공부해서 만들었습니다.
Jpg : TJpegImage;
Form1: TForm1;
Stream : TMemoryStream;
Jpg : TJpegImage;
FBitmapInfo: TBitmapInfo;
Acm : TACMWaveFormat;
procedure TForm1.VideoCapVideoStream(sender: TObject; lpVhdr: PVIDEOHDR);
var List : TList;
Count : integer;
Stream : TmemoryStream;
Bmp : TBitmap;
begin
Stream := TMemoryStream.Create;
Bmp := TBitmap.Create;
if Application.Terminated then exit;
form1.Canvas.Lock;
FrameToBitmap(Bmp, lpVHdr^.lpData, FBitmapInfo);
Jpg.Assign(Bmp);
Jpg.CompressionQuality := 80;
Jpg.Compress;
Jpg.SaveToStream(Stream);
Form1.Canvas.Unlock;
List := IdTCPServer1.Threads.LockList;
try
for Count := 0 to List.Count -1 do
try
TIdPeerThread(List.Items[Count]).Connection.WriteInteger(Stream.Size);
TIdPeerThread(List.Items[Count]).Connection.WriteStream(Stream);
except
TIdPeerThread(List.Items[Count]).Stop;
end;
finally
IdTCPServer1.Threads.UnlockList;
end;
Stream.Free;
Bmp.Free;
end;
그럼..