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
Related
I am a complete novice to this... I have a webcam behind my router, and it's configured to be accessible on a particular port (e.g. 30000) using a port forwarding configuration. It has a fixed IP in my network.
Using wireshark, I can see the camera responding to requests coming from within my network (i.e. another client), and this does not use port forwarding.
However, when I access the camera from outside my network (i.e. using external IP plus port), wireshark does not show anything (but I see the camera streaming on the client).
I use wireshark on ubuntu, eth0, and ip.addr == 192.168.x.y as filter
When the camera was streaming data to the internal client, were you also capturing packets with Wireshark on that same client? I'm guessing that you were, which is why you saw the data.
When the camera streams to a client on an external network, the stream flows through the router, but your client is likely plugged into another switch port on the back of your router, and the router doesn't forward the packets to that port, which is why you don't see them.
In order to observe the packets, you would need to configure your capture PC such that it can capture the packets. There are a few different methods to achieve this, for example, using a hub, a SPAN/mirror port on a managed switch if you have one, or a TAP. I would recommend reading the detailed information available on the Wireshark Ethernet capture setup wiki page, which describes several different methods for successfully capturing Ethernet frames and provides helpful pictures as well. Choose a capture scenario that best meets your needs (and $$ budget).
I'm new in Wowza. I need to know whether there is any mechanism to identify the start and end of a stream through wowza. This service will monitor each of the inbound ports that are currently bound to wowza engine and then try to create a notification on two events.
1. Start of UDP packets in to the port, the event should trigger everytime a new port receives packets.
2. End of UDP packets in to the port. If no packets hit the given port for a certain period of time, this event will be triggered.
Wowza has modules and there is one that makes something similar: https://www.wowza.com/forums/content.php?171-How-to-use-IMediaStreamActionNotify2-to-monitor-live-streams-%28ModuleStreamWatchDog%29
the source is public so you could modify to match your needs. Java skills required.
the other way is to call the rest api periodically and check for new streams.
I have an incoming RTP stream on one computer (called, "server1") connected to another computer (called, "client1") over a LAN. However, the Ethernet header (MACDA/MACSA), IPv4 header (IPDA/IPSA), and UDP header (dstport/srcport) for all of the packets belong to another network and different computers. Furthermore, the client computer did not request or initiate the stream. It is "just there"! :)
I am not interested in controlling (stopping, starting, track jumping, etc.) the stream. I just want to see and hear it in a VLC client.
I have complete control over the packets, so that I can change all of the header info as it leaves the server.
How can I modify the packets, so that VLC will play them? I can point VLC at my server, and I can mangle the packets, so they appear to have been sourced by the server and destined for the client. But, I do not know the destination port opened by VLC on the client. What am I missing?
Thanks!
I may not have the best answer, but here's a little something that might help...
"I was trying vlc player and I says, Sdp required, cannot play rtp with dynamic payload type. Is it possible to play rtp with dynamic payload type by other player, or somehow create sdp protocol using libjitsi. Thanks a lot."
Reply:
"You need an SDP description.
I found on stackoverflow a minimal SDP description. Minimum SDP for making a H264 RTP stream?.
You can try to replace the IP address, port number and payload type by the ones you’re using, maybe that’ll work."
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.
Image that PC1 and PC2 are trying to communicate via UDP. PC1 is behind a router and PC2 is not.
PC1 sends out a UDP datagram to PC2.
PC2 can of course receive. Then PC2 sends back a UDP datagram to PC1.
We know PC1 can receive too, even if there is a router. The router will record the data channel (I do not want to use "connection" instead because it is UDP), and temporarily open the channel for PC1 from PC2, even if normally it will block if without port forwarding, etc.
So, my question is that how long time will the channel be kept open between PC1 and PC2 if PC1 opens it first?
Thanks
That depends entirely on the nature/type/configuration of the router/firewall between PC1 and PC2.
Protocols like STUN and ICE might allow you to figure out the value you seek. Certainly STUN will help you keep that NAT binding alive.