Wowza Community

Live streaming to Android issues

I took out the code I mentioned in the above post. I am back to hearing the audio for the stream but not seeing any video.

Does our sample stream play on the Droid:

http://www.wowza.com/mobile.html

I know it does on my Motorola Droid running 2.2. If it does, then it could be an encoding issue.

Charlie

You try try sorting the packets. See this post (#1 and #3):

http://www.wowza.com/community/t/-/57

Also, try lowering the bitrate of the video. If to high, it could affect the audio decoding.

Charlie

Chris,

See if the mobile streaming trouble shooting guide helps:

http://www.wowza.com/community/t/-/99

Richard

This thread might have useful clues.

Many RTSP/RTP implementations of mobile devices only support RTSP/RTP over RTP. I believe Android is such a device. Not all carriers will allow UDP traffic on their networks. Also, there can be NAT traversal issues with UDP when streaming using WiFi. I would focus on UDP routing and NAT traversal as the issue that leads to RTSP/RTP failure. It does work. I have an Motorola Droid and it is able to stream RTSP/RTP. If the network is not setup properly or UDP is blocked, it will not work.

Charlie

Richard

They are different devices from different manufacturers, and most likely involving different carriers and networks.

Richard

If the application StreamType is “live”, with VLC to RTSP device you have to start the stream in StreamManager.

http://www.wowza.com/community/t/-/82

If the StreamType is “rtp-live”, you probably don’t need to start in StreamManager

Richard

The ffmpeg commands are posted here:

http://www.wowza.com/community/t/-/516#10

And the VLC guide is here:

https://www.wowza.com/docs/how-to-use-vlc-as-a-live-stream-encoder-with-wowza-media-server-mpeg-ts

Richard

Background: I am having a similar problem with the Motorola Droid and a Blackberry 8330. I can get everything working OK streaming to a Darwin server with Wirecast (video and audio on both Droid and Blackberry) but when streaming with the same Wirecast settings to Wowza I have audio on the Droid but no video. The Blackberry displays a black screen and also does not have audio. Darwin and Wowza are on separate machines and networks. Since I can stream successfully to these phones with Wirecast through Darwin I don’t understand how the problem could be Wirecast encoding.

The Droid plays the Wowza sample mobile file at rtsp://184.72.239.149/vod/mp4:BigBuckBunny_175k.mov

The Blackberry does not play the mobile file. I’m not sure the Blackberry 8330 supports .mov.

See:

Blackberry Supported Media

http://docs.blackberry.com/en/smartphone_users/deliverables/18349/711-01774-123_Supported_Media_Types_on_BlackBerry_Smartphones.pdf

Testing:

I’m using Wowsa on EC2 with the liverepeater-origin startup package.

I want to use RTSP to stream to Quicktime Players and mobile phones. I plan to use both origin and edge servers but have started with the origin first to make sure streaming is working from there.

I can stream to Quicktime players on PCs and Macs but have not been successful streaming to a Blackberry Curve 8330 and a Motorola Droid (with Android 2.2) through Wowza. I am using Wirecast to push the stream using the settings recommended at http://www.wowza.com/resources/tutorial_ffd.pdf, but with a datarate of 200 KBPS and mono audio…

I am streaming both to Wowza and, for comparison, to Darwin (with HTTP tunneling enabled), using identical settings in Wirecast. Both phones receive the Darwin stream OK. Both phones act like they are loading and playing the stream from Wowza but the phone screen just goes black – no video is displayed (the Droid plays the audio but the Blackberry does not).

I have opened all recommended ports and modified the VHost file to include port 554

I have modified the liverepeater/Application.xml file to include:

”EC2 Private IP Address”

”EC2 Elastic IP”

”EC2 Elastic IP”

I modified the Application.xml file after startup – it was not modified as part of the startup package as was done for the modified VHost file. Am I correct in using the EC2 Private IP and the Elastic IP? Can these be changed after the server has started up?

I can push the stream from Wirecast to Wowza using port 554, e.g.

rtsp://”elasticIP":554/liverepeater/test.sdp

no port, e.g.

rtsp://”elasticIP”/liverepeater/test.sdp

or port 1935, e.g.

rtsp://”elasticIP":1935/liverepeater/test.sdp

I cannot access the streaming file using Quicktime player unless I use one of the ports in the URL. E.G. I can’t access the file using rtsp://“elasticIP”/liverepeater/test.sdp. Even when I use that URL to push the stream to the server.

I used rtsp://“elasticIP”:1935/liverepeater/test.sdp for the mobile testing both in pushing the stream to Wowza and in accessing it with the player.

What else should I try/change?

Charlie,

I get audio and video now on the Droid with Android 2.2, using the main profile in Wirecast.

I’m still mystified with the Blackberry Curve 8330. You’re correct, in that the Blackberry docs don’t show support for H.264 with the 8330. For some reason it works for me when I stream using Wirecast and Darwin.

Thanks for your help. Your rapid and professional responses are a definite value add to Wowza.

Ken

Hi Charlie,

Can you please show you ffmpeg encoding string for your VOD sample.

And maybe you can suggest what parameters do we need to use with VLC as an encoder for the source stream.

Thank you in advance!

Chris,

See if the mobile streaming trouble shooting guide helps:

http://www.wowza.com/community/t/-/99

Richard

Thanks for the reply, Richard. I have checked out that thread and many many others. What makes this particular problem strange is that I can play the stream (video and audio) with VLC. As it turns out, it even worked on Blackberry.

When I connect to the stream on my Droid, I only hear the audio.

What I don’t understand is why I get audio and not video on the Droid, but I get video on Blackberry and VLC.

They are different devices from different manufacturers, and most likely involving different carriers and networks.

Richard

Different devices, for certain, but both are on Verizon. I can play rtsp links from other providers on my Droid. If rtsp was blocked, I would think that I would not be able to play their content nor would I get the just the audio from my stream.

Does our sample stream play on the Droid:

http://www.wowza.com/mobile.html

I know it does on my Motorola Droid running 2.2. If it does, then it could be an encoding issue.

Charlie

Yes, that plays just fine on my Droid. That example, plus others that work, tell me the port and carrier limitations are not an issue here. As I said, I can hear the audio in my stream, I just can’t see the video.

Using Wirecast, I’m sending out an h.264 encoded video. I’m using one of the default Flash profiles but have lowered the bitrate to ~200kbps and 15fps. It works everywhere but on the Droid. Any pointers would be greatly appreciated, Charlie!

Thank you!

Chris

Maybe there is something about the Wirecast encode (beyond what you can do with settings) that is prohibiting it from working on Wirecast. I might either contact the Wirecast folks or try a different encoders. Our mobile test stream is encoded using ffmpeg which uses the x264 encoder built into VLC.

Charlie

Thanks for the reply, Charlie. Your mobile test stream is VOD, though. What I’m doing is live. I tried VOD and that works fine. I can try Flash Media Encoder, but I had worse luck with that the last time I tried.

I am suggesting that you try VLC for live encodign since it uses the same x264 encoder that I used for my VOD sample.

Charlie

Well, the bad news is I could not get VLC to work at all. I went step by step through the guide to set it up and going but I constantly got a “not found” error when trying to pull the stream.

The good news is that, from a Mac using Quicktime broadcaster, I was able to get video to go to the Android, iPhone, Blackberry and VLC. The quality wasn’t good and the performance wasn’t as good, but I think we can now narrow it down to the h.264 codec Wirecast uses.

I guess it’s time to research a different encoder. FME? Any suggestions?

Thanks for the reply, Richard. I have tried both RTP and RTSP, starting with the Streammanager and without, and nothing seems to work. Wowza gets the stream, I can see that. I just can’t get it to play back on anything.

I have been in contact with Telestream about Wirecast. They assure me that the h.264 encoder in Wirecast is the same as in the Quicktime Broadcaster. Their thought is that there is something missing in the metatdata that Android needs.

Their new version of Wirecast will use the MainConcept codec, which FME uses. I can’t get Android to see that stream either.

I’ve exhausted each guide, on multiple systems with different Internet connections and have not managed to get this to work for Android. The only thing I have managed to get to work has been Quicktime Broadcaster and Kulabyte XStream.

To be honest, VLC and ffmpeg are not practical tools for an enterprise deployment, in my opinion. I need something more robust and manageable.

Telestream wrote me to say that they would ensure this works in version 4 of Wirecast, but no word yet on when that will be available.

I can verify that gets video on the Droid, but now the audio is horrible. There are dropouts every half second. If I switch it back to Baseline, the audio is fixed but I’m back to no video on the Droid.