I am new to the Wowza Streaming Engine. I have been successful to reproduce the video tutorial with the OBS application and the RTMP protocol. So far so good.
Now I am trying to test a simple use case. My setup is very basic. I have a local network. I use VLC to stream an H264 encoded stream encapsulated in a Mpeg2 TS container. No audio. VLC stream the H264 video through the RTSP server protocol. VLC is streaming on a desktop computer on the local network. The Wowza Media Engine service is enabled on another Linux computer on the same local network.
VLC is streaming with an RTSP protocol. The live streaming can be reached with RTSP://192.168.0.106:8554/h264stream
On the Linux computer with IP address 192.168.0.234 where Wowza is installed, I run the VLC application and open the network URL RTSP://192.168.0.106:8554/h264stream . VLC can successfully play the stream. So far so good.
The next step is to have the Wowza Streaming Engine reproduce successfully the VLC playing of the stream. Following the documentation of Wowza I created a live application named “firstcase” as per the documentation. I also created a live stream with the RTSP protocol as per the documentation. Within the Server Configuration I created a Virtual Host Stream Files with the stream URI : rtsp://192.168.0.106:8554/h264stream .
Now within the firstcase application, I selected the stream file and connected it to the live stream using the connect actions button. In the incoming stream section of the application, I can clearly see the connected stream with the status active and the URI rtsp://192.168.0.106:8554/h264stream.
At this point, I am trying to use the test players (with google chrome) to check that Wowza Streaming Engine can publish and forward the stream. I tried the player Mpeg Dash which was successful with RTMP and started the stream. However, the player stays black. I have no video playing. The URI of the player is http://192.168.0.134:1935/firstcase/myStream/manifest.mpd.
What might be wrong?
Guy.
Check the Wowza logs in the /logs
subfolder of your installation folder. One guess is that MPEG-DASH won’t play because there’s no audio, but I may be wrong here. Anyway, the logs can be quite helpful.
1 Like
Thanks for the tip I’ll check if adding audio can fix the issue. Meanwhile, I will also look at the logs.
There is a WARNING in the error logs. However its doesn’t tell me much about the real cause of the issue. It seems it cannot find the stream. Yet I can clearly see the stream as been active in the GUI interface of Wowza Media Engine.
WARN |
server |
comment |
2020-11-05 |
07:41:38 |
- |
- |
- |
- |
- |
237.821 |
- |
- |
- |
- |
- |
- |
- |
- |
HTTPStreamerAdapterMPEGDashStreamer.onManifest: Stream not found [firstcase/example.stream/manifest.mpd]: example.stream |
WARN |
server |
comment |
2020-11-05 |
07:43:15 |
- |
- |
- |
- |
- |
334.76 |
- |
- |
- |
- |
- |
- |
- |
- |
HTTPStreamerAdapterMPEGDashStreamer.onManifest: Stream not found [firstcase/example.stream/manifest.mpd]: example.stream |
WARN |
server |
comment |
2020-11-05 |
07:43:16 |
- |
- |
- |
- |
- |
335.359 |
- |
- |
- |
- |
- |
- |
- |
- |
HTTPStreamerAdapterMPEGDashStreamer.onManifest: Stream not found [firstcase/example.stream/manifest.mpd]: example.stream |
WARN |
server |
comment |
2020-11-05 |
07:43:17 |
- |
- |
- |
- |
- |
336.572 |
- |
- |
- |
- |
- |
- |
- |
- |
HTTPStreamerAdapterMPEGDashStreamer.onManifest: Stream not found [firstcase/example.stream/manifest.mpd]: example.stream |
WARN |
server |
comment |
2020-11-05 |
07:43:22 |
- |
- |
- |
- |
- |
341.704 |
- |
- |
- |
- |
- |
- |
- |
- |
HTTPStreamerAdapterMPEGDashStreamer.onManifest: Stream not found [firstcase/example.stream/manifest.mpd]: example.stream |
WARN |
server |
comment |
2020-11-05 |
07:43:23 |
- |
- |
- |
- |
- |
342.624 |
- |
- |
- |
- |
- |
- |
- |
- |
HTTPStreamerAdapterMPEGDashStreamer.onManifest: Stream not found [firstcase/example.stream/manifest.mpd]: example.stream |
WARN |
server |
comment |
2020-11-05 |
07:43:24 |
- |
- |
- |
- |
- |
343.682 |
- |
- |
- |
- |
- |
- |
- |
- |
HTTPStreamerAdapterMPEGDashStreamer.onManifest: Stream not found [firstcase/example.stream/manifest.mpd]: example.stream |
So you have created a Stream File with name “example”, and in that stream file you’ve put the RTSP URL where Wowza can pull the stream. After that you’ve connected to that Stream File and selected type “RTP”, correct? Earlier in your logs you can see the application name and verify it’s indeed “firstcase”.
Under Incoming Streams, when you select the stream, you’ll see the stream details. Does the Bytes In field show that data is coming in? If not, then presumably the input URL is incorrect or VLC isn’t streaming data.
The type is indeed RTP. However the byte in is : Bytes In: 0 @ 0.000 bits/s . Thus obviously something is wrong. I am sure VLC is streaming on the network since when I open the same stream with a VLC viewer on the computer where Wowza is installed it is indeed showing the stream. Something is obviously wrong.
Worse when I go back to the application with the RTMP stream from OBS after trying the RTSP stream from VLC the Mpeg Dash Player doesn’t play anymore with the RTMP stream. At this point, I am baffled!
I will have a look at Wireshark to double-check if at least Wowza initiates the communication with the RTSP server over the network.
Not sure why you’re trying to use VLC as a source stream for Wowza; it’s not a common workflow (VLC is first and foremost a player). I’d use something like OBS and push the stream to Wowza over RTMP (in which case there’s no need to create a .stream file), or use OBS and send the stream over SRT (which requires a stream file where Wowza listens on the SRT port).
VLC has a very good core as a streaming server. It is even used in some broadcasting professional setup. Like Wowza (and FFMpeg) it has a transcoder core and can be configured with many containers and IP protocol for streaming. But most people are not aware of this and use it as a simple player. Did you know that the OBS application uses the core VLC IP engine through a library?
Why I am using VLC? Well because its IP streaming core engine is based on the live555 library which is one of the best RTSP/IP library around. Identify almost any IP cameras or encoder on the market and almost all of them will use live555. And I guess even OBS through the VLC IP libray.
This being said I need to create a small low-profile/low CPU console application that will simulate a camera and use the live555 library like OBS, VLC and almost any camera on the market. Thus it makes sense for me to try VLC first which I know very well rather than OBS.
Well. I have been able to successfully play the stream with Mpeg-Dash after all. I naively thought that the Test Player was exempt from issues. Out of curiosity, I instantiated VLC as a player on the same computer where is installed Wowza and fed it with the same URL as the Wowza Test Player with Mpeg-Dash. Lo and Behold it work. Thus Wowza is ingesting the live stream and forward like it is supposed to do. I am under Linux Ubuntu 18.,04 with Google Chrome. This might be an issue with the browser.
Glad you got it to work and sure appreciate all the additional info. Karel is right, we don’t hear from customers using VLC in this way, so very interesting and thanks for sharing that with the community!
1 Like
@Guy_Bonneau, the Test Player that comes in the Streaming Engine panel isn’t too sophisticated; I’ve stopped using it for tests long time ago. @Rose_Power-Wowza_Com, I thought it had been removed from newest version of WSE? If not, then maybe it’s a good idea to replace it with a list of playback URLs, because that’s certainly useful info.
For testing playback indeed you can use VLC, ffmpeg, or for web, there are manufacturers and open-source initiatives who have test players online, like
https://reference.dashif.org/dash.js/
https://hls-js.netlify.app/demo/
https://www.jwplayer.com/developers/stream-tester/
https://bitmovin.com/demos/stream-test
https://demo.theoplayer.com/test-your-stream-with-statistics
By the way; THEOplayer (last link) also has a test player that works with LL-HLS. Wowza supports LL-HLS in their newest WSE version, and if you’re interested in low-latency, it’s worth a try. You can find it on https://www.theoplayer.com/ll-hls-test-page
@Karel_Boek, thanks for the info. I’ll have a look. If the Test Players are not reliable then indeed something must be done about this. It really gave me, and any newbies like me I guess a bad impression. When you don’t know a product you are likely to use the tools provided with the product itself.
Thanks @Karel_Boek and @Guy_Bonneau and I 100% agree with you. I’ll discuss this with internal teams today.