VCL을 사용하여 내 로컬 호스트에 브로드 캐스트하고 UDP (레거시) 방식으로 127.0.0.1로 전송합니다. 트래픽을 잡기 위해, 나는이 코드를 사용합니다 - 물론, 결과는 좀 지저분하다PhP로 생성 된 VLC로 MP4를 생성했습니다. 다소 엉망입니다.
$address = '127.0.0.1';
$port = 1234;
$sock = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
socket_bind($sock, $address, $port) or die('Could not bind to address');
$f = fopen ('output', 'w');
fclose ($f);
$sock = stream_socket_server('udp://127.0.0.1:1234', $errno, $errstr, STREAM_SERVER_BIND);
while(1)
{
$a = stream_socket_recvfrom($sock, 65536);
$f = fopen('output', 'a');
fwrite ($f, $a);
fclose ($f);
@ob_flush();
}
이 패킷을 기록하고 저장을, 나는 .MP4 오픈에 이름을 바꿉니다. 나는 출력을 인식 할 수 있으며, 상단 화면이 보이고, 하단이 좋지 않다. 나는 다른 VCL 플레이어와 함께 그것을 포착하려했지만 아무런 문제가 없었다.
UDP는 패킷을 수신 할 순서를 보장하지 않습니다. 패키지는 전송 된 순서와 다른 순서로 도착할 수 있습니다. Perhapse 이것이 문제의 원인 일 수 있습니까? – chhenni
글쎄, 내가 그걸로 계산했지만, 내가 말했듯이, 다른 VCL 플레이어가 올바르게 스트림을 재생합니다. 작은 에러는 문제가되지 않지만, 그것은 만족스럽지 않다. ... –
왜 반복 루프마다 파일 포인터를'fopen()'하고'fclose()'합니까? 이것은 매우 비효율적입니다. – FtDRbwLXw6