Hey, I am evaluating Wowza streaming engine. I want to use it to stream an OSX desktop via FFMPEG. To do this I am using this command to setup the stream source...
-f avfoundation -framerate 30 -video_size 1920x1080 -i 1:none \
-c:v libx264 -s 1920x1080 -r 30 -g 60 -keyint_min 60 \
-f mpegts udp://0.0.0.0:10000?pkt_size=1316
So basically I am using avfoundation, to get the 1 index screen for OSX, this is my main screen. And I am limiting that input to 30ps 1920x1080
This is being encoded using x264, same fps and res as input, with a GOP of 60. And then this is being output to Wowza.
In Wowza I create a stream file, and add this URL udp://0.0.0.0:10000?pkt_size=1316. Then I add this stream to the default Live app. In the App I turn on low latency streaming, and enable CORS.
To test stream is coming ok, I check the monitoring page, and I can see data is coming in. Then, I record the stream to disk, and wait for 30 seconds. Then stop this, and then play back the resulting .mp4 file using ffplay. It plays back just fine.
Now, this is the BIG issue. When I try to play back the stream in ANY of the example Wowza browser players, it fails.
For instance, for ADOBE RTMP I get this status error Source stream or file could not be found or access was denied. and when I look in the error logs I see an error of... HTTPStreamerAdapterSanJoseStreamer.onPlaylist: Stream not found [live/myStream/manifest.f4m]: myStream. This is a Flash based player, so its hard to dig around in, but if we look at the logs, we can see the access issue is not because of security, but rather because the manifest file does not exist?
If I try DASH, I see this error in Chrome's console...
XMLHttpRequest cannot load http://192.168.1.125:1935/live/myStream/manifest.mpd. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8088' is therefore not allowed access. The response had HTTP status code 404.
and the log error is..
HTTPStreamerAdapterMPEGDashStreamer.onManifest: Stream not found [live/myStream/manifest.mpd]: myStream
The browser is reporting a CORS like error. But again, I think the issue is simply that the manifest file does not exist?
So, as far as I can see, no manifest files are being written to disk for ANY of the players (I tested the 3 that are working on OSX). And I also tried the specified URL with curl -header, and it cannot fine the files on disk.
To make sure, I also followed the tutorial on how to live stream, and used this command.
ffmpeg -re -i ./sample.mp4" -vcodec libx264 -vb 500000 -g 60 -vprofile main -acodec aac -ab 128000 -ar 48000 -ac 2 -vbsf h264_mp4toannexb -strict experimental -f mpegts udp://0.0.0.0:10000?pkt_size=1316
Again, I see data coming in. And I can record that data to an .mp4 file, and if I play that file back, I see the chubby bunny doing his thing. But when I try to play this stream back on any of the players. Same error....
How can I get past these issues please.