bilibili / ijkplayer

Android/iOS video player based on FFmpeg n3.4, with MediaCodec, VideoToolbox support.
GNU General Public License v2.0
32.4k stars 8.1k forks source link

无法播放手机b站客户端直播dlna投屏的链接,出现 Server returned 403 Forbidden (access denied)报错 #5488

Open unnoPlayer opened 1 year ago

unnoPlayer commented 1 year ago

通过dlna拿到b站客户端直播视频的链接后,用ijkplayer播放,会出现 W/IJKMEDIA: HTTP error 403 Forbidden 和 E/IJKMEDIA: http://14.17.92.23/live-bvc/768629/live_2051100473_39541482_1500.flv?expires=1669435133&pt=android&deadline=1669435133&len=0&oi=2004595625&platform=android&qn=64&trid=10001bd5679e45ed4ba7941179d86f899b1b&uipk=100&uipv=100&nbs=1&uparams=cdn,deadline,len,oi,platform,qn,trid,uipk,uipv,nbs&cdn=cn-gotcha01&upsig=8427f679796b81cb50e0d56a8df0370e&sk=1304f646dfeb4df8b6e7ff33c167d3ad52dc28d2b434c49b202f46923d102069&p2p_type=8192&src=57345&sl=2&free_type=0&sid=cn-gddg-ct-01-22&chash=1&sche=ban&score=11&usgroup=eg&pp=rtmp&machinezone=ylf&source=onetier&trace=0&site=ee7cdaba98daa4e9a82864e370694cca&order=1&bili_room_id=26157531&_nva_ext_=: Server returned 403 Forbidden (access denied) 的报错。 下面是详细log: D/IJKMEDIA: IjkMediaPlayer_native_setup I/IJKMEDIA: av_version_info: ff4.0--ijk0.8.8--20210426--001 I/IJKMEDIA: ijk_version_info: k0.8.8-43-g30eb9441 D/IJKMEDIA: ffpipeline_create_from_android() D/IJKMEDIA: ijkmp_set_inject_opaque(0x2a46) D/IJKMEDIA: ijkmp_set_inject_opaque()=void D/IJKMEDIA: ijkmp_set_ijkio_inject_opaque(0x2a46) D/IJKMEDIA: ijkmp_set_ijkio_inject_opaque()=void D/IJKMEDIA: ijkmp_android_set_mediacodec_select_callback() D/IJKMEDIA: ffpipeline_set_mediacodec_select_callback D/IJKMEDIA: ijkmp_android_set_mediacodec_select_callback()=void D/IJKMEDIA: IjkMediaPlayer_setOptionLong D/IJKMEDIA: IjkMediaPlayer_setOption D/IJKMEDIA: IjkMediaPlayer_setOption D/IJKMEDIA: IjkMediaPlayer_setOptionLong D/IJKMEDIA: IjkMediaPlayer_setOptionLong D/IJKMEDIA: IjkMediaPlayer_reset D/IJKMEDIA: IjkMediaPlayer_release D/IJKMEDIA: ijkmp_set_android_surface(surface=0x0) D/IJKMEDIA: ffpipeline_set_surface() D/IJKMEDIA: ijkmp_set_android_surface(surface=0x0)=void D/IJKMEDIA: ijkmp_shutdown_l() D/IJKMEDIA: ijkmp_shutdown_l()=void D/IJKMEDIA: IjkMediaPlayer_native_setup I/IJKMEDIA: av_version_info: ff4.0--ijk0.8.8--20210426--001 I/IJKMEDIA: ijk_version_info: k0.8.8-43-g30eb9441 D/IJKMEDIA: ffpipeline_create_from_android() D/IJKMEDIA: ijkmp_set_inject_opaque(0x2a6a) D/IJKMEDIA: ijkmp_set_inject_opaque()=void D/IJKMEDIA: ijkmp_set_ijkio_inject_opaque(0x2a6a) D/IJKMEDIA: ijkmp_set_ijkio_inject_opaque()=void D/IJKMEDIA: ijkmp_android_set_mediacodec_select_callback() D/IJKMEDIA: ffpipeline_set_mediacodec_select_callback D/IJKMEDIA: ijkmp_android_set_mediacodec_select_callback()=void D/IJKMEDIA: ijkmp_dec_ref(): ref=0 D/IJKMEDIA: ijkmp_shutdown_l() D/IJKMEDIA: ijkmp_shutdown_l()=void

