HLS playback issue on Android 4.3

Hi,

We’ve setup a live streaming application (RTMP), using the same configuration as that in the example provided, in wowza media server, and use android native player to play the stream. In android 4.3 phone, the player prompts an error and stops the playback, after a few tens of seconds. SIGSEGV is thrown from /system/lib/libstagefright.so. We found no errors in either access log or error log in wowza media server. Both version 3.5.2 and version 3.6.2 are tested.

Hi

Would you please provide a bit more information about your workflow and device being used?

Are you streaming using RTSP or HLS ?

What is the device manufacturer and model?

Is the device on a wifi network or cellular?

Is it just this particular device that is having this problem?

Daren

Vincent,

Delete your current access log, then start Wowza and start a source stream. Then test playback of the Transcoder ngrp MediaList using the /examples/LiveVideoStreaming/FlashHTTPPlayer. And test single and smil playback in the Android of one of the transcoded renditions. Then zip up the whole /conf folder and the current access log and send to support@wowza.com

Include encoding details of the live stream.

Include a link to this thread for reference

Richard

Hi,

Obviously something about the stream that Android 4.3 is not happy with.

Is it just smil files that you have problems with or all playback types?

Which browser are you using to initiate the playback?

Looking at the url syntax you provided, I don’t see the smil: prefix, is that just an omission

from the post?

Should be:

http://[server-ip]/[application]/smil:[smil name].smil/playlist.m3u8

Did you try testing with the vod sample.mp4 ?

So:

http://[server-ip]/vod/mp4:sample.mp4/playlist.m3u8

Does that work as expected?

There’s also a simplified VOD sample here:

http://184.72.239.149/vod/mp4:BigBuckBunny_115k.mov/playlist.m3u8

which plays on most devices, as it’s just base line level 3 at a very low bitrate and low resolution.

It’s certainly not a good thing if the device throws an error like that.

SIGSEGV is thrown from /system/lib/libstagefright.so

Indicates an issue at the Android OS level.

Best regards,

Daren

Hi,

The Android player debug doesn’t help, it’s not something we can troubleshoot with.

It might be worth filing a report with Google and provide that info though.

The smil: is required if specifying a smil file.

Can you also play a single live stream (not a smil with live streams)?

Or rather

http://[server-ip]/live/mp4:myStream.mp4/playlist.m3u8

or similar?

Does that fail to or only live streams within a smil fail?

Just trying to narrow it down.

Best regards,

Daren

Hi,

would you please provide a bit more information about your workflow and device being used?

the native android media player is used to access the video through “http://[server-ip]/[application]/[smil name].smil/playlist.m3u8”. The player successfully plays the video for a few tens of seconds, but then error is prompted.

are you streaming using rtsp or hls ?

hls

what is the device manufacturer and model?

LG nexus 4 & LG nexus 7

is the device on a wifi network or cellular?

both

is it just this particular device that is having this problem?

the issue is not found in most android 4.2, but found in all android 4.3 phone we have

Hi,

Is it just smil files that you have problems with or all playback types?

We use only smil: for HLS, and mp4: for vod.

Which browser are you using to initiate the playback?

Chrome. I dont think it matters as the phone later on asks for which player to play the video.

Looking at the url syntax you provided, I don’t see the smil: prefix, is that just an omission

from the post?

The player fails to play the stream even if smil: is added.

Did you try testing with the vod sample.mp4 ?

The player has no problem on playing vod.

FYI,

I/DEBUG   (  124): backtrace:
I/DEBUG   (  124):     #00  pc 0001e4e8  /system/lib/libc.so
I/DEBUG   (  124):     #01  pc 0001c510  /system/lib/libc.so (abort+4)
I/DEBUG   (  124):     #02  pc 0000892f  /system/lib/libcutils.so (__android_log_assert+86)
I/DEBUG   (  124):     #03  pc 000a93d3  /system/lib/libstagefright.so (android::ElementaryStreamQueue::dequeueAccessUnitH264()+582)
I/DEBUG   (  124):     #04  pc 000aa0f3  /system/lib/libstagefright.so (android::ElementaryStreamQueue::dequeueAccessUnit()+234)
I/DEBUG   (  124):     #05  pc 000a7247  /system/lib/libstagefright.so (android::ATSParser::Stream::onPayloadData(unsigned int, unsigned long long, unsigned long long, unsigned char const*, unsigned int)+200)
I/DEBUG   (  124):     #06  pc 000a7bfb  /system/lib/libstagefright.so (android::ATSParser::Stream::parsePES(android::ABitReader*)+2278)
I/DEBUG   (  124):     #07  pc 000a7e79  /system/lib/libstagefright.so (android::ATSParser::Stream::flush()+28)
I/DEBUG   (  124):     #08  pc 000a7ef3  /system/lib/libstagefright.so (android::ATSParser::Stream::parse(unsigned int, unsigned int, android::ABitReader*)+94)
I/DEBUG   (  124):     #09  pc 000a804f  /system/lib/libstagefright.so (android::ATSParser::Program::parsePID(unsigned int, unsigned int, unsigned int, android::ABitReader*, int*)+42)
I/DEBUG   (  124):     #10  pc 000a85dd  /system/lib/libstagefright.so (android::ATSParser::parsePID(android::ABitReader*, unsigned int, unsigned int, unsigned int)+260)
I/DEBUG   (  124):     #11  pc 000a8737  /system/lib/libstagefright.so (android::ATSParser::parseTS(android::ABitReader*)+190)
I/DEBUG   (  124):     #12  pc 000a87b5  /system/lib/libstagefright.so (android::ATSParser::feedTSPacket(void const*, unsigned int)+92)
I/DEBUG   (  124):     #13  pc 00044319  /system/lib/libmediaplayerservice.so (android::NuPlayer::HTTPLiveSource::feedMoreTSData()+272)
I/DEBUG   (  124):     #14  pc 0003b901  /system/lib/libmediaplayerservice.so (android::NuPlayer::onMessageReceived(android::sp<android::AMessage> const&)+1472)
I/DEBUG   (  124):     #15  pc 0000746d  /system/lib/libstagefright_foundation.so (android::ALooperRoster::deliverMessage(android::sp<android::AMessage> const&)+152)
I/DEBUG   (  124):     #16  pc 00006f47  /system/lib/libstagefright_foundation.so (android::ALooper::loop()+198)
I/DEBUG   (  124):     #17  pc 00011a1d  /system/lib/libutils.so (android::Thread::_threadLoop(void*)+104)
I/DEBUG   (  124):     #18  pc 00011581  /system/lib/libutils.so
I/DEBUG   (  124):     #19  pc 0000ca58  /system/lib/libc.so (__thread_entry+72)
I/DEBUG   (  124):     #20  pc 0000cbd4  /system/lib/libc.so (pthread_create+208)

Hi,

The player can play a single live stream. It fails to do so for smil.

vod is ok.

FYI, we use wowza media server to transcode streams sent from broadcaster. We testing both streams before entering wowza media server and those after transcoded. Android 4.3 can play those streams which are not transcoded by wowza media server. At this point, how may I ensure the transcoding works fine? Would there be any information supporting this claim?

Thanks.

Best regards,

Vincent