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