2015-09-07 36 views
0

我正在嘗試準備網絡攝像頭流媒體頁面。我創建了一個vlc流媒體,這是我在命令行中編寫的用於運行我的攝像頭的內容。Php使用Fopen功能與直播流(rtp)

cvlc -vvv v4l2:///dev/video0 --sout '#transcode{vcodec=mp2v,vb=800,acodec=none}:rtp{dst=239.0.0.1,port=5004,mux=ts}' 

輸入此代碼後,我可以通過鍵入

rtp://239.0.0.1:5004/ 

到瀏覽器中看到我的攝像頭。它沒關係到這裏。

我準備了一個PHP的流媒體文件,並將其打開靜態視頻文件

fopen('localhost/sample.mp4','rb') 

指揮它工作正常。但是當我通過「RTP://239.0.0.1:5004」 /在

fopen('rtp://239.0.0.1:5004/', "rb") 

命令,我得到的連接錯誤502網關這可能意味着它沒有打開RTP文件。

我該怎麼辦?謝謝

+0

你可以發佈'fopen'後的代碼嗎? – user3409662

+0

'fopen'不支持'RTP',請參閱[PHP支持的協議和包裝](http://php.net/manual/en/transports.php)。你需要套接字。 – aergistal

回答

0

PHP只能使用某些協議打開資源。

file:// — Accessing local filesystem 
http:// — Accessing HTTP(s) URLs 
ftp:// — Accessing FTP(s) URLs 
php:// — Accessing various I/O streams 
zlib:// — Compression Streams 
data:// — Data (RFC 2397) 
glob:// — Find pathnames matching pattern 
phar:// — PHP Archive 
ssh2:// — Secure Shell 2 
rar:// — RAR 
ogg:// — Audio streams 
expect:// — Process Interaction Streams 

正如你看到的RTP不是theese之一。你需要找到/編寫rtp包裝器來使用這個資源。