jadennn / Flutter_ijk
Licence: mit
flutter封装的ijkplayer,支持rtsp播放
Stars: ✭ 118
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
- 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();
}
}
- 参考文档
感谢以下项目:
- 如果出现类似下面的错误
=== 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
然后就可以正常引用了
- 强烈建议自己编译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].