Search code examples
phpvlcrtp

Php Using Fopen function with live streaming(rtp)


I am trying to prepare a webcam streaming page. I created a vlc streaming and here is what I wrote in the command line to run my webcam.

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

After typing this code i can see my webcam by typing

rtp://239.0.0.1:5004/ 

to the browser. Its okay up to here.

I prepared a php streaming file and it opens static video files with

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

command and it works properly. But when I pass "rtp://239.0.0.1:5004"/ in

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

command, I get en error 502 gateway that probably means it has not opened rtp file.

What should I do ? Thanks


Solution

  • PHP can only open resources using some protocols:

    Protocol Description
    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

    As you see rtp is not one of these. You need to find/write rtp wrapper to read this resource.