视频应该是什么配置文件/分辨率?这样Android的Emulator 3.0就可以播放HLS流了

时间:2012-03-07 20:53:54

标签: android http-live-streaming

我的Android Emulator运行Android 3.0,当我测试Apple的示例HLS链接时:“http://devimages.apple.com/iphone/samples/bipbop/gear1/prog_index.m3u8”它运行成功。

我已经通过阅读Apple的HLS规范创建了一个自定义文件“maqm.m3u8” 参考:(https://developer.apple.com/library/archive/documentation/NetworkingInternet/Conceptual/StreamingMediaGuide/Introduction/Introduction.html

但是使用免费编码(使用ffmpegx)和分段(开源分段器)方法来创建我的自定义.m3u8文件。

当我通过上传服务器(www.simsanraj.comlu.com/maqm.m3u8)测试这个.m3u8文件时,它在safari 5.0.3和iPad2上成功播放。

然而,当我在我的Android模拟器上测试时使用相同的流(使用成功播放bipbop示例文件的相同代码),模拟器崩溃。

生成以下日志:

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 to www.simsanraj.comlu.com:80/maqm.m3u8 @0

I/NuHTTPDataSource( 33): connect to www.simsanraj.comlu.com:80/maqm.m3u8 @0

I/NuHTTPDataSource( 33): connect to simsanraj.comlu.com:80/maq.ts @0

W/ActivityManager( 74): Launch timeout has expired, giving up wake lock!

W/ActivityManager( 74): Activity idle timeout for ActivityRecord{41aafa80 com.example.testhls/.MediaPlayerDemo_Video} I/ESQueue ( 33): found something resembling an AAC syncword at 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):信号11(SIGSEGV),代码1(SEGV_MAPERR),故障地址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 { {1}} 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 to 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): at android.media.MediaPlayer.prepare(Native Method)

E/MediaPlayerDemo( 380): at com.example.testhls.MediaPlayerDemo_Video.playVideo(MediaPlayerDemo_Video.java:84)

E/MediaPlayerDemo( 380): at com.example.testhls.MediaPlayerDemo_Video.surfaceCreated(MediaPlayerDemo_Video.java:138)

E/MediaPlayerDemo( 380): at android.view.SurfaceView.updateWindow(SurfaceView.java:565)

E/MediaPlayerDemo( 380): at android.view.SurfaceView.access$000(SurfaceView.java:84)

E/MediaPlayerDemo( 380): at android.view.SurfaceView$3.onPreDraw(SurfaceView.java:173)

E/MediaPlayerDemo( 380): at android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:590)

E/MediaPlayerDemo( 380): at android.view.ViewRoot.performTraversals(ViewRoot.java:1325)

E/MediaPlayerDemo( 380): at android.view.ViewRoot.handleMessage(ViewRoot.java:1944)

E/MediaPlayerDemo( 380): at android.os.Handler.dispatchMessage(Handler.java:99)

E/MediaPlayerDemo( 380): at android.os.Looper.loop(Looper.java:126)

E/MediaPlayerDemo( 380): at android.app.ActivityThread.main(ActivityThread.java:3997)

E/MediaPlayerDemo( 380): at java.lang.reflect.Method.invokeNative(Native Method)

E/MediaPlayerDemo( 380): at java.lang.reflect.Method.invoke(Method.java:491)

E/MediaPlayerDemo( 380): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)

E/MediaPlayerDemo( 380): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)

E/MediaPlayerDemo( 380): at dalvik.system.NativeStart.main(Native Method)

D/MediaPlayerDemo( 380): surfaceChanged called

I/BootReceiver( 74): Copying /data/tombstones/tombstone_05 to 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 to run

D/dalvikvm( 147): GC_EXPLICIT freed <1K, 18% free 14315K/17287K, paused 4ms+4ms

此外,当我在本机设备(Android平板电脑上运行Honeycomb 3.2.1)上检查此流时,平板电脑仍然挂起。

从我的阅读材料中,我学到了一些需要配置为在Android上播放HTTP实时流但不确定如何配置它的基线配置文件。

请提供一些关于我应该从哪里开始调查的提示。

0 个答案:

没有答案