V/IJKMEDIA: setDataSource: path http://14.17.92.23/live-bvc/768629/live_2051100473_39541482_1500.flv?expires=1669435133&pt=android&deadline=1669435133&len=0&oi=2004595625&platform=android&qn=64&trid=10001bd5679e45ed4ba7941179d86f899b1b&uipk=100&uipv=100&nbs=1&uparams=cdn,deadline,len,oi,platform,qn,trid,uipk,uipv,nbs&cdn=cn-gotcha01&upsig=8427f679796b81cb50e0d56a8df0370e&sk=1304f646dfeb4df8b6e7ff33c167d3ad52dc28d2b434c49b202f46923d102069&p2p_type=8192&src=57345&sl=2&free_type=0&sid=cn-gddg-ct-01-22&chash=1&sche=ban&score=11&usgroup=eg&pp=rtmp&machinezone=ylf&source=onetier&trace=0&site=ee7cdaba98daa4e9a82864e370694cca&order=1&bili_room_id=26157531&_nva_ext_= D/IJKMEDIA: ijkmp_set_data_source(url="http://14.17.92.23/live-bvc/768629/live_2051100473_39541482_1500.flv?expires=1669435133&pt=android&deadline=1669435133&len=0&oi=2004595625&platform=android&qn=64&trid=10001bd5679e45ed4ba7941179d86f899b1b&uipk=100&uipv=100&nbs=1&uparams=cdn,deadline,len,oi,platform,qn,trid,uipk,uipv,nbs&cdn=cn-gotcha01&upsig=8427f679796b81cb50e0d56a8df0370e&sk=1304f646dfeb4df8b6e7ff33c167d3ad52dc28d2b434c49b202f46923d102069&p2p_type=8192&src=57345&sl=2&free_type=0&sid=cn-gddg-ct-01-22&chash=1&sche=ban&score=11&usgroup=eg&pp=rtmp&machinezone=ylf&source=onetier&trace=0&site=ee7cdaba98daa4e9a82864e370694cca&order=1&bili_room_id=26157531&_nva_ext_=") D/IJKMEDIA: ijkmp_set_data_source(url="http://14.17.92.23/live-bvc/768629/live_2051100473_39541482_1500.flv?expires=1669435133&pt=android&deadline=1669435133&len=0&oi=2004595625&platform=android&qn=64&trid=10001bd5679e45ed4ba7941179d86f899b1b&uipk=100&uipv=100&nbs=1&uparams=cdn,deadline,len,oi,platform,qn,trid,uipk,uipv,nbs&cdn=cn-gotcha01&upsig=8427f679796b81cb50e0d56a8df0370e&sk=1304f646dfeb4df8b6e7ff33c167d3ad52dc28d2b434c49b202f46923d102069&p2p_type=8192&src=57345&sl=2&free_type=0&sid=cn-gddg-ct-01-22&chash=1&sche=ban&score=11&usgroup=eg&pp=rtmp&machinezone=ylf&source=onetier&trace=0&site=ee7cdaba98daa4e9a82864e370694cca&order=1&bili_room_id=26157531&_nva_ext_=")=0 D/IJKMEDIA: IjkMediaPlayer_setVideoSurface D/IJKMEDIA: ijkmp_set_android_surface(surface=0xffcee070) D/IJKMEDIA: ffpipeline_set_surface() D/IJKMEDIA: ijkmp_set_android_surface(surface=0xffcee070)=void D/IJKMEDIA: IjkMediaPlayer_setOptionLong D/IJKMEDIA: IjkMediaPlayer_setOptionLong D/IJKMEDIA: IjkMediaPlayer_prepareAsync D/IJKMEDIA: ijkmp_prepare_async() I/IJKMEDIA: ===== versions ===== I/IJKMEDIA: SDL_RunThread: [5631] ff_msg_loop D/IJKMEDIA: message_loop I/IJKMEDIA: ijkplayer : k0.8.8-43-g30eb9441 I/IJKMEDIA: FFmpeg : ff4.0--ijk0.8.8--20210426--001 I/IJKMEDIA: libavutil : 56.14.100 I/IJKMEDIA: libavcodec : 58.18.100 I/IJKMEDIA: libavformat : 58.12.100 I/IJKMEDIA: libswscale : 5.1.100 I/IJKMEDIA: libswresample: 3.1.100 I/IJKMEDIA: ===== options ===== I/IJKMEDIA: player-opts : framedrop = 10 I/IJKMEDIA: player-opts : enable-accurate-seek = 1 I/IJKMEDIA: player-opts : soundtouch = 1 I/IJKMEDIA: format-opts : ijkapplication = 0xbc5780c0 I/IJKMEDIA: format-opts : ijkiomanager = 0xbc705000 I/IJKMEDIA: =================== D/IJKMEDIA: FFP_MSG_FLUSH: D/IJKMEDIA: ijkmp_prepare_async()=0 I/IJKMEDIA: SDL_RunThread: [5632] ff_vout I/IJKMEDIA: SDL_RunThread: [5633] ff_read I/tv.danmaku.ijk.media.player.IjkMediaPlayer: onNativeInvoke 1 I/tv.danmaku.ijk.media.player.IjkMediaPlayer: onNativeInvoke 131073 I/tv.danmaku.ijk.media.player.IjkMediaPlayer: onNativeInvoke 131074 I/IJKMEDIA: tcp did open uri = tcp://14.17.92.23:80, ip = 14.17.92.23

