0
我使用VCL廣播到我的本地主機,127.0.0.1與UDP(傳統)方法。爲了趕上交通,我用這個代碼:接收VLC生成的MP4與PhP有點雜亂
$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不保證您接收數據包的順序。這些軟件包的發送順序可能與發送順序不同。這可能是問題的原因? – chhenni
好吧,我指望它,但正如我所說,另一個VCL播放器正確地重播了這個流。小錯誤不是一個問題,但它使它變得不受歡迎... –
爲什麼每次循環迭代時都會'fopen()'和'fclose()'文件指針?這是非常低效的。 – FtDRbwLXw6