{"id":40333206,"url":"https://github.com/debugly/fsplayer","last_synced_at":"2026-04-04T07:02:31.953Z","repository":{"id":284276211,"uuid":"954408252","full_name":"debugly/fsplayer","owner":"debugly","description":"🔥iOS/macOS/tvOS video player based on ijkplayer, using FFmpeg 7, support hw accel、4K、HDR、ass effect subtitle、bluray、smb...","archived":false,"fork":false,"pushed_at":"2026-03-31T01:20:23.000Z","size":15445,"stargazers_count":183,"open_issues_count":17,"forks_count":34,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-03-31T04:47:38.152Z","etag":null,"topics":["ffmpeg7","ijkplayer","ios","macos","tvos"],"latest_commit_sha":null,"homepage":"https://fsplayer.debugly.cn","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/debugly.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"COPYING.LGPLv3","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-03-25T03:20:03.000Z","updated_at":"2026-03-29T11:36:49.000Z","dependencies_parsed_at":"2025-04-15T09:30:19.694Z","dependency_job_id":"b8cee46a-c464-42db-a2ec-fc3d572a6259","html_url":"https://github.com/debugly/fsplayer","commit_stats":null,"previous_names":["debugly/fsplayer"],"tags_count":72,"template":false,"template_full_name":null,"purl":"pkg:github/debugly/fsplayer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/debugly%2Ffsplayer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/debugly%2Ffsplayer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/debugly%2Ffsplayer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/debugly%2Ffsplayer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/debugly","download_url":"https://codeload.github.com/debugly/fsplayer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/debugly%2Ffsplayer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31390695,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T04:26:24.776Z","status":"ssl_error","status_checked_at":"2026-04-04T04:23:34.147Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ffmpeg7","ijkplayer","ios","macos","tvos"],"created_at":"2026-01-20T08:12:20.199Z","updated_at":"2026-04-04T07:02:31.938Z","avatar_url":"https://github.com/debugly.png","language":"C","readme":"\u003cdiv align=\"center\"\u003e\n\u003c!--   \u003cimg alt=\"fsplayer\" src=\"./primary-wide.png\"\u003e --\u003e\n  \u003ch1\u003eFSPlayer\u003c/h1\u003e\n  \u003cimg src=\"https://github.com/debugly/fsplayer/actions/workflows/apple.yml/badge.svg\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Platform-%20iOS%20macOS%20tvOS%20-blue.svg\"\u003e\n\u003c/div\u003e\n\n[![Stargazers repo roster for @debugly/fsplayer](https://reporoster.com/stars/debugly/fsplayer)](https://github.com/debugly/fsplayer/stargazers)\n\n## 功能\u0026特点\n\n- [x] FFmpeg 7.1.1\n- [x] 支持透传 FFmpeg option 参数\n- [x] 支持获取下载速度\n- [x] 支持获取预加载进度\n- [x] 获取基本信息（音频：采样率、声道数、时长等，视频：宽、高、fps、时长等）\n- [x] 支持获取首帧解码时间、渲染时间\n- [x] 支持 file、http、https、udp、rtmp、rtp、rtsp、bluray、smb、ftp 等协议\n- [x] 支持设置 HTTP 超时、错误重试、UA、Cookie、Referer、Origin 等，如果是 m3u8 支持透传给 ts 请求\n- [x] 支持 HLS 直播或者点播\n- [x] 支持 AV1、uavs3 解码器\n- [x] 支持播放音频时显示内置封面\n- [x] 支持播放图片\n- [x] 支持精准 seek\n- [x] 支持软硬解设置\n- [x] 支持多实例播放\n- [x] 支持播放完成（EOF）后，重新seek继续播放\n- [x] 优化了 file 协议 seek 后起播慢问题\n- [x] 音视频加密播放\n- [x] 强大的字幕功能\n  - 文本字幕(srt/vtt/ass)\n  - 图形字幕(dvbsub/dvdsub/pgssub/idx+sub)\n  - 同时支持内嵌和外挂\n  - 支持设置字幕延迟\n  - 支持 ASS 字幕的特效\n  - 支持设置文本字幕的样式\n- [x] 支持循环播放\n- [x] 支持切换音轨\n- [x] 支持设置音轨延迟\n- [x] 支持随时截屏（jpg、png、tiff）\n- [x] 支持设置视频显示比例\n- [x] 支持设置旋转角度设置（0,90,180,270）\n- [x] 支持设置视频镜像模式\n- [x] 支持设置视频背景颜色（默认黑色）\n- [x] 支持设置画面饱和度、亮度、对比度\n- [x] 支持将画面同时渲染到多个 View 上\n- [x] 支持实时获取音频 PCM 数据\n- [x] 支持自定义渲染 View\n- [x] 支持 4K/HDR/HDR10/HDR10+/Dolby Vision，不支持 Dolby Vision P5\n- [x] 智能识别 iso (blury、dvd、普通视频)\n- [x] mpegts 视频快进不花屏\n- [x] 支持网络协议播放 iso 镜像和 BDMV 文件夹\n- [x] 双声道音频可强制指定声道播放\n- [x] 获取当前显示的视频帧\n- [x] 录制视频\n- [x] 支持播放webp动画\n- [x] 支持自定义音频渲染器\n- [x] 缓冲进度通知\n- [x] 支持异步销毁，即使不调用 shutdown 也能正常销毁\n- [x] 支持设定播放器不管理 AudioSession 状态\n- [x] 优化播放器 View 旋转时的动画效果\n\n最近支持\n\n调研中\n\n- [ ] AV1 可以硬解，但个别视频会崩溃\n- [ ] 直播回放\n- [ ] 音视频可变速变调\n- [ ] 支持透明视频\n- [ ] 画中画\n- [ ] Dolby Vision P5\n\n如果之前使用的 ijkplayer，可以轻松迁移到 fsplayer，请参考 [迁移指南](./doc/migration.md) 。\n\n## 构建环境\n\n- macOS Sequoia(15.5)\n- Xcode Version 16.4 (16F6)\n\n| 最低支持平台  | 架构                                     |\n| ----------- | --------------------------------------- |\n| iOS 11.0    | arm64、arm64_simulator、x86_64_simulator |\n| macOS 10.11 | arm64、x86_64                            |\n| tvOS 12.0   | arm64、arm64_simulator、x86_64_simulator |\n\n## 更新记录\n\n- [CHANGELOG.md](CHANGELOG.md)\n\n## 集成\n\nFSPlayer 完全免费，使用 [LGPLv3](./COPYING.LGPLv3) 许可协议发布，感觉不错可以 [请作者喝咖啡](./Donate.md) 。\n\n- 通过 Swift Package Manger 集成: [FSPlayer-SPM.git](https://github.com/debugly/FSPlayer-SPM.git)\n\n- 通过 Cocoapods 集成:\n\n```\npod \"FSPlayer\", :podspec =\u003e 'https://github.com/debugly/fsplayer/releases/download/1.0.5/FSPlayer.spec.json'\n```\n\n### 调用\n\n```\nFSOptions *options = [FSOptions optionsByDefault];\n//创建播放器\nself.player = [[FSPlayer alloc] initWithContent:url options:options];\n//创建播放器渲染view\nNSView \u003cFSVideoRenderingProtocol\u003e*playerView = self.player.view;\nplayerView.frame = self.playerContainer.bounds;\nplayerView.autoresizingMask = NSViewWidthSizable | NSViewHeightSizable;\n[self.playerContainer addSubview:playerView positioned:NSWindowBelow relativeTo:self.playerCtrlPanel];\n//加载完毕自动播放\nself.player.shouldAutoplay = YES;\n//异步加载\n[self.player prepareToPlay];\n```\n\n更详细的使用[说明文档](https://fsplayer.debugly.cn/manuals/getting-started.html)\n\n## 编译步骤\n\n源码完全开放，可以自己编译 Framework：\n\n```bash\n# Build iOS Framework\n./FFToolChain/main.sh install -p ios -l 'ass ffmpeg'\n./examples/ios/build-framework.sh\n# Build macOS Framework\n./FFToolChain/main.sh install -p macos -l 'ass ffmpeg'\n./examples/macos/build-framework.sh\n# Build tvOS Framework\n./FFToolChain/main.sh install -p tvos -l 'ass ffmpeg'\n./examples/tvos/build-framework.sh\n```\n\n## FSPlayer-Pro\n\n在 FSPlayer 的基础上提供了更加强劲的功能，以动态库的形式提供。\n\n- HLS 点播边播边缓存，已经缓存的 seek 回去播放不再耗流量，起播速度更快\n- 可无缝切换音轨，避免了普通方式切换后需要seek到当前位置，播放器重新加载短暂没有声音并且黑屏的问题\n- 播放网络 iso 镜像和 BDMV 文件夹时，首帧起播速度提升x倍，Seek 后首帧起播速度提升x倍\n\n邮件联系：[debugly@icloud.com](mailto:debugly@icloud.com)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdebugly%2Ffsplayer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdebugly%2Ffsplayer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdebugly%2Ffsplayer/lists"}