VLC - How to stream with VLM config? - stream

In our project, we use VLC to stream a video multicast (we use RTP protocol).
We have two stream: a High Quality and Low quality.
We have generate VLM config with vlc:
# VLC media player VLM command batch
# http://www.videolan.org/vlc/
new Stream HQ broadcast enabled loop
setup Stream HQ input "file:///E:/test/1.mp4"
setup Stream HQ output #rtp{dst=224.0.0.1,port=5004,mux=ts}
setup Stream HQ option file-caching=300
setup Stream HQ option file-caching=300
setup Stream HQ option file-caching=300
setup Stream HQ option file-caching=300
new Stream LQ broadcast enabled loop
setup Stream LQ input "file:///E:/test/1.mp4"
setup Stream LQ output #transcode{vcodec=h264,scale=Auto,width=400,height=244,acodec=mp3,ab=64,channels=1,samplerate=44100}:rtp{dst=224.0.0.2,port=5004,mux=ts}
setup Stream LQ option file-caching=300
setup Stream LQ option file-caching=300
setup Stream LQ option file-caching=300
Question 1:
We would like run VLM with VLC. So we use this command
"C:\Program Files (x86)\VideoLAN\VLC\vlc.exe" --vlm-conf=vlcConfig.vlm -I dummy
but stream doesn't work. With VLM GUI streams work.
Question 2:
Can we use "adaptative bitrate" to have only one stream ? (auto quality depending brandwidth)
Question 3:
For example in Stream HQ we stream only one video. Now, We would like stream a playlist video. Idea how do this ?

Related

FFmpeg: UDP statistics

I'm using FFmpeg in my iOS application to read an RTSP (over UDP) stream. VLC offers some media information -> statistics about the stream that is being played. The number of Video Frames lost is what I'm interested in.
My question: is there a way to get these statistics (frames lost) with FFmpeg while reading from an UDP stream?
Thanks.
RTCP is used to collect statistics. Check if ffmpeg libs provide some API to access RTCP information

Icecast relay stream can buffer a progressive audio stream

After reading the documents of icecast, I have two questions:
1) I'm not sure the icecast server can buffer audio streams, if It does can, How about using relaying?
2) If i have many dynamic relay servers to proxy, How to config the config file? I mean I have to change the config file dynamicly, since i have not sean that icecast supports the regular expression such as /realtime(\d+) to match all the realtime stations.
Icecast does buffer streams. When a client connects, the buffer data is flushed as fast as Icecast can loop around and send data.
Icecast can also relay existing streams. From the documentation:
<relay>
<server>192.168.1.11</server>
<port>8001</port>
<mount>/example.ogg</mount>
<local-mount>/different.ogg</local-mount>
<relay-shoutcast-metadata>0</relay-shoutcast-metadata>
</relay>
Now, as for doing this on-the-fly, as far as I know there is no way to do this in Icecast.
I found one of the solutions which is free & simple (tried & tested), but with some limitations.
Rocket Streaming Audio Server
https://www.rocketbroadcaster.com/streaming-audio-server/
It really allows you to relay https stream to http (stream mirroring). Configuring the app is simple. It relays streams 'as is' (without re-encoding), but in free version you can stream only to 100 listeners.

OpenCV output to MJPEG stream

My application uses CvCapture to gather the image and uses Matrices to perform the processing. The program currently runs headless. How do I write a Matrix to an JPEG stream so I can stream it over HTTP?
Can I put the MJPEG stream in nGinX WWW root and serve it through there or do I need to use a specific streaming application?

Port fowarding with vlc-vlm

I`m trying to make a music streaming server using VLC and the VLM manager. The problem which i face is the following: i have a client which is only able to read from a port and ip (e.g. http://192.168.0.1:8080)
the setup which vlm provides for a stream is in the form of ip, port and filename (e.g. http://192.168.0.1:8080/track.mp3 )
Is it possible to redirect the stream to another port? (without the filename) so that my client could connect to it?
putting the stream on the port, blocks interaction with vlm with the stream
If you set up the stream in VLM with eg.
new channel1 broadcast enabled
setup channel1 input 'file:///D:/music/artist/album/track.mp3'
setup channel1 output #standard{access=http,mux=ogg,dst=192.168.1.100:8586}
control channel1 play
You will be able to read the stream with your player by connecting to http://192.168.1.100:8586
You can of course change the IP and port to your own values.
Hope that helps

Fake video streaming

I am building an iOS App which displays video streams from a somewhat complex backend. Now while developing I want to be able to have some sort of test video stream, which I can use. Ideally this would also work without internet connection.
The video stream could show for example the current time or just a simple animation. What would be a good way of doing this on a Mac without having to install a whole suite of tools.
On you Mac you can setup a webserver or streaming server to provide you with a constant video stream for testing purposes. You won't need Internet access. You will, of course, need to ensure that the OSX firewall is either disabled or allows requests to the ports (80, most likely).
Two simple approaches I can see:
Wowza MPEG-TS stream of the Webcam on your mac
Install Wowza Media Server; developer license is free
Configure a basic applicaiton with MPEG-TS streaming
Use an encoding applicaiton, like Flash Media Live Encoder (free), Wirecast (demo version free), or some other software and start streaming from your webcam to the WMS
alternatively, with a bit more effort, you could setup Wowza to stream a file in a loop
be sure to get the codec settings correct
M3U8+MPEG-TS static files over plain HTTP
Simple Setup a basic webserver (lighttpd, Apache httpd, Apache Tomcat, whatever) to server static files
Whip up an M3U8 file to first point to a .ts media file, and then secondly back to itself
Have a look at MPEG-TS/M3U8 live stuff to work out the details. You'll need a properly segmented video file to start with.

Resources