https://github.com/debugly/fsplayer
🔥iOS/macOS/tvOS video player based on ijkplayer, using FFmpeg 7, support hw accel、4K、HDR、ass effect subtitle、bluray、smb...
https://github.com/debugly/fsplayer
ffmpeg7 ijkplayer ios macos tvos
Last synced: 2 days ago
JSON representation
🔥iOS/macOS/tvOS video player based on ijkplayer, using FFmpeg 7, support hw accel、4K、HDR、ass effect subtitle、bluray、smb...
- Host: GitHub
- URL: https://github.com/debugly/fsplayer
- Owner: debugly
- License: lgpl-3.0
- Created: 2025-03-25T03:20:03.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2026-01-19T02:38:32.000Z (6 days ago)
- Last Synced: 2026-01-19T11:56:23.787Z (6 days ago)
- Topics: ffmpeg7, ijkplayer, ios, macos, tvos
- Language: C
- Homepage: https://fsplayer.debugly.cn
- Size: 14.4 MB
- Stars: 163
- Watchers: 3
- Forks: 31
- Open Issues: 16
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: COPYING.LGPLv3
Awesome Lists containing this project
README
FSPlayer
[](https://github.com/debugly/fsplayer/stargazers)
## 功能&特点
- [x] FFmpeg 7.1.1
- [x] 支持透传 FFmpeg option 参数
- [x] 支持获取下载速度
- [x] 支持获取预加载进度
- [x] 获取基本信息(音频:采样率、声道数、时长等,视频:宽、高、fps、时长等)
- [x] 支持获取首帧解码时间、渲染时间
- [x] 支持 file、http、https、udp、rtmp、rtp、rtsp、bluray、smb 等协议
- [x] 支持设置 HTTP 超时、错误重试、UA、Cookie、如果是 m3u8 支持透传给 ts 请求
- [x] 支持 HLS 直播或者点播
- [x] 支持 AV1、uavs3 解码器
- [x] 支持单独播放音频显示内置封面
- [x] 支持单独播放图片
- [x] 支持精准 seek
- [x] 支持软硬解设置
- [x] 支持多实例播放
- [x] 支持播放完成(EOF)后,重新seek继续播放
- [x] 优化了 file 协议 seek 后起播慢问题
- [x] 音视频加密播放
- [x] 强大的字幕功能
- 文本字幕(srt/vtt/ass)
- 图形字幕(dvbsub/dvdsub/pgssub/idx+sub)
- 同时支持内嵌和外挂
- 支持设置字幕延迟
- 支持 ASS 字幕的特效
- 支持设置文本字幕的样式
- [x] 支持循环播放
- [x] 支持切换音轨
- [x] 支持设置音轨延迟
- [x] 支持随时截屏(jpg、png、tiff)
- [x] 支持设置视频显示比例
- [x] 支持设置旋转角度设置(0,90,180,270)
- [x] 支持设置视频镜像模式
- [x] 支持设置视频背景颜色(默认黑色)
- [x] 支持设置画面饱和度、亮度、对比度
- [x] 支持同时渲染到多个 View上
- [x] 支持实时获取音频 PCM 数据
- [x] 支持自定义渲染 View
- [x] 支持 4K/HDR/HDR10/HDR10+/Dolby Vision,不支持 Dolby Vision P5
- [x] 智能识别 iso (blury、dvd、普通视频)
- [x] mpegts 视频快进不花屏
- [x] 支持网络协议播放 iso 镜像和 BDMV 文件夹
- [x] 双声道音频可强制指定声道播放
- [x] 获取当前显示的视频帧
- [x] 录制视频
- [x] 支持播放webp动画
- [x] 支持自定义音频渲染器
最近支持
- [x] 缓冲进度通知
- [x] 支持异步销毁,即使不调用 shutdown 也能正常销毁
- [x] 支持设定播放器不管理 AudioSession 状态
- [x] 优化播放器 View 动画效果
调研中
- [ ] AV1 硬解
- [ ] 直播回放
- [ ] 音视频可变速变调
- [ ] 支持透明视频
- [ ] 画中画
- [ ] Dolby Vision P5
如果之前使用的 ijkplayer,可以轻松迁移到 fsplayer,请参考 [迁移指南](./doc/migration.md) 。
## 构建环境
- macOS Sequoia(15.5)
- Xcode Version 16.4 (16F6)
| 最低支持平台 | 架构 |
| ----------- | --------------------------------------- |
| iOS 11.0 | arm64、arm64_simulator、x86_64_simulator |
| macOS 10.11 | arm64、x86_64 |
| tvOS 12.0 | arm64、arm64_simulator、x86_64_simulator |
## 更新记录
- [CHANGELOG.md](CHANGELOG.md)
## 集成
FSPlayer 完全免费,使用 [LGPLv3](./COPYING.LGPLv3) 许可协议发布,感觉不错可以 [请作者喝咖啡](./Donate.md) 。
- 通过 Swift Package Manger 集成: [FSPlayer-SPM.git](https://github.com/debugly/FSPlayer-SPM.git)
- 通过 Cocoapods 集成:
```
pod "FSPlayer", :podspec => 'https://github.com/debugly/fsplayer/releases/download/1.0.3/FSPlayer.spec.json'
```
### 调用
```
FSOptions *options = [FSOptions optionsByDefault];
//创建播放器
self.player = [[FSPlayer alloc] initWithContentURL:url withOptions:options];
//创建播放器渲染view
NSView *playerView = self.player.view;
playerView.frame = self.playerContainer.bounds;
playerView.autoresizingMask = NSViewWidthSizable | NSViewHeightSizable;
[self.playerContainer addSubview:playerView positioned:NSWindowBelow relativeTo:self.playerCtrlPanel];
//加载完毕自动播放
self.player.shouldAutoplay = YES;
//异步加载
[self.player prepareToPlay];
```
更详细的使用[说明文档](https://fsplayer.debugly.cn/manuals/getting-started.html)
## 编译步骤
源码完全开放,可以自己编译 Framework:
```bash
# Build iOS Framework
./FFToolChain/main.sh install -p ios -l 'ass ffmpeg'
./examples/ios/build-framework.sh
# Build macOS Framework
./FFToolChain/main.sh install -p macos -l 'ass ffmpeg'
./examples/macos/build-framework.sh
# Build tvOS Framework
./FFToolChain/main.sh install -p tvos -l 'ass ffmpeg'
./examples/tvos/build-framework.sh
```
## FSPlayer-Pro
在 FSPlayer 的基础上提供了更加强劲的功能,以动态库的形式提供。
- HLS 点播边播边缓存,已经缓存的 seek 回去播放不再耗流量,起播速度更快
- 可无缝切换音轨,避免了普通方式切换后需要seek到当前位置,播放器重新加载短暂没有声音并且黑屏的问题
- 播放网络 iso 镜像和 BDMV 文件夹时,首帧起播速度提升x倍,Seek 后首帧起播速度提升x倍
邮件联系:[debugly@icloud.com](mailto:debugly@icloud.com)