http live streaming - what profile / resolution should the video be in? so that Android's Emulator 3.0 can play HLS streams -
i have android 3.0 version installed on eclipse ide, on when test apple's sample hls link: "http://devimages.apple.com/iphone/samples/bipbop/gear1/prog_index.m3u8" runs successfully.
i have created 1 custom file "maqm.m3u8" reading apple's specification hls ref: (https://developer.apple.com/library/ios/#documentation/networkinginternet/conceptual/streamingmediaguide/introduction/introduction.html)
but used free encoding (using ffmpegx) , segmenting (open source segmenter) methods create custom .m3u8 file.
when test .m3u8 file uploading on server (www.simsanraj.comlu.com/maqm.m3u8) played on safari 5.0.3 , on ipad2.
however, same stream when test on android emulator (using same code played bipbop sample file successfully), emulator crashes.
following logs generated:
i/stagefrightplayer( 33): setdatasource('httplive://www.simsanraj.comlu.com/maqm.m3u8')
i/livesession( 33): onconnect 'http://www.simsanraj.comlu.com/maqm.m3u8'
i/nuhttpdatasource( 33): connect www.simsanraj.comlu.com:80/maqm.m3u8 @0
i/nuhttpdatasource( 33): connect www.simsanraj.comlu.com:80/maqm.m3u8 @0
i/nuhttpdatasource( 33): connect simsanraj.comlu.com:80/maq.ts @0
w/activitymanager( 74): launch timeout has expired, giving wake lock!
w/activitymanager( 74): activity idle timeout activityrecord{41aafa80 com.example.testhls/.mediaplayerdemo_video}
i/esqueue ( 33): found resembling aac syncword @ offset 36
f/esqueue ( 33): frameworks/base/media/libstagefright/mpeg2ts/esqueue.cpp:223 check_ne( channel_configuration,0u) failed: 0 vs. 0
i/debug ( 31): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** **
i/debug ( 31): build fingerprint: 'generic/sdk/generic:3.0/honeycomb/104254:eng/test-keys'
i/debug ( 31): pid: 33, tid: 388 >>> /system/bin/mediaserver <<<
i/debug ( 31): signal 11 (sigsegv), code 1 (segv_maperr), fault addr deadbaad
i/debug ( 31): r0 deadbaad r1 0000000c r2 00000027 r3 00000000
i/debug ( 31): r4 00000080 r5 aff46658 r6 4070f948 r7 00000000
i/debug ( 31): r8 a2b72589 r9 00012edc 10 00100000 fp 00000001
i/debug ( 31): ip ffffffff sp 4070f488 lr aff193e9 pc aff15f58 cpsr 00000030
i/debug ( 31): #00 pc 00015f58 /system/lib/libc.so`
i/debug ( 31): #01 pc 00001466 /system/lib/liblog.so (__android_log_assert)
i/nuhttpdatasource( 33): connect www.simsanraj.comlu.com:80/maqm.m3u8 @0
w/audiosystem( 74): audiopolicyservice server died!
w/audiosystem( 380): audioflinger server died!
w/imediadeathnotifier( 380): media server died
e/mediaplayer( 380): error (100, 0)
w/audiosystem( 140): audioflinger server died!
w/audiosystem( 140): audiopolicyservice server died!
i/servicemanager( 28): service 'media.audio_flinger' died
i/servicemanager( 28): service 'media.player' died
i/servicemanager( 28): service 'media.camera' died
i/servicemanager( 28): service 'media.audio_policy' died
e/mediaplayerdemo( 380): error: prepare failed.: status=0x64
e/mediaplayerdemo( 380): java.io.ioexception: prepare failed.: status=0x64
e/mediaplayerdemo( 380): @ android.media.mediaplayer.prepare(native method)
e/mediaplayerdemo( 380): @ com.example.testhls.mediaplayerdemo_video.playvideo(mediaplayerdemo_video.java:84)
e/mediaplayerdemo( 380): @ com.example.testhls.mediaplayerdemo_video.surfacecreated(mediaplayerdemo_video.java:138)
e/mediaplayerdemo( 380): @ android.view.surfaceview.updatewindow(surfaceview.java:565)
e/mediaplayerdemo( 380): @ android.view.surfaceview.access$000(surfaceview.java:84)
e/mediaplayerdemo( 380): @ android.view.surfaceview$3.onpredraw(surfaceview.java:173)
e/mediaplayerdemo( 380): @ android.view.viewtreeobserver.dispatchonpredraw(viewtreeobserver.java:590)
e/mediaplayerdemo( 380): @ android.view.viewroot.performtraversals(viewroot.java:1325)
e/mediaplayerdemo( 380): @ android.view.viewroot.handlemessage(viewroot.java:1944)
e/mediaplayerdemo( 380): @ android.os.handler.dispatchmessage(handler.java:99)
e/mediaplayerdemo( 380): @ android.os.looper.loop(looper.java:126)
e/mediaplayerdemo( 380): @ android.app.activitythread.main(activitythread.java:3997)
e/mediaplayerdemo( 380): @ java.lang.reflect.method.invokenative(native method)
e/mediaplayerdemo( 380): @ java.lang.reflect.method.invoke(method.java:491)
e/mediaplayerdemo( 380): @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:841)
e/mediaplayerdemo( 380): @ com.android.internal.os.zygoteinit.main(zygoteinit.java:599)
e/mediaplayerdemo( 380): @ dalvik.system.nativestart.main(native method)
d/mediaplayerdemo( 380): surfacechanged called
i/bootreceiver( 74): copying /data/tombstones/tombstone_05 dropbox (system_tombstone)
i/activitymanager( 74): displayed com.example.testhls/.mediaplayerdemo_video: +15s400ms
d/dalvikvm( 380): gc_concurrent freed 123k, 4% free 6510k/6727k, paused 4ms+26ms
i/ ( 391): servicemanager: 0xf798
d/audiohardwareinterface( 391): setmode(normal)
i/cameraservice( 391): cameraservice started (pid=391)
i/audioflinger( 391): audioflinger's thread 0xff88 ready run
d/dalvikvm( 147): gc_explicit freed <1k, 18% free 14315k/17287k, paused 4ms+4ms
d/dalvikvm( 303): gc_explicit freed 196k, 5% free 6280k/6599k, paused 10ms+3ms
also when checked stream on native device (android's tablet - runs honeycomb 3.2.1), tablet hangs.
from readings, have learnt called baseline profile needs configured play http live streams on android not sure how configure it.
please give hints on should start investigation.
Comments
Post a Comment