Git Product home page Git Product logo

giraffeplayer's Introduction

GiraffePlayer

NOTE:this project is no longer update please using improved GiraffePlayer2 ,for flutter please visit GPlayer


out of the box android video player base on ijkplayer

note: if the player can't play your video,try download full-featured so which support more codec/format (bigger binary size) to replace ijkplayer-java/src/main/jniLibs (I have try to push a new branch to github but failed)

features

  1. base on ijkplayer,support RTMP , HLS (http & https) , MP4,M4A etc.
  2. gestures for volume control
  3. gestures for brightness control
  4. gestures for forward or backward
  5. fullscreen by manual or sensor
  6. try to replay when error(only for live video)
  7. set video scale type (double click video will switch the scale types in app,you can find the difference)
    1. fitParent:scale the video uniformly (maintain the video's aspect ratio) so that both dimensions (width and height) of the video will be equal to or less than the corresponding dimension of the view. like ImageView's CENTER_INSIDE.等比缩放,画面填满view。
    2. fillParent:scale the video uniformly (maintain the video's aspect ratio) so that both dimensions (width and height) of the video will be equal to or larger than the corresponding dimension of the view .like ImageView's CENTER_CROP.等比缩放,直到画面宽高都等于或小于view的宽高。
    3. wrapContent:center the video in the view,if the video is less than view perform no scaling,if video is larger than view then scale the video uniformly so that both dimensions (width and height) of the video will be equal to or less than the corresponding dimension of the view. 将视频的内容完整居中显示,如果视频大于view,则按比例缩视频直到完全显示在view中。
    4. fitXY:scale in X and Y independently, so that video matches view exactly.不剪裁,非等比例拉伸画面填满整个View
    5. 16:9:scale x and y with aspect ratio 16:9 until both dimensions (width and height) of the video will be equal to or less than the corresponding dimension of the view.不剪裁,非等比例拉伸画面到16:9,并完全显示在View中。
    6. 4:3:scale x and y with aspect ratio 4:3 until both dimensions (width and height) of the video will be equal to or less than the corresponding dimension of the view.不剪裁,非等比例拉伸画面到4:3,并完全显示在View中。

how to import library

  1. git clone https://github.com/tcking/GiraffePlayer.git
  2. android studio->file->New->Import module->select giraffeplayer

notice:

the player default support 6 CPU architecture:ARMv5, ARMv7, ARMv8,x86 and 86_64,if your project need't support all of the architectures,you can remove the folder in ijkplayer-java/src/main/jniLibs to generate a light APK. read this first:How to use 32-bit native libaries on 64-bit Android device,What you should know about .so files,关于Android的.so文件你所需要知道的

How to use (example code)

case 1: only want to play a video fullscreen

just callGiraffePlayerActivity.configPlayer(activity).play(url),all is done.

case 2: embed a player in a layout

step 1: include video layout in your layout xml file

<include
        layout="@layout/giraffe_player"
        android:layout_width="match_parent"
        android:layout_height="210dp"/>

notice:the giraffe player is match_parent default,if you want to specify height or width you can overwrite layout_width and layout_width in include tag

step 2: new player and call play

GiraffePlayer player = new GiraffePlayer(activity);
player.play(url);

API:

  • play(url) //play video
  • stop() //stop play
  • pause()
  • start()
  • forward() // forward or back,example: forward(0.1f) forward(-0.1f)
  • getCurrentPosition()
  • setScaleType(GiraffePlayer.SCALETYPE_FITPARENT) //set video scale type
  • toggleAspectRatio() // toggle video scale type
  • seekTo(...) //seek to specify position
  • getDuration() //get video duration
  • onInfo(...) //callback when have some information
  • onError(...) //callback when an error occurred
  • onComplete(...) //callback when the play is over
  • onControlPanelVisibilityChange(...) //callback when control panel visibility change

screencap

giraffeplayer's People

Contributors

appnetdeveloper avatar tcking avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

giraffeplayer's Issues

如何获取缓存速度 如53kb/s

如题
private IMediaPlayer.OnInfoListener mInfoListener =
new IMediaPlayer.OnInfoListener() {
public boolean onInfo(IMediaPlayer mp, int arg1, int arg2) {
if (mOnInfoListener != null) {
mOnInfoListener.onInfo(mp, arg1, arg2);
}
switch (arg1) {
case IMediaPlayer.MEDIA_INFO_VIDEO_ROTATION_CHANGED:
mVideoRotationDegree = arg2;
Log.d(TAG, "MEDIA_INFO_VIDEO_ROTATION_CHANGED: " + arg2);
if (mRenderView != null)
mRenderView.setVideoRotation(arg2);
break;
}
return true;
}
};
这块CHANGED 状态都没调用
videoView.setOnInfoListener(new IMediaPlayer.OnInfoListener() {
@OverRide
public boolean onInfo(IMediaPlayer mp, int what, int extra) {
switch (what) {
case IMediaPlayer.MEDIA_INFO_BUFFERING_START:
statusChange(STATUS_LOADING);
break;
case IMediaPlayer.MEDIA_INFO_BUFFERING_END:
statusChange(STATUS_PLAYING);
break;
case IMediaPlayer.MEDIA_INFO_NETWORK_BANDWIDTH:
//显示 下载速度
Log.d("IMediaPlayer downRate",""+extra);
break;
case IMediaPlayer.MEDIA_INFO_VIDEO_RENDERING_START:
statusChange(STATUS_PLAYING);
break;
}
return false;
}
});
显示速度这里就抓不到了。。。。。
onbuffer倒是一直能抓到 那个是百分比。。 如何拿到缓存的下载速度

添加弹幕问题

我用的是b站官方的DanmakuFlameMaster,然后我把danmakuview添加到giraffe_player布局中,但是在播放的时候显示不了弹幕,请问大概应该如何操作呢? :)

全屏播放

如何让播放界面充满整个屏幕,怎样才能将上下的黑框去掉,让视频界面充满整个屏幕?

怎么设置m3u8的清晰度

播放一个m3u8的地址,包含多个清晰度。在VLC播放时会选择最清晰的。但是用GiraffePlayer会默认选择分辨率最低的。请问如何可以设置清晰度呢。

Video not playing

I downloaded source code of GiraffePlayer in github.

https://github.com/tcking/GiraffePlayer

But it is not working on default youtube or any other url's we given. We gave RTMP and HLS video' as well. It's return's IO exception.

Already we used in the existing url's in the sample app as well. Those videos also not working.

If possible, Can you please provide the working link of GiraffePlayer.

Thanks,
Lakshman kumar.M

Mediacontroller edit

how can edit media controller to be able to go on android tv. d-pad?

There are some api media controller?

setScaleType()

Hello

how to use setScaleType() , player.setScaleType() so do not go getting error.
thx

rtmp

Hello again.

I have a small problem .
If using RTMP goes perfectly, but if RTMP is "rtmp://1111.11111.1111.11/live swfUrl=http://web/swf/WebTV.swf playpath=wt_2plus.stream" not working. I can not find the problem.

切换全屏播放,控件显示错位

切换全屏后,IjkVideoView显示一半,控制条不见,三星 s3,魅族mx4 pro都复现这个问题,之后在GifaffePlayer.setFullScreen()方法中,重新设置控件的宽高后解决问题

横竖屏切换问题

我有一个比较复杂的布局,在横竖屏切换的时候播放器无法全屏显示,播放的空间是放在viewpage里面的。不知道怎么解决这个问题。非常感谢。

image

image

"UnsatisfiedLinkError" on ARM 64 BIt devices.

When I try to play any video In one of my device which have Qualcomm MSM8916 Snapdragon 410 64bit processor GiraffePlayer showing the Player not support this device error and in logcat I'm getting this:

java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader [DexPathList[[zip file "/data/app/com.conx.helper-1/base.apk"],nativeLibraryDirectories=[/data/app/com.conx.helper-1/lib/arm64, /vendor/lib64, /system/lib64]]] couldn't find "libijkffmpeg.so" at java.lang.Runtime.loadLibrary(Runtime.java:366) at java.lang.System.loadLibrary(System.java:988) at tv.danmaku.ijk.media.player.IjkMediaPlayer$1.loadLibrary(IjkMediaPlayer.java:144) at tv.danmaku.ijk.media.player.IjkMediaPlayer.loadLibrariesOnce(IjkMediaPlayer.java:155) at tcking.github.com.giraffeplayer.GiraffePlayer.<init>(GiraffePlayer.java:263) at tcking.github.com.giraffeplayer.GiraffePlayerActivity.onCreate(GiraffePlayerActivity.java:30) at android.app.Activity.performCreate(Activity.java:5990) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2311) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2420) at android.app.ActivityThread.access$900(ActivityThread.java:154) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1321) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5292) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699)

But on other device which have Mediatek MT6753 which is also a 64bit processor, videos are playing fine.
Can you please look at this issue as most of the android device nowadays are equipped with a 64 bit processor.
Thanks.

全屏后虚拟按键将布局覆盖

全屏后,屏幕右侧的三个虚拟按键覆盖在播放器上面,导致播放器右侧的控件被覆盖无法使用,请问有什么办法解决吗?

请教

GiraffePlayer是不是同时支持RTMP视频流和网络抓取的各种格式的视频?

有些视频无法播放

07-15 14:05:54.491 24615-24615/tcking.github.com.giraffeplayer D/IJKMEDIA: IjkMediaPlayer_reset
07-15 14:05:54.491 24615-24615/tcking.github.com.giraffeplayer D/IJKMEDIA: IjkMediaPlayer_release
07-15 14:05:54.491 24615-24615/tcking.github.com.giraffeplayer D/IJKMEDIA: ijkmp_set_android_surface(surface=0x0)
07-15 14:05:54.491 24615-24615/tcking.github.com.giraffeplayer D/IJKMEDIA: ffpipeline_set_surface()
07-15 14:05:54.491 24615-24615/tcking.github.com.giraffeplayer D/IJKMEDIA: ijkmp_set_android_surface(surface=0x0)=void
07-15 14:05:54.491 24615-24615/tcking.github.com.giraffeplayer D/IJKMEDIA: ijkmp_shutdown_l()
07-15 14:05:54.491 24615-24615/tcking.github.com.giraffeplayer D/IJKMEDIA: wait for read_tid
07-15 14:05:54.499 24615-24769/tcking.github.com.giraffeplayer D/IJKMEDIA: message_loop exit
07-15 14:05:54.499 24615-24769/tcking.github.com.giraffeplayer I/IJKMEDIA: SDL_JNI_DetachThreadEnv: [24769]
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer D/IJKMEDIA: Statistics: 283 bytes read, 0 seeks
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer D/IJKMEDIA: wait for video_refresh_tid
07-15 14:05:54.499 24615-24770/tcking.github.com.giraffeplayer I/IJKMEDIA: SDL_JNI_DetachThreadEnv: [24770]
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer D/IJKMEDIA: ijkmp_shutdown_l()=void
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer D/IJKMEDIA: IjkMediaPlayer_native_setup
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer I/IJKMEDIA: av_version_info: ff3.0--ijk0.5.0--dev0.4.5--rc11
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer D/IJKMEDIA: ffpipeline_create_from_android()
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer D/IJKMEDIA: ijkmp_set_inject_opaque(0x1d400462)
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer D/IJKMEDIA: ijkmp_set_inject_opaque()=void
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer D/IJKMEDIA: ijkmp_android_set_mediacodec_select_callback()
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer D/IJKMEDIA: ffpipeline_set_mediacodec_select_callback
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer D/IJKMEDIA: ijkmp_android_set_mediacodec_select_callback()=void
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer D/IJKMEDIA: ijkmp_dec_ref(): ref=0
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer D/IJKMEDIA: ijkmp_shutdown_l()
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer D/IJKMEDIA: ijkmp_shutdown_l()=void
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer D/IJKMEDIA: IjkMediaPlayer_release
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer D/IJKMEDIA: ijkmp_set_android_surface(surface=0x0)
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer D/IJKMEDIA: ffpipeline_set_surface()
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer D/IJKMEDIA: ijkmp_set_android_surface(surface=0x0)=void
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer D/IJKMEDIA: ijkmp_shutdown_l()
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer D/IJKMEDIA: ijkmp_shutdown_l()=void
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer D/IJKMEDIA: ijkmp_dec_ref(): ref=0
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer D/IJKMEDIA: ijkmp_shutdown_l()
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer D/IJKMEDIA: ijkmp_shutdown_l()=void
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer D/IJKMEDIA: IjkMediaPlayer_native_setup
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer I/IJKMEDIA: av_version_info: ff3.0--ijk0.5.0--dev0.4.5--rc11
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer D/IJKMEDIA: ffpipeline_create_from_android()
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer D/IJKMEDIA: ijkmp_set_inject_opaque(0x1d500462)
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer D/IJKMEDIA: ijkmp_set_inject_opaque()=void
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer D/IJKMEDIA: ijkmp_android_set_mediacodec_select_callback()
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer D/IJKMEDIA: ffpipeline_set_mediacodec_select_callback
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer D/IJKMEDIA: ijkmp_android_set_mediacodec_select_callback()=void
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer D/IJKMEDIA: IjkMediaPlayer_native_setLogLevel(3)
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer D/IJKMEDIA: moncleanup
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer D/IJKMEDIA: IjkMediaPlayer_setOptionLong
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer D/IJKMEDIA: IjkMediaPlayer_setOptionLong
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer D/IJKMEDIA: IjkMediaPlayer_setOptionLong
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer D/IJKMEDIA: IjkMediaPlayer_setOptionLong
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer D/IJKMEDIA: IjkMediaPlayer_setOptionLong
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer D/IJKMEDIA: IjkMediaPlayer_setOptionLong
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer D/IJKMEDIA: IjkMediaPlayer_setOptionLong
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer D/IJKMEDIA: IjkMediaPlayer_setOptionLong
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer D/IJKMEDIA: IjkMediaPlayer_setOptionLong
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer D/tv.danmaku.ijk.media.player.IjkMediaPlayer: Couldn't open file on client side, trying server side
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer D/IJKMEDIA: IjkMediaPlayer_setDataSourceAndHeaders
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer V/IJKMEDIA: setDataSource: path http://192.168.1.11:8080/live/ppfuns_456.m3u8
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer D/IJKMEDIA: ijkmp_set_data_source(url="http://192.168.1.11:8080/live/ppfuns_456.m3u8")
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer D/IJKMEDIA: ijkmp_set_data_source(url="http://192.168.1.11:8080/live/ppfuns_456.m3u8")=0
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer D/IJKMEDIA: IjkMediaPlayer_setVideoSurface
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer D/IJKMEDIA: ijkmp_set_android_surface(surface=0x3910001d)
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer D/IJKMEDIA: ffpipeline_set_surface()
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer D/IJKMEDIA: ijkmp_set_android_surface(surface=0x3910001d)=void
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer D/IJKMEDIA: IjkMediaPlayer_prepareAsync
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer D/IJKMEDIA: ijkmp_prepare_async()
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer I/IJKMEDIA: ===== versions =====
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer I/IJKMEDIA: FFmpeg : ff3.0--ijk0.5.0--dev0.4.5--rc11
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer I/IJKMEDIA: libavutil : 55.17.103
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer I/IJKMEDIA: libavcodec : 57.24.102
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer I/IJKMEDIA: libavformat : 57.25.100
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer I/IJKMEDIA: libswscale : 4.0.100
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer I/IJKMEDIA: libswresample: 2.0.101
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer I/IJKMEDIA: ===== options =====
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer I/IJKMEDIA: player-opts : mediacodec = 0
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer I/IJKMEDIA: player-opts : opensles = 0
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer I/IJKMEDIA: player-opts : overlay-format = 842225234
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer I/IJKMEDIA: player-opts : framedrop = 1
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer I/IJKMEDIA: player-opts : start-on-prepared = 0
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer I/IJKMEDIA: format-opts : ijkinject-opaque = 491783266
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer I/IJKMEDIA: format-opts : ijkapplication = -1200407488
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer I/IJKMEDIA: format-opts : http-detect-range-support = 0
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer I/IJKMEDIA: format-opts : timeout = 10000000
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer I/IJKMEDIA: format-opts : reconnect = 1
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer I/IJKMEDIA: codec-opts : skip_loop_filter = 48
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer I/IJKMEDIA: ===================
07-15 14:05:54.499 24615-24615/tcking.github.com.giraffeplayer D/IJKMEDIA: ijkmp_prepare_async()=0
07-15 14:05:54.499 24615-27043/tcking.github.com.giraffeplayer I/IJKMEDIA: SDL_RunThread: [27043] ff_read
07-15 14:05:54.499 24615-27043/tcking.github.com.giraffeplayer D/IJKMEDIA: Setting default whitelist 'http,https,tls,rtp,tcp,udp,crypto'
07-15 14:05:54.499 24615-27042/tcking.github.com.giraffeplayer I/IJKMEDIA: SDL_RunThread: [27042] ff_vout
07-15 14:05:54.499 24615-27041/tcking.github.com.giraffeplayer I/IJKMEDIA: SDL_RunThread: [27041] ff_msg_loop
07-15 14:05:54.499 24615-27041/tcking.github.com.giraffeplayer D/IJKMEDIA: message_loop
07-15 14:05:54.499 24615-27041/tcking.github.com.giraffeplayer D/IJKMEDIA: FFP_MSG_FLUSH:
07-15 14:05:54.579 24615-27043/tcking.github.com.giraffeplayer D/IJKMEDIA: Format hls,applehttp probed with size=2048 and score=100
07-15 14:05:54.579 24615-27043/tcking.github.com.giraffeplayer I/IJKMEDIA: HLS request for url 'http://192.168.1.11:8060/diskj/ppfuns_456/146856274.ts', offset 0, playlist 0
07-15 14:05:54.583 24615-27043/tcking.github.com.giraffeplayer D/IJKMEDIA: Format mpegts probed with size=2048 and score=100
07-15 14:05:54.583 24615-27043/tcking.github.com.giraffeplayer D/IJKMEDIA: stream=0 stream_type=2 pid=100 prog_reg_desc=
07-15 14:05:54.583 24615-27043/tcking.github.com.giraffeplayer D/IJKMEDIA: stream=1 stream_type=3 pid=101 prog_reg_desc=
07-15 14:05:54.583 24615-27043/tcking.github.com.giraffeplayer D/IJKMEDIA: Before avformat_find_stream_info() pos: 0 bytes read:10020 seeks:0
07-15 14:05:54.583 24615-27043/tcking.github.com.giraffeplayer I/IJKMEDIA: parser not found for codec mpeg2video, packets or times may be invalid.
07-15 14:05:54.587 24615-27043/tcking.github.com.giraffeplayer I/IJKMEDIA: parser not found for codec mpeg2video, packets or times may be invalid.
07-15 14:05:54.779 24615-27043/tcking.github.com.giraffeplayer I/IJKMEDIA: max_analyze_duration 5000000 reached at 5039967 microseconds st:0
07-15 14:05:54.779 24615-27043/tcking.github.com.giraffeplayer D/IJKMEDIA: rfps: 24.916667 0.015007
07-15 14:05:54.779 24615-27043/tcking.github.com.giraffeplayer D/IJKMEDIA: rfps: 25.000000 0.000000
07-15 14:05:54.779 24615-27043/tcking.github.com.giraffeplayer D/IJKMEDIA: rfps: 25.000000 0.000000
07-15 14:05:54.779 24615-27043/tcking.github.com.giraffeplayer D/IJKMEDIA: rfps: 25.083333 0.014860
07-15 14:05:54.779 24615-27043/tcking.github.com.giraffeplayer D/IJKMEDIA: rfps: 25.083333 0.014860
07-15 14:05:54.779 24615-27043/tcking.github.com.giraffeplayer D/IJKMEDIA: rfps: 50.000000 0.000000
07-15 14:05:54.779 24615-27043/tcking.github.com.giraffeplayer D/IJKMEDIA: rfps: 50.000000 0.000000
07-15 14:05:54.779 24615-27043/tcking.github.com.giraffeplayer D/IJKMEDIA: Setting avg frame rate based on r frame rate
07-15 14:05:54.779 24615-27043/tcking.github.com.giraffeplayer W/IJKMEDIA: Could not find codec parameters for stream 0 (Video: mpeg2video, 1 reference frame ([2][0][0][0] / 0x0002), none): unspecified size
Consider increasing the value for the 'analyzeduration' and 'probesize' options
07-15 14:05:54.779 24615-27043/tcking.github.com.giraffeplayer D/IJKMEDIA: After avformat_find_stream_info() pos: 2329696 bytes read:2333728 seeks:0 frames:339
07-15 14:05:54.779 24615-27043/tcking.github.com.giraffeplayer E/IJKMEDIA: Option http-detect-range-support not found.
07-15 14:05:54.779 24615-27043/tcking.github.com.giraffeplayer D/IJKMEDIA: Before avformat_find_stream_info() pos: 283 bytes read:283 seeks:0
07-15 14:05:54.779 24615-27043/tcking.github.com.giraffeplayer I/IJKMEDIA: max_analyze_duration 5000000 reached at 5039967 microseconds st:0
07-15 14:05:54.779 24615-27043/tcking.github.com.giraffeplayer D/IJKMEDIA: rfps: 24.916667 0.015007
07-15 14:05:54.779 24615-27043/tcking.github.com.giraffeplayer D/IJKMEDIA: rfps: 25.000000 0.000000
07-15 14:05:54.779 24615-27043/tcking.github.com.giraffeplayer D/IJKMEDIA: rfps: 25.000000 0.000000
07-15 14:05:54.779 24615-27043/tcking.github.com.giraffeplayer D/IJKMEDIA: rfps: 25.083333 0.014860
07-15 14:05:54.779 24615-27043/tcking.github.com.giraffeplayer D/IJKMEDIA: rfps: 25.083333 0.014860
07-15 14:05:54.779 24615-27043/tcking.github.com.giraffeplayer D/IJKMEDIA: rfps: 50.000000 0.000000
07-15 14:05:54.779 24615-27043/tcking.github.com.giraffeplayer D/IJKMEDIA: rfps: 50.000000 0.000000
07-15 14:05:54.779 24615-27043/tcking.github.com.giraffeplayer D/IJKMEDIA: Setting avg frame rate based on r frame rate
07-15 14:05:54.779 24615-27043/tcking.github.com.giraffeplayer W/IJKMEDIA: Could not find codec parameters for stream 0 (Video: mpeg2video, 1 reference frame ([2][0][0][0] / 0x0002), none): unspecified size
Consider increasing the value for the 'analyzeduration' and 'probesize' options
07-15 14:05:54.779 24615-27043/tcking.github.com.giraffeplayer D/IJKMEDIA: After avformat_find_stream_info() pos: 283 bytes read:283 seeks:0 frames:339
07-15 14:05:54.779 24615-27043/tcking.github.com.giraffeplayer I/IJKMEDIA: max_frame_duration: 10.000
07-15 14:05:54.779 24615-27043/tcking.github.com.giraffeplayer I/IJKMEDIA: Input #0, hls,applehttp, from 'http://192.168.1.11:8080/live/ppfuns_456.m3u8':
07-15 14:05:54.779 24615-27043/tcking.github.com.giraffeplayer I/IJKMEDIA: Duration:
07-15 14:05:54.779 24615-27043/tcking.github.com.giraffeplayer I/IJKMEDIA: N/A
07-15 14:05:54.779 24615-27043/tcking.github.com.giraffeplayer I/IJKMEDIA: , start:
07-15 14:05:54.779 24615-27043/tcking.github.com.giraffeplayer I/IJKMEDIA: 31481.970811
07-15 14:05:54.779 24615-27043/tcking.github.com.giraffeplayer I/IJKMEDIA: , bitrate:
07-15 14:05:54.779 24615-27043/tcking.github.com.giraffeplayer I/IJKMEDIA: N/A
07-15 14:05:54.779 24615-27043/tcking.github.com.giraffeplayer I/IJKMEDIA: Program 0
07-15 14:05:54.783 24615-27043/tcking.github.com.giraffeplayer I/IJKMEDIA: Metadata:
07-15 14:05:54.783 24615-27043/tcking.github.com.giraffeplayer I/IJKMEDIA: variant_bitrate :
07-15 14:05:54.783 24615-27043/tcking.github.com.giraffeplayer I/IJKMEDIA: 0
07-15 14:05:54.783 24615-27043/tcking.github.com.giraffeplayer I/IJKMEDIA: Stream #0:0
07-15 14:05:54.783 24615-27043/tcking.github.com.giraffeplayer D/IJKMEDIA: , 128, 1/90000
07-15 14:05:54.783 24615-27043/tcking.github.com.giraffeplayer I/IJKMEDIA: : Video: mpeg2video, 1 reference frame ([2][0][0][0] / 0x0002), none
07-15 14:05:54.783 24615-27043/tcking.github.com.giraffeplayer I/IJKMEDIA: ,
07-15 14:05:54.783 24615-27043/tcking.github.com.giraffeplayer I/IJKMEDIA: 25 fps,
07-15 14:05:54.783 24615-27043/tcking.github.com.giraffeplayer I/IJKMEDIA: 25 tbr,
07-15 14:05:54.783 24615-27043/tcking.github.com.giraffeplayer I/IJKMEDIA: 90k tbn,
07-15 14:05:54.783 24615-27043/tcking.github.com.giraffeplayer I/IJKMEDIA: 90k tbc
07-15 14:05:54.783 24615-27043/tcking.github.com.giraffeplayer I/IJKMEDIA: Stream #0:1
07-15 14:05:54.783 24615-27043/tcking.github.com.giraffeplayer D/IJKMEDIA: , 211, 1/90000
07-15 14:05:54.783 24615-27043/tcking.github.com.giraffeplayer I/IJKMEDIA: : Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, s16p, 64 kb/s
07-15 14:05:54.783 24615-27043/tcking.github.com.giraffeplayer W/IJKMEDIA: No codec could be found with id 86016
07-15 14:05:54.783 24615-27043/tcking.github.com.giraffeplayer W/IJKMEDIA: No codec could be found with id 2
07-15 14:05:54.783 24615-27043/tcking.github.com.giraffeplayer A/IJKMEDIA: Failed to open file 'http://192.168.1.11:8080/live/ppfuns_456.m3u8' or configure filtergraph
07-15 14:05:54.783 24615-27041/tcking.github.com.giraffeplayer D/IJKMEDIA: FFP_MSG_ERROR: 0
07-15 14:05:54.783 24615-24615/tcking.github.com.giraffeplayer E/tv.danmaku.ijk.media.player.IjkMediaPlayer: Error (-10000,0)
07-15 14:05:54.791 24615-27043/tcking.github.com.giraffeplayer I/IJKMEDIA: SDL_JNI_DetachThreadEnv: [27043]

Player not support this device

Hi, I'm using version 0.3 and I get this error Player not support this device . My device is a galaxy s5 . Prior 2.0 eh you used without problems.

native crash at /system/lib/libc.so

Hi, Im using this library im my published app, and its great, but after last update i started receiving many complaints from users, player does not work for them,
Below is stack trace from google developer console.

Note: i updated library 3 days ago because of OpenSSL version.
and problem started after the update, but not on all devices, i tried on two handsets and some emulators and didnt face it, but in google play report, hundreds of users have this issue in the last 3 days.

Build fingerprint: 'samsung/j1aceltexx/j1acelte:4.4.4/KTU84P/J110FXXU0APB1:user/release-keys'
Revision: '1'
pid: 2203, tid: 2337, name: ff_read >>> info...* <<<
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr deadbaad
Abort message: 'invalid address or address of corrupt block 0xab7483e8 passed to dlfree'
r0 00000000 r1 4006761e r2 deadbaad r3 4006b19e
r4 ab7483e8 r5 40076180 r6 4dd4c000 r7 ab7483f0
r8 ab66c920 r9 ab3e3c7c sl 000000bc fp ab3e2b60
ip 00000001 sp 60c1b2c0 lr 400387a3 pc 400387a4 cpsr 60000030
d0 2064657373617064 d1 6120726f2073736c
d2 6f20737365726466 d3 707572726f632072
d4 0000000100000001 d5 0000000000000000
d6 0000000000000829 d7 000000000009349c
d8 4347000040e00000 d9 00000000434e0000
d10 0000000000000000 d11 0000000000000000
d12 0000000000000000 d13 0000000000000000
d14 0000000000000000 d15 0000000000000000
d16 3fef3b96a293e600 d17 400fcee5a8a4f980
d18 416312d000000000 d19 be5ae5e49f7a3d66
d20 40032e4a2a741b9f d21 4037f9dcb5112287
d22 3f1675761676a000 d23 3eddf1e79327e23d
d24 3e15043a2804671b d25 fefefefefefefefe
d26 4037f9dcb5112287 d27 400abcdf01234bb8
d28 3ff0000000000000 d29 007f007f007f007f
d30 ffffffffffffffff d31 4000000000000000
scr 28000010

backtrace:
#00 pc 000117a4 /system/lib/libc.so (dlfree+1191)
#1 pc 0000dcfb /system/lib/libc.so (free+10)
#2 pc 001e028d /data/app-lib/info...*-2/libijkffmpeg.so (ffurl_closep+40)

code around pc:
40038784 6a014478 62021e4a f7fdb95a e008fd41
40038794 4a2b482a 447a4478 f0014621 4a13f9af
400387a4 49286014 f8d14479 079a31bc f501d51c
400387b4 e8bd70e0 f02c40f8 4823bb5b f7fd4478
400387c4 4822fd15 e7fa4478 42b7688f ae10f43f
400387d4 481fe611 e7f24478 4478481e 6888e7ef
400387e4 f43f4298 e606aed4 bf00bdf8 deadbaad
400387f4 0003de6e 0003de60 0003ddc4 00032d9c
40038804 0003dd3c 0003dd2a 0003dcb2 0003dc90
40038814 0003dc30 0003dc1e 0003dbb8 0003dba0
40038824 0003db8e 0003db38 0003db10 0003da84
40038834 0003da30 0003da16 0003d9f8 0002ee82
40038844 00032a00 0003d9d4 000329da 000329d2
40038854 000329c2 000329bc b168b538 0300ea41
40038864 04150c1a f401fb00 fbb4b13d 4288f0f0
40038874 f04fbf18 e00034ff 46204604 fb16f7fe

code around lr:
40038780 482e61a3 6a014478 62021e4a f7fdb95a
40038790 e008fd41 4a2b482a 447a4478 f0014621
400387a0 4a13f9af 49286014 f8d14479 079a31bc
400387b0 f501d51c e8bd70e0 f02c40f8 4823bb5b
400387c0 f7fd4478 4822fd15 e7fa4478 42b7688f
400387d0 ae10f43f 481fe611 e7f24478 4478481e
400387e0 6888e7ef f43f4298 e606aed4 bf00bdf8
400387f0 deadbaad 0003de6e 0003de60 0003ddc4
40038800 00032d9c 0003dd3c 0003dd2a 0003dcb2
40038810 0003dc90 0003dc30 0003dc1e 0003dbb8
40038820 0003dba0 0003db8e 0003db38 0003db10
40038830 0003da84 0003da30 0003da16 0003d9f8
40038840 0002ee82 00032a00 0003d9d4 000329da
40038850 000329d2 000329c2 000329bc b168b538
40038860 0300ea41 04150c1a f401fb00 fbb4b13d
40038870 4288f0f0 f04fbf18 e00034ff 46204604

Thanks for the great lib,
and thanks for your support

play music in background

How can I play the music in background with giraffeplayer keeping the muisic even when i change the task or lock the screen; thanks.

循环播放问题

设置了循环播放后,视频在每次播放结束后会卡大概1s种时间才会继续播放

网络良好的情况下播放1分钟和其他的差8秒左右有延迟

你好,网络良好的情况下播放1分钟和其他的差8秒左右。我现在推流的时候放置一个时钟,web端打开一个播放器和模拟器开一个giraffepalyer测试播放器。比对播放界面的时间,发现该demo每个一分钟慢8秒左右。这一块有哪里可以设置下的吗

使用的是RTMP拉流播放的

内存泄漏

发现使用giraffeplayer会有内存泄漏.
不断打开和finish播放页面,内存不断提高无法被回收

m3u suport?

Hello

What can I do to use and M3U?
at the moment M3U crashes.

Please do not forget to add more portions api for resolution and progress would be perfect.

who can help me

java.lang.UnsatisfiedLinkError: dlopen failed: "/data/app/com.philos.videoproject-1/lib/arm64/libijkffmpeg.so" is 32-bit instead of 64-bit
untime.loadLibrary(Runtime.java:383)
at java.lang.System.loadLibrary(System.java:998)
at tv.danmaku.ijk.media.player.IjkMediaPlayer$1.loadLibrary(IjkMediaPlayer.java:137)
at tv.danmaku.ijk.media.player.IjkMediaPlayer.loadLibrariesOnce(IjkMediaPlayer.java:148)
at tcking.github.com.giraffeplayer.GiraffePlayer.(GiraffePlayer.java:264)
at com.philos.videoproject.VideoDetailActivity.onCreate(VideoDetailActivity.java:74)
at android.app.Activity.performCreate(Activity.java:6013)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1108)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2385)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2492)
at android.app.ActivityThread.access$1200(ActivityThread.java:158)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1349)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5564)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:960)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)

"Protocol not found" for YouTube link.

Hello,
FIrst of all thanks for this amazing library.
I'm trying to play YouTube link https://www.youtube.com/watch?v=ITEXG22Y0MY in the player but I'm getting "Protocol not found" error in ijkPlayer.
I know this is openssl issue and I think we need to compile ijkPlayer with openssl.
I was trying to fix it myself but I'm on windows machine and don't have any linux or Mac to compile ijkPlayer.
Can you please fix this issue so GiraffePlayer can play youtube link also.

Thanks

.avi not work

very good this player. but not going to .avi?
and another question
how can I do to make zoom? there do not understand the explanation, can say in English?

在Fragment中无法播放

在ViewPager+Fragment中无法新建播放器,报错!
在Activity中正常,错误指示无法获取videoview的xml中的控件。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.