All Projects → jadennn → Flutter_ijk

jadennn / Flutter_ijk

Licence: mit
flutter封装的ijkplayer,支持rtsp播放

Projects that are alternatives of or similar to Flutter ijk

video-server
Server which connects to set of existing RTSP's and provides HLS/MSE-based streams.
Stars: ✭ 12 (-89.83%)
Mutual labels:  rtsp, video-player
Rtsp.player.android
RTSP player for Android / IP camera viewer
Stars: ✭ 199 (+68.64%)
Mutual labels:  video-player, rtsp
react-native-vlc-media-player
React native media player for video streaming and playing. Supports RTSP, RTMP and other protocols supported by VLC player
Stars: ✭ 221 (+87.29%)
Mutual labels:  rtsp, video-player
X1Player
iOS端封装的视频播放器.支持直播,录播视频的播放,支持常用的播放界面控制,类似于ijkplayer 优点是体积更小,使用快捷
Stars: ✭ 21 (-82.2%)
Mutual labels:  video-player, ijkplayer
KingPlayer
🎬 一个专注于 Android 视频播放器的基础库,无缝切换内核。(IjkPlayer、ExoPlayer、VlcPlayer、MediaPlayer)
Stars: ✭ 35 (-70.34%)
Mutual labels:  video-player, ijkplayer
Giraffeplayer2
out of the box android video player(support lazy load, ListView/RecyclerView and hight performance)
Stars: ✭ 344 (+191.53%)
Mutual labels:  video-player, ijkplayer
Dkvideoplayer
Android Video Player. 安卓视频播放器,封装MediaPlayer、ExoPlayer、IjkPlayer。模仿抖音并实现预加载,列表播放,悬浮播放,广告播放,弹幕
Stars: ✭ 3,796 (+3116.95%)
Mutual labels:  video-player, ijkplayer
Fijkplayer
ijkplayer for flutter. ijkplayer 的 flutter 封装。 Flutter video/audio player. Flutter media player plugin for android/iOS based on ijkplayer. fijkplayer 是基于 ijkplayer 封装的 flutter 媒体播放器,开箱即用,无需编译 ijkplayer
Stars: ✭ 943 (+699.15%)
Mutual labels:  video-player, ijkplayer
Smarterstreaming
业内为数不多致力于极致体验的超强全自研跨平台(windows/linux/android/iOS)流媒体内核,通过模块化自由组合,支持实时RTMP推流、RTSP推流、RTMP播放器、RTSP播放器、录像、多路流媒体转发、音视频导播、动态视频合成、音频混音、直播互动、内置轻量级RTSP服务等,比快更快,业界真正靠谱的超低延迟直播SDK(1秒内,低延迟模式下200~400ms)。
Stars: ✭ 9,835 (+8234.75%)
Mutual labels:  rtsp
Nymphcast
Audio and video casting system with support for custom applications.
Stars: ✭ 2,010 (+1603.39%)
Mutual labels:  video-player
Mat Video
📺 mat-video is an Angular 8/9+ video player using Material!
Stars: ✭ 96 (-18.64%)
Mutual labels:  video-player
React Video Renderer
Build custom video players effortless
Stars: ✭ 100 (-15.25%)
Mutual labels:  video-player
Alpha Movie
Android video player with alpha channel (chroma key) support
Stars: ✭ 105 (-11.02%)
Mutual labels:  video-player
Screen Recorder Ffmpeg Cpp
*Multimedia project* A screen recording application to capture your desktop and store in a video format. Click here to watch the demo
Stars: ✭ 98 (-16.95%)
Mutual labels:  video-player
Phoenix
The one-stop solution for taking pictures / videos, picture / video selection, editing and compression on the Android platform.
Stars: ✭ 1,525 (+1192.37%)
Mutual labels:  video-player
Rtmp Rtsp Stream Client Java
Library to stream in rtmp and rtsp for Android. All code in Java
Stars: ✭ 1,338 (+1033.9%)
Mutual labels:  rtsp
Frigate
NVR with realtime local object detection for IP cameras
Stars: ✭ 1,329 (+1026.27%)
Mutual labels:  rtsp
Player
Clean and elegant Android video player based on ExoPlayer
Stars: ✭ 116 (-1.69%)
Mutual labels:  video-player
Emacs Application Framework
A free/libre and open-source extensible framework that revolutionizes the graphical capabilities of Emacs, the key to ultimately Live in Emacs
Stars: ✭ 1,932 (+1537.29%)
Mutual labels:  video-player
Clapper
A GNOME media player built using GJS with GTK4 toolkit and powered by GStreamer with OpenGL rendering.
Stars: ✭ 103 (-12.71%)
Mutual labels:  video-player

flutter_ijk

由于工作重心变动,已经不做应用了,该项目不再维护

A FLUTTER PLAYER SUPPORT RTSP PROTOCOLS