W/IJKMEDIA: HTTP error 403 Forbidden I/tv.danmaku.ijk.media.player.IjkMediaPlayer: onNativeInvoke 2 E/IJKMEDIA: http://14.17.92.23/live-bvc/768629/live_2051100473_39541482_1500.flv?expires=1669435133&pt=android&deadline=1669435133&len=0&oi=2004595625&platform=android&qn=64&trid=10001bd5679e45ed4ba7941179d86f899b1b&uipk=100&uipv=100&nbs=1&uparams=cdn,deadline,len,oi,platform,qn,trid,uipk,uipv,nbs&cdn=cn-gotcha01&upsig=8427f679796b81cb50e0d56a8df0370e&sk=1304f646dfeb4df8b6e7ff33c167d3ad52dc28d2b434c49b202f46923d102069&p2p_type=8192&src=57345&sl=2&free_type=0&sid=cn-gddg-ct-01-22&chash=1&sche=ban&score=11&usgroup=eg&pp=rtmp&machinezone=ylf&source=onetier&trace=0&site=ee7cdaba98daa4e9a82864e370694cca&order=1&bili_room_id=26157531&_nva_ext_=: Server returned 403 Forbidden (access denied) I/IJKMEDIA: SDL_JNI_DetachThreadEnv: [5633] D/IJKMEDIA: FFP_MSG_ERROR: 0 E/tv.danmaku.ijk.media.player.IjkMediaPlayer: Error (-10000,0) D/IJKMEDIA: IjkMediaPlayer_reset D/IJKMEDIA: IjkMediaPlayer_release D/IJKMEDIA: ijkmp_set_android_surface(surface=0x0) D/IJKMEDIA: ffpipeline_set_surface() D/IJKMEDIA: ijkmp_set_android_surface(surface=0x0)=void D/IJKMEDIA: ijkmp_shutdown_l() D/IJKMEDIA: message_loop exit I/IJKMEDIA: SDL_JNI_DetachThreadEnv: [5631] I/IJKMEDIA: SDL_JNI_DetachThreadEnv: [5632] D/IJKMEDIA: ijkmp_shutdown_l()=void D/IJKMEDIA: IjkMediaPlayer_native_setup I/IJKMEDIA: av_version_info: ff4.0--ijk0.8.8--20210426--001 I/IJKMEDIA: ijk_version_info: k0.8.8-43-g30eb9441 D/IJKMEDIA: ffpipeline_create_from_android() D/IJKMEDIA: ijkmp_set_inject_opaque(0x2a7a) D/IJKMEDIA: ijkmp_set_inject_opaque()=void D/IJKMEDIA: ijkmp_set_ijkio_inject_opaque(0x2a7a) D/IJKMEDIA: ijkmp_set_ijkio_inject_opaque()=void D/IJKMEDIA: ijkmp_android_set_mediacodec_select_callback() D/IJKMEDIA: ffpipeline_set_mediacodec_select_callback D/IJKMEDIA: ijkmp_android_set_mediacodec_select_callback()=void D/IJKMEDIA: ijkmp_dec_ref(): ref=0 D/IJKMEDIA: ijkmp_shutdown_l() D/IJKMEDIA: ijkmp_shutdown_l()=void

D/IJKMEDIA: IjkMediaPlayer_reset D/IJKMEDIA: IjkMediaPlayer_release D/IJKMEDIA: ijkmp_set_android_surface(surface=0x0) D/IJKMEDIA: ffpipeline_set_surface() D/IJKMEDIA: ijkmp_set_android_surface(surface=0x0)=void D/IJKMEDIA: ijkmp_shutdown_l() D/IJKMEDIA: ijkmp_shutdown_l()=void D/IJKMEDIA: IjkMediaPlayer_native_setup I/IJKMEDIA: av_version_info: ff4.0--ijk0.8.8--20210426--001 I/IJKMEDIA: ijk_version_info: k0.8.8-43-g30eb9441 D/IJKMEDIA: ffpipeline_create_from_android() D/IJKMEDIA: ijkmp_set_inject_opaque(0x2ab2) D/IJKMEDIA: ijkmp_set_inject_opaque()=void D/IJKMEDIA: ijkmp_set_ijkio_inject_opaque(0x2ab2) D/IJKMEDIA: ijkmp_set_ijkio_inject_opaque()=void D/IJKMEDIA: ijkmp_android_set_mediacodec_select_callback() D/IJKMEDIA: ffpipeline_set_mediacodec_select_callback D/IJKMEDIA: ijkmp_android_set_mediacodec_select_callback()=void D/IJKMEDIA: ijkmp_dec_ref(): ref=0 D/IJKMEDIA: ijkmp_shutdown_l() D/IJKMEDIA: ijkmp_shutdown_l()=void IjkMediaPlayer_release ijkmp_set_android_surface(surface=0x0) ffpipeline_set_surface() ijkmp_set_android_surface(surface=0x0)=void ijkmp_shutdown_l() ijkmp_shutdown_l()=void ijkmp_dec_ref(): ref=0 ijkmp_shutdown_l() ijkmp_shutdown_l()=void

请问该如何解决?

wnpllrzodiac commented 1 year ago

403 鉴权失败,和播放器没关系

unnoPlayer commented 1 year ago

403 鉴权失败,和播放器没关系

经过AndroidVideoCache 的 HttpProxyCacheServer 本地代理后,再使用ijkplayer播放是可以的,请问是一些通信的问题吗?我下载了exoplayer直接播放链接,也是可以播放的,所以怀疑是播放器去请求链接处理的问题。