bilibili / ijkplayer

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

无法播放rtsp #3913

Open wudilun opened 6 years ago

wudilun commented 6 years ago

已添加rtsp支持,有些rtsp可以播放,而有些无法播放?而在VLC上都是可以播放的,下面是日志:

01-10 14:22:37.036 29360-29360/com.nbpt.www.vmd D/IJKMEDIA: IjkMediaPlayer_native_init 01-10 14:22:37.036 29360-29360/com.nbpt.www.vmd D/IJKMEDIA: IjkMediaPlayer_native_setup 01-10 14:22:37.036 29360-29360/com.nbpt.www.vmd I/IJKMEDIA: av_version_info: ff3.3--ijk0.8.0--20170710--001 01-10 14:22:37.036 29360-29360/com.nbpt.www.vmd I/IJKMEDIA: ijk_version_info: k0.8.1-10-g36ba72d 01-10 14:22:37.036 29360-29360/com.nbpt.www.vmd D/IJKMEDIA: ffpipeline_create_from_android() 01-10 14:22:37.036 29360-29360/com.nbpt.www.vmd D/IJKMEDIA: ijkmp_set_inject_opaque(0x1d200266) 01-10 14:22:37.036 29360-29360/com.nbpt.www.vmd D/IJKMEDIA: ijkmp_set_inject_opaque()=void 01-10 14:22:37.036 29360-29360/com.nbpt.www.vmd D/IJKMEDIA: ijkmp_set_ijkio_inject_opaque(0x1d200266) 01-10 14:22:37.036 29360-29360/com.nbpt.www.vmd D/IJKMEDIA: ijkmp_set_ijkio_inject_opaque()=void 01-10 14:22:37.036 29360-29360/com.nbpt.www.vmd D/IJKMEDIA: ijkmp_android_set_mediacodec_select_callback() 01-10 14:22:37.036 29360-29360/com.nbpt.www.vmd D/IJKMEDIA: ffpipeline_set_mediacodec_select_callback 01-10 14:22:37.036 29360-29360/com.nbpt.www.vmd D/IJKMEDIA: ijkmp_android_set_mediacodec_select_callback()=void 01-10 14:22:37.036 29360-29360/com.nbpt.www.vmd D/IJKMEDIA: IjkMediaPlayer_setOptionLong 01-10 14:22:37.036 29360-29360/com.nbpt.www.vmd D/IJKMEDIA: IjkMediaPlayer_setOptionLong 01-10 14:22:37.036 29360-29360/com.nbpt.www.vmd D/IJKMEDIA: IjkMediaPlayer_setOptionLong 01-10 14:22:37.036 29360-29360/com.nbpt.www.vmd D/IJKMEDIA: IjkMediaPlayer_setOptionLong 01-10 14:22:37.036 29360-29360/com.nbpt.www.vmd D/IJKMEDIA: IjkMediaPlayer_setOptionLong 01-10 14:22:37.036 29360-29360/com.nbpt.www.vmd D/IJKMEDIA: IjkMediaPlayer_setOption 01-10 14:22:37.081 29360-29360/com.nbpt.www.vmd D/tv.danmaku.ijk.media.player.IjkMediaPlayer: Couldn't open file on client side, trying server side 01-10 14:22:37.081 29360-29360/com.nbpt.www.vmd D/IJKMEDIA: IjkMediaPlayer_setDataSourceAndHeaders 01-10 14:22:37.081 29360-29360/com.nbpt.www.vmd V/IJKMEDIA: setDataSource: path rtsp://@192.168.1.109:1234/h264/ch1/main/av_stream 01-10 14:22:37.081 29360-29360/com.nbpt.www.vmd D/IJKMEDIA: ijkmp_set_data_source(url="rtsp://@192.168.1.109:1234/h264/ch1/main/av_stream") 01-10 14:22:37.081 29360-29360/com.nbpt.www.vmd D/IJKMEDIA: ijkmp_set_data_source(url="rtsp://@192.168.1.109:1234/h264/ch1/main/av_stream")=0 01-10 14:22:37.081 29360-29360/com.nbpt.www.vmd D/IJKMEDIA: IjkMediaPlayer_setVideoSurface 01-10 14:22:37.081 29360-29360/com.nbpt.www.vmd D/IJKMEDIA: ijkmp_set_android_surface(surface=0xb970001d) 01-10 14:22:37.081 29360-29360/com.nbpt.www.vmd D/IJKMEDIA: ffpipeline_set_surface() 01-10 14:22:37.081 29360-29360/com.nbpt.www.vmd D/IJKMEDIA: ijkmp_set_android_surface(surface=0xb970001d)=void 01-10 14:22:37.081 29360-29360/com.nbpt.www.vmd D/IJKMEDIA: IjkMediaPlayer_prepareAsync 01-10 14:22:37.081 29360-29360/com.nbpt.www.vmd D/IJKMEDIA: ijkmp_prepare_async() 01-10 14:22:37.081 29360-29360/com.nbpt.www.vmd W/IJKMEDIA: remove 'timeout' option for rtmp. 01-10 14:22:37.081 29360-29574/com.nbpt.www.vmd I/IJKMEDIA: SDL_RunThread: [29574] ff_msg_loop 01-10 14:22:37.081 29360-29360/com.nbpt.www.vmd I/IJKMEDIA: ===== versions ===== 01-10 14:22:37.081 29360-29360/com.nbpt.www.vmd I/IJKMEDIA: ijkplayer : k0.8.1-10-g36ba72d 01-10 14:22:37.081 29360-29574/com.nbpt.www.vmd D/IJKMEDIA: message_loop 01-10 14:22:37.081 29360-29360/com.nbpt.www.vmd I/IJKMEDIA: FFmpeg : ff3.3--ijk0.8.0--20170710--001 01-10 14:22:37.081 29360-29360/com.nbpt.www.vmd I/IJKMEDIA: libavutil : 55.58.100 01-10 14:22:37.081 29360-29360/com.nbpt.www.vmd I/IJKMEDIA: libavcodec : 57.89.100 01-10 14:22:37.081 29360-29360/com.nbpt.www.vmd I/IJKMEDIA: libavformat : 57.71.100 01-10 14:22:37.081 29360-29360/com.nbpt.www.vmd I/IJKMEDIA: libswscale : 4.6.100 01-10 14:22:37.081 29360-29360/com.nbpt.www.vmd I/IJKMEDIA: libswresample: 2.7.100 01-10 14:22:37.081 29360-29360/com.nbpt.www.vmd I/IJKMEDIA: ===== options ===== 01-10 14:22:37.081 29360-29360/com.nbpt.www.vmd I/IJKMEDIA: player-opts : packet-buffering = 0 01-10 14:22:37.081 29360-29360/com.nbpt.www.vmd I/IJKMEDIA: player-opts : framedrop = 1 01-10 14:22:37.081 29360-29360/com.nbpt.www.vmd I/IJKMEDIA: player-opts : rtsp_transport = tcp 01-10 14:22:37.081 29360-29360/com.nbpt.www.vmd I/IJKMEDIA: format-opts : ijkapplication = 1577995792 01-10 14:22:37.081 29360-29360/com.nbpt.www.vmd I/IJKMEDIA: format-opts : ijkiomanager = 1577817560 01-10 14:22:37.081 29360-29360/com.nbpt.www.vmd I/IJKMEDIA: format-opts : analyzemaxduration = 100 01-10 14:22:37.081 29360-29360/com.nbpt.www.vmd I/IJKMEDIA: format-opts : probesize = 10240 01-10 14:22:37.081 29360-29574/com.nbpt.www.vmd D/IJKMEDIA: FFP_MSG_FLUSH: 01-10 14:22:37.081 29360-29360/com.nbpt.www.vmd I/IJKMEDIA: format-opts : flush_packets = 1 01-10 14:22:37.081 29360-29360/com.nbpt.www.vmd I/IJKMEDIA: =================== 01-10 14:22:37.081 29360-29575/com.nbpt.www.vmd I/IJKMEDIA: SDL_RunThread: [29575] ff_vout 01-10 14:22:37.081 29360-29360/com.nbpt.www.vmd D/IJKMEDIA: ijkmp_prepare_async()=0 01-10 14:22:37.086 29360-29577/com.nbpt.www.vmd I/IJKMEDIA: SDL_RunThread: [29577] ff_read 01-10 14:22:37.086 29360-29577/com.nbpt.www.vmd W/IJKMEDIA: remove 'timeout' option for rtmp. 01-10 14:22:37.181 29360-29577/com.nbpt.www.vmd W/IJKMEDIA: 'circular_buffer_size' option was set but it is not supported on this build (pthread support is required) 01-10 14:22:37.181 29360-29577/com.nbpt.www.vmd W/IJKMEDIA: 'circular_buffer_size' option was set but it is not supported on this build (pthread support is required) 01-10 14:22:37.191 29360-29577/com.nbpt.www.vmd E/IJKMEDIA: Nonmatching transport in server reply 01-10 14:22:37.191 29360-29577/com.nbpt.www.vmd E/IJKMEDIA: rtsp://@192.168.1.109:1234/h264/ch1/main/av_stream: Invalid data found when processing input 01-10 14:22:37.191 29360-29574/com.nbpt.www.vmd D/IJKMEDIA: FFP_MSG_ERROR: 0 01-10 14:22:37.191 29360-29577/com.nbpt.www.vmd I/IJKMEDIA: SDL_JNI_DetachThreadEnv: [29577] 01-10 14:22:37.191 29360-29360/com.nbpt.www.vmd E/tv.danmaku.ijk.media.player.IjkMediaPlayer: Error (-10000,0) 01-10 14:22:37.191 29360-29360/com.nbpt.www.vmd I/com.nbpt.www.vmd.video.NiceVideoPlayer$4: onError ——> STATE_ERROR ———— what:-10000, extra: 0

lm3515 commented 6 years ago

配置的问题,默认是使用module-lite.sh,可以修改为module-default.sh,就不用添加配置参数。 如果用module-lite.sh,就需要修改,这里不直接使用module-default.sh这个配置,太大,而我们业务只需要rtmp和rtsp

在配置中添加 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"

具体可以百度,这个资料太多了就不做详细的描述