flutter_ijk 是flutter端的ijkplayer播放器,在IOS和Android native端都使用的是bilibili的ijkplayer,由于GitHub大小限制,本项目的ijkplayer源码放在码云,已经定制过编译脚本和部分的功能代码,可以参考以下步骤来获取: https://gitee.com/jadennn/flutter_ijkplayer_source.git

使用

1 . 在pubspec.yaml增加以下引用

  flutter_ijk:
    git:
      url: https://github.com/jadennn/flutter_ijk

  1. api参考的是video_player,使用方法相同

例子:

class VideoPageState extends State<VideoPage> {
  IjkPlayerController _controller;

  @override
  void initState(){
    super.initState();
      _controller = IjkPlayerController.network("rtsp://admin:[email protected]/h264/ch1/main/av_stream")
        ..initialize().then((_) {
          setState(() {});
          _controller.play();
        });
  }


  @override
  Widget build(BuildContext context) {
    return Material(
      child: _controller == null ? Container(): Center(
        child:
          _controller.value.initialized
              ? AspectRatio(
                  aspectRatio: _controller.value.aspectRatio,
                  child: IjkPlayer(_controller),
                )
              : Container(),
      ),
    );
  }
  
 ///一定要记得释放资源,否则会造成内存泄漏
 void _stop() async{
    if (_controller != null) {
      await _controller.dispose();
      _controller = null;
    }
  }

  @override
  void dispose() {
    super.dispose();
    _stop();
  }
}
  1. 参考文档

感谢以下项目:

ijkplayer
video_player
camera

  1. 如果出现类似下面的错误
 === BUILD TARGET Runner OF PROJECT Runner WITH CONFIGURATION Debug ===
    ld: warning: ignoring file /Users/bkillian/repos/flutter_ijk/ios/IJKMediaFramework.framework/IJKMediaFramework,
    file was built for unsupported file format ( 0x76 0x65 0x72 0x73 0x69 0x6F 0x6E 0x20 0x68 0x74 0x74 0x70 0x73
    0x3A 0x2F 0x2F ) which is not the architecture being linked (x86_64):
    /Users/bkillian/repos/flutter_ijk/ios/IJKMediaFramework.framework/IJKMediaFramework
    Undefined symbols for architecture x86_64:
      "_OBJC_CLASS_$_IJKFFOptions", referenced from:
          objc-class-ref in libflutter_ijk.a(FlutterIjkPlugin.o)
      "_IJKMPMoviePlayerPlaybackDidFinishNotification", referenced from:
          -[FLTVideoPlayer installMovieNotificationObservers] in libflutter_ijk.a(FlutterIjkPlugin.o)
          -[FLTVideoPlayer removeMovieNotificationObservers] in libflutter_ijk.a(FlutterIjkPlugin.o)
      "_IJKMPMoviePlayerPlaybackDidFinishReasonUserInfoKey", referenced from:
          -[FLTVideoPlayer moviePlayBackFinish:] in libflutter_ijk.a(FlutterIjkPlugin.o)
      "_OBJC_CLASS_$_IJKFFMoviePlayerController", referenced from:
          objc-class-ref in libflutter_ijk.a(FlutterIjkPlugin.o)
      "_IJKMPMoviePlayerLoadStateDidChangeNotification", referenced from:
          -[FLTVideoPlayer installMovieNotificationObservers] in libflutter_ijk.a(FlutterIjkPlugin.o)
          -[FLTVideoPlayer removeMovieNotificationObservers] in libflutter_ijk.a(FlutterIjkPlugin.o)
      "_IJKMPMediaPlaybackIsPreparedToPlayDidChangeNotification", referenced from:
          -[FLTVideoPlayer installMovieNotificationObservers] in libflutter_ijk.a(FlutterIjkPlugin.o)
          -[FLTVideoPlayer removeMovieNotificationObservers] in libflutter_ijk.a(FlutterIjkPlugin.o)
      "_IJKMPMoviePlayerPlaybackStateDidChangeNotification", referenced from:
          -[FLTVideoPlayer installMovieNotificationObservers] in libflutter_ijk.a(FlutterIjkPlugin.o)
          -[FLTVideoPlayer removeMovieNotificationObservers] in libflutter_ijk.a(FlutterIjkPlugin.o)
    ld: symbol(s) not found for architecture x86_64
    clang: error: linker command failed with exit code 1 (use -v to see invocation)

这是因为IOS的framework太大,上传git的时候使用了git lfs功能,但是pod仓库在处理git lfs可能会有bug,导致文件缺失,为了解决这个问题,强烈建议将本仓库的代码下载到本地,直接在本地引用到项目中,引用方法: 将本项目复制到你的项目的根目录的plugins下(如果没有,新建一个plugins),在pubspec.yaml中新增

flutter_ijk:
  path:plugins/flutter_ijk

然后就可以正常引用了

  1. 强烈建议自己编译IJKPlayer,IJKPlayer的源代码已经经过了我的定制,只用配置好环境,IOS和Android共用同一个仓库,源代码和编译方法见:https://gitee.com/jadennn/flutter_ijkplayer_source.git
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].