bilibili / bilibili/ijkplayer

PCMA 编码已打开,但仍无法播放 PCMA 流

Open
#3,733 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
C
Stars
33.2k
Forks
8.2k
PR merge metrics
No merged PRs in 30d

Description

版本信息:

```plain
ijkplayer : k0.8.4
FFmpeg : ff3.3--ijk0.8.0--20170829--001
libavutil : 55.58.100
libavcodec : 57.89.100
libavformat : 57.71.100
libswscale : 4.6.100
libswresample: 2.7.100
```

PCMA 和 RTSP 的相关配置都已经打开,PCMA 流依旧无法播放
```plain
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-decoder=pcm_alaw"
```

```plain
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-protocol=rtp"
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-demuxer=rtsp"
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-protocol=tcp"
```

上面都已配置。

相关日志如下:

```plain
11-07 11:22:59.737 28404-28404/? I/art: Late-enabling -Xcheck:jni
11-07 11:23:00.096 I/InstantRun: starting instant run server: is main process
11-07 11:23:00.349 W/art: Before Android 4.1, method android.graphics.PorterDuffColorFilter android.support.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android.content.res.ColorStateList, android.graphics.PorterDuff$Mode) would have incorrectly overridden the package-private method in android.graphics.drawable.Drawable

[ 11-07 11:23:00.578 28404:28404 E/ ]
SurfaceView doesn't support rotation (0)!
11-07 11:23:00.625 D/J4A: J4ALoader: OK: 'android.os.Build$VERSION' loaded
11-07 11:23:00.625 D/J4A: J4ALoader: OK: 'android.os.Build' loaded
11-07 11:23:00.626 D/J4A: J4ALoader: OK: 'java.nio.Buffer' loaded
11-07 11:23:00.626 D/J4A: J4ALoader: OK: 'java.nio.ByteBuffer' loaded
11-07 11:23:00.626 D/J4A: J4ALoader: OK: 'java.util.ArrayList' loaded
11-07 11:23:00.626 I/J4A: API-Level: 25
11-07 11:23:00.626 D/J4A: J4ALoader: OK: 'android.media.AudioTrack' loaded
11-07 11:23:00.626 D/J4A: J4ALoader: OK: 'android.media.MediaCodec$BufferInfo' loaded
11-07 11:23:00.626 D/J4A: J4ALoader: OK: 'android.media.MediaCodec' loaded
11-07 11:23:00.626 D/J4A: J4ALoader: OK: 'android.media.MediaFormat' loaded
11-07 11:23:00.626 D/J4A: J4ALoader: OK: 'android.media.PlaybackParams' loaded
11-07 11:23:00.627 D/J4A: J4ALoader: OK: 'android.os.Bundle' loaded
11-07 11:23:00.627 D/J4A: J4ALoader: OK: 'tv.danmaku.ijk.media.player.misc.IMediaDataSource' loaded
11-07 11:23:00.627 D/J4A: J4ALoader: OK: 'tv.danmaku.ijk.media.player.misc.IAndroidIO' loaded
11-07 11:23:00.627 D/J4A: J4ALoader: OK: 'tv.danmaku.ijk.media.player.IjkMediaPlayer' loaded
11-07 11:23:00.630 D/IJKMEDIA: IjkMediaPlayer_native_profileBegin
11-07 11:23:00.630 D/aprof-fake: fake-monstartup libijkplayer.so
11-07 11:23:00.630 D/IJKMEDIA: monstartup: libijkplayer.so
11-07 11:23:00.806 28404-28442/com.huanyutong.cloudbroadcast I/Adreno-EGL: : EGL 1.4 QUALCOMM build: Nondeterministic_AU_msm8974_LA.BF.1.1.3_RB1__release_AU (I3193f6e94a)
OpenGL ES Shader Compiler Version: E031.28.00.02
Build Date: 10/09/15 Fri
Local Branch: mybranch15039904
Remote Branch: quic/LA.BF.1.1.3_rb1.2
Local Patches: NONE
Reconstruct Branch: NOTHING
11-07 11:23:00.809 28404-28442/com.huanyutong.cloudbroadcast I/OpenGLRenderer: Initialized EGL, version 1.4
11-07 11:23:00.810 28404-28442/com.huanyutong.cloudbroadcast D/OpenGLRenderer: Swap behavior 1
11-07 11:23:00.853 W/art: Before Android 4.1, method int android.support.v7.widget.ListViewCompat.lookForSelectablePosition(int, boolean) would have incorrectly overridden the package-private method in android.widget.ListView
11-07 11:23:00.891 D/IJKMEDIA: IjkMediaPlayer_native_init
11-07 11:23:00.894 D/IJKMEDIA: IjkMediaPlayer_native_setup
11-07 11:23:00.894 I/IJKMEDIA: av_version_info: ff3.3--ijk0.8.0--20170829--001
11-07 11:23:00.894 I/IJKMEDIA: ijk_version_info: k0.8.4
11-07 11:23:00.894 D/IJKMEDIA: ffpipeline_create_from_android()
11-07 11:23:00.894 D/IJKMEDIA: ijkmp_set_inject_opaque(0x1007ce)
11-07 11:23:00.894 D/IJKMEDIA: ijkmp_set_inject_opaque()=void
11-07 11:23:00.894 D/IJKMEDIA: ijkmp_set_ijkio_inject_opaque(0x1007ce)
11-07 11:23:00.894 D/IJKMEDIA: ijkmp_set_ijkio_inject_opaque()=void
11-07 11:23:00.894 D/IJKMEDIA: ijkmp_android_set_mediacodec_select_callback()
11-07 11:23:00.894 D/IJKMEDIA: ffpipeline_set_mediacodec_select_callback
11-07 11:23:00.894 D/IJKMEDIA: ijkmp_android_set_mediacodec_select_callback()=void
11-07 11:23:00.894 D/IJKMEDIA: IjkMediaPlayer_native_setLogLevel(3)
11-07 11:23:00.894 D/IJKMEDIA: moncleanup
11-07 11:23:00.894 D/IJKMEDIA: IjkMediaPlayer_setOptionLong
11-07 11:23:00.894 D/IJKMEDIA: IjkMediaPlayer_setOptionLong
11-07 11:23:00.894 D/IJKMEDIA: IjkMediaPlayer_setOptionLong
11-07 11:23:00.894 D/IJKMEDIA: IjkMediaPlayer_setOptionLong
11-07 11:23:00.896 D/IJKMEDIA: IjkMediaPlayer_setOptionLong
11-07 11:23:00.896 D/IJKMEDIA: IjkMediaPlayer_setOptionLong
11-07 11:23:00.896 D/IJKMEDIA: IjkMediaPlayer_setOptionLong
11-07 11:23:00.896 D/IJKMEDIA: IjkMediaPlayer_setOptionLong
11-07 11:23:00.896 D/IJKMEDIA: IjkMediaPlayer_setOptionLong
11-07 11:23:00.896 D/IJKMEDIA: IjkMediaPlayer_setOptionLong
11-07 11:23:00.896 D/IJKMEDIA: IjkMediaPlayer_setOptionLong
11-07 11:23:00.896 D/IJKMEDIA: IjkMediaPlayer_setOption
11-07 11:23:00.897 D/tv.danmaku.ijk.media.player.IjkMediaPlayer: Couldn't open file on client side, trying server side
11-07 11:23:00.897 D/IJKMEDIA: IjkMediaPlayer_setDataSourceAndHeaders
11-07 11:23:00.897 V/IJKMEDIA: setDataSource: path rtsp://192.168.116.33/meeyi
11-07 11:23:00.897 D/IJKMEDIA: ijkmp_set_data_source(url="rtsp://192.168.116.33/meeyi")
11-07 11:23:00.897 D/IJKMEDIA: ijkmp_set_data_source(url="rtsp://192.168.116.33/meeyi")=0
11-07 11:23:00.897 D/IJKMEDIA: IjkMediaPlayer_setVideoSurface
11-07 11:23:00.897 D/IJKMEDIA: ijkmp_set_android_surface(surface=0xbe854740)
11-07 11:23:00.897 D/IJKMEDIA: ffpipeline_set_surface()
11-07 11:23:00.897 D/IJKMEDIA: ijkmp_set_android_surface(surface=0xbe854740)=void
11-07 11:23:00.897 D/IJKMEDIA: IjkMediaPlayer_prepareAsync
11-07 11:23:00.897 D/IJKMEDIA: ijkmp_prepare_async()
11-07 11:23:00.897 W/IJKMEDIA: remove 'timeout' option for rtmp.
11-07 11:23:00.897 I/IJKMEDIA: ===== versions =====
11-07 11:23:00.897 I/IJKMEDIA: ijkplayer : k0.8.4
11-07 11:23:00.897 28404-28453/com.huanyutong.cloudbroadcast I/IJKMEDIA: SDL_RunThread: [28453] ff_msg_loop
11-07 11:23:00.897 I/IJKMEDIA: FFmpeg : ff3.3--ijk0.8.0--20170829--001
11-07 11:23:00.897 28404-28453/com.huanyutong.cloudbroadcast D/IJKMEDIA: message_loop
11-07 11:23:00.897 I/IJKMEDIA: libavutil : 55.58.100
11-07 11:23:00.897 I/IJKMEDIA: libavcodec : 57.89.100
11-07 11:23:00.897 I/IJKMEDIA: libavformat : 57.71.100
11-07 11:23:00.898 I/IJKMEDIA: libswscale : 4.6.100
11-07 11:23:00.898 I/IJKMEDIA: libswresample: 2.7.100
11-07 11:23:00.898 I/IJKMEDIA: ===== options =====
11-07 11:23:00.898 I/IJKMEDIA: player-opts : mediacodec = 1
11-07 11:23:00.898 I/IJKMEDIA: player-opts : opensles = 0
11-07 11:23:00.898 I/IJKMEDIA: player-opts : overlay-format = 842225234
11-07 11:23:00.898 I/IJKMEDIA: player-opts : framedrop = 1
11-07 11:23:00.898 I/IJKMEDIA: player-opts : start-on-prepared = 0
11-07 11:23:00.898 I/IJKMEDIA: player-opts : packet-buffering = 0
11-07 11:23:00.898 I/IJKMEDIA: player-opts : max_cached_duration = 1000
11-07 11:23:00.898 I/IJKMEDIA: player-opts : rtsp_transport = tcp
11-07 11:23:00.898 I/IJKMEDIA: format-opts : ijkapplication = -1231513056
11-07 11:23:00.898 I/IJKMEDIA: format-opts : ijkiomanager = -1551154432
11-07 11:23:00.898 28404-28453/com.huanyutong.cloudbroadcast D/IJKMEDIA: FFP_MSG_FLUSH:
11-07 11:23:00.898 I/IJKMEDIA: format-opts : http-detect-range-support = 0
11-07 11:23:00.898 I/IJKMEDIA: format-opts : reconnect = 1
11-07 11:23:00.898 I/IJKMEDIA: codec-opts : skip_loop_filter = 48
11-07 11:23:00.898 I/IJKMEDIA: ===================
11-07 11:23:00.899 D/IJKMEDIA: ijkmp_prepare_async()=0
11-07 11:23:00.899 28404-28454/com.huanyutong.cloudbroadcast I/IJKMEDIA: SDL_RunThread: [28454] ff_vout
11-07 11:23:00.903 I/IJKMEDIA: SDL_RunThread: [28455] ff_read
11-07 11:23:00.903 W/IJKMEDIA: remove 'timeout' option for rtmp.
11-07 11:23:00.904 D/IJKMEDIA: No default whitelist set
11-07 11:23:00.919 I/IJKMEDIA: Add dns cache hostname = 192.168.116.33, ip =
11-07 11:23:00.931 I/IJKMEDIA: SDP:
v=0
o=- 1510024557 484214 IN IP4 192.168.116.33
s=Session streamed by "MEEYI RTSP Server"
i=meeyi
t=0 0
a=control:*
a=range:npt=now-
m=audio 0 RTP/AVP 8
c=IN IP4 0.0.0.0
b=AS:128
a=control:track1
```

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reproducing the RTSP playback failure with the reported PCMA configuration and inspect the SDP shown in the issue, especially the audio track declaration. Trace how the enabled pcm_alaw decoder, RTP protocol, RTSP demuxer, and TCP transport are selected, then verify playback with the same stream and confirm the failure cause.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, c
Domain
audio-video-rtc, mobile-dev
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.