bilibili / ijkplayer

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

k0.8.8 not support rtsp h264 stream,why ? #4121

Open szhansen opened 6 years ago

szhansen commented 6 years ago

config is bellow: export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-demuxer=h264" export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-protocol=rtmp*" export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-protocol=rtmp" export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-protocol=rtmpt" export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-protocol=rtp" export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-protocol=rtsp" export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-protocol=tcp" export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-demuxer=rtsp" export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-demuxer=sdp" export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-demuxer=rtp"

                       LOG

I/System.out: @-------->createPlayer:0,url:rtsp://192.168.8.1:6880/test.h264 I/J4A: API-Level: 24 I/IJKMEDIA: av_version_info: ff3.4--ijk0.8.7--20180103--001 I/IJKMEDIA: ijk_version_info: k0.8.8 W/IJKMEDIA: remove 'timeout' option for rtmp. I/IJKMEDIA: ===== versions ===== I/IJKMEDIA: ijkplayer : k0.8.8 I/IJKMEDIA: SDL_RunThread: [25341] ff_msg_loop I/IJKMEDIA: FFmpeg : ff3.4--ijk0.8.7--20180103--001 I/IJKMEDIA: libavutil : 55.78.100 I/IJKMEDIA: libavcodec : 57.107.100 I/IJKMEDIA: libavformat : 57.83.100 I/IJKMEDIA: libswscale : 4.8.100 I/IJKMEDIA: libswresample: 2.9.100 I/IJKMEDIA: ===== options ===== I/IJKMEDIA: player-opts : mediacodec = 1 I/IJKMEDIA: player-opts : mediacodec-auto-rotate = 0 I/IJKMEDIA: player-opts : mediacodec-handle-resolution-change = 0 I/IJKMEDIA: player-opts : opensles = 0 I/IJKMEDIA: player-opts : overlay-format = 842225234 I/IJKMEDIA: player-opts : packet-buffering = 0 I/IJKMEDIA: player-opts : framedrop = 60 I/IJKMEDIA: player-opts : max-fps = 60 I/IJKMEDIA: player-opts : fps = 25 I/IJKMEDIA: player-opts : start-on-prepared = 1 I/IJKMEDIA: format-opts : ijkapplication = -585788704 I/IJKMEDIA: format-opts : ijkiomanager = -419903360 I/IJKMEDIA: format-opts : http-detect-range-support = 0 I/IJKMEDIA: format-opts : fflags = nobuffer I/IJKMEDIA: format-opts : max-buffer-size = 1024 I/IJKMEDIA: format-opts : probsize = 4096 I/IJKMEDIA: codec-opts : skip_loop_filter = 48 I/IJKMEDIA: =================== I/IJKMEDIA: SDL_RunThread: [25342] ff_vout I/IJKMEDIA: SDL_RunThread: [25343] ff_read W/IJKMEDIA: remove 'timeout' option for rtmp. I/IJKMEDIA: Add dns cache hostname = 192.168.8.1, ip = I/System.out: [pm, list, packages] I/System.out: null I/System.out: null I/System.out: Calling by::className:com.mob.tools.utils.DeviceHelper MethodName:getInstalledApp I/System.out: [cat, /sys/class/net/wlan0/address] I/System.out: null I/System.out: null I/System.out: Calling by::className:com.mob.tools.utils.DeviceHelper MethodName:getHardwareAddressFromShell I/System.out: [sh] I/System.out: null I/System.out: null I/System.out: Calling by::className:com.mob.commons.clt.RtClt MethodName:b I/IJKMEDIA: SDP: v=0 o=-3730679296 3730679296 IN IP4 192.168.8.1 s=Unnamed i=N/A c=IN IP4 192.168.8.171 t=0 0 a=recvonly m=video 5004 RTP/AVP 96 b=RR:0 a=rtpmap:96 H264/90000 a=fmtp:96 packetization-mode=1;profile-level-id=331210;sprop-parameter-sets=rDMSEHDEuz2P,j6PHe5==; a=control:trackID=0 W/IJKMEDIA: 'circular_buffer_size' option was set but it is not supported on this build (pthread support is required) W/IJKMEDIA: 'circular_buffer_size' option was set but it is not supported on this build (pthread support is required) E/IJKMEDIA: method SETUP failed: 461 Unsupported transport E/IJKMEDIA: method SETUP failed: 461 Unsupported transport E/IJKMEDIA: method SETUP failed: 461 Unsupported transport E/IJKMEDIA: rtsp://192.168.8.1:6880/test.h264: Protocol not supported I/IJKMEDIA: SDL_JNI_DetachThreadEnv: [25343] E/tv.danmaku.ijk.media.player.IjkMediaPlayer: Error (-10000,0) I/System.out: [cat, /sys/class/net/wlan0/address] I/System.out: null I/System.out: null I/System.out: Calling by::className:com.mob.tools.utils.DeviceHelper MethodName:getHardwareAddressFromShell I/System.out: [cat, /sys/class/net/wlan0/address] I/System.out: null I/System.out: null I/System.out: Calling by::className:com.mob.tools.utils.DeviceHelper MethodName:getHardwareAddressFromShell I/art: Do partial code cache collection, code=20KB, data=30KB I/art: After code cache collection, code=20KB, data=30KB I/art: Increasing code cache capacity to 128KB I/System.out: [cat, /sys/class/net/wlan0/address] I/System.out: null I/System.out: null I/System.out: Calling by::className:com.mob.tools.utils.DeviceHelper MethodName:getHardwareAddressFromShell I/System.out: [cat, /sys/class/net/wlan0/address] I/System.out: null I/System.out: null I/System.out: Calling by::className:com.mob.tools.utils.DeviceHelper MethodName:getHardwareAddressFromShell W/art: Suspending all threads took: 8.521ms I/System.out: [cat, /sys/class/net/wlan0/address] I/System.out: null I/System.out: null I/System.out: Calling by::className:com.mob.tools.utils.DeviceHelper MethodName:getHardwareAddressFromShell I/System.out: [cat, /sys/class/net/wlan0/address] I/System.out: null I/System.out: null I/System.out: Calling by::className:com.mob.tools.utils.DeviceHelper MethodName:getHardwareAddressFromShell I/System.out: [cat, /sys/class/net/wlan0/address] I/System.out: null I/System.out: null I/System.out: Calling by::className:com.mob.tools.utils.DeviceHelper MethodName:getHardwareAddressFromShell I/System.out: [cat, /sys/class/net/wlan0/address] I/System.out: null I/System.out: null I/System.out: Calling by::className:com.mob.tools.utils.DeviceHelper MethodName:getHardwareAddressFromShell I/System.out: [cat, /sys/class/net/wlan0/address] I/System.out: null I/System.out: null I/System.out: Calling by::className:com.mob.tools.utils.DeviceHelper MethodName:getHardwareAddressFromShell I/System.out: [cat, /sys/class/net/wlan0/address] I/System.out: null I/System.out: null I/System.out: Calling by::className:com.mob.tools.utils.DeviceHelper MethodName:getHardwareAddressFromShell

szhansen commented 6 years ago

@bbcallen

c10ud commented 6 years ago

I too am getting this: 03-22 16:55:23.878 22381-22381/com.timm.falco I/IJKMEDIA: ===== versions ===== 03-22 16:55:23.878 22381-22381/com.timm.falco I/IJKMEDIA: ijkplayer : k0.8.8 03-22 16:55:23.878 22381-22381/com.timm.falco I/IJKMEDIA: FFmpeg : ff3.4--ijk0.8.7--20180103--001 03-22 16:55:23.878 22381-22381/com.timm.falco I/IJKMEDIA: libavutil : 55.78.100 03-22 16:55:23.878 22381-22381/com.timm.falco I/IJKMEDIA: libavcodec : 57.107.100 03-22 16:55:23.878 22381-22381/com.timm.falco I/IJKMEDIA: libavformat : 57.83.100 03-22 16:55:23.878 22381-22381/com.timm.falco I/IJKMEDIA: libswscale : 4.8.100 03-22 16:55:23.878 22381-22381/com.timm.falco I/IJKMEDIA: libswresample: 2.9.100 [...] 03-22 16:55:23.881 22381-22442/com.timm.falco E/IJKMEDIA: rtsp://200.200.200.200:554/stander/livestream/0/0: Protocol not found

c10ud commented 6 years ago

I compiled my own ijkplayer enabling rtsp and it's now working.

Thanks

szhansen commented 6 years ago

@c10ud I noticed that in your log "rtsp://200.200.200.200:554/stander/livestream/0/0: Protocol not found"

are you sure rtsp is ok ?

szhansen commented 6 years ago

@c10ud rtsp is working ?how to do that?what's your ijkplayer's version ?

minhkhanh92 commented 6 years ago

@szhansen you need to recompile ijkplayer to enable rtsp, I did it by modifying the file ijkplayer-android/config/lite-module.sh:

  1. remove the line 149: export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-protocol=rtp"
  2. add more 2 lines : export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-protocol=rtp" export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-demuxer=rtsp"

then follow the build instruction to compile the source code.

DavidNguyen2017 commented 6 years ago

Hi minhkhanh92,

Can you help me test with this rtsp url: rtsp://184.72.239.149/vod/mp4:BigBuckBunny_175k.mov? I build the same your guide, but can not play with url above

Thanks, David,

minhkhanh92 commented 6 years ago

@DavidNguyen2017 I just tried playing the url and it worked, what's the error you got? did you follow the build instruction https://github.com/Bilibili/ijkplayer#build-android

davidn2013 commented 6 years ago

Thank minhkhanh92,

Now i try to build from original source then play rtsp ok, may be have some problem from my modify source I will try to check why have issue when play with rtsp.

Thank you so much, David

fukemy commented 5 years ago

Hello. I dont know why i can not build source with support rtsp/rtmp. Can someone build it and add into gradle. many thanks