{"id":18254050,"url":"https://github.com/pedrosg94/rootencoder-ios","last_synced_at":"2025-08-22T22:48:21.668Z","repository":{"id":50380144,"uuid":"291129646","full_name":"pedroSG94/RootEncoder-iOS","owner":"pedroSG94","description":"RootEncoder iOS (rtmp-rtsp-stream-client-swift) is a stream encoder to push video/audio to media servers using protocols RTMP, RTSP and SRT with all code written in Swift","archived":false,"fork":false,"pushed_at":"2024-10-05T23:02:13.000Z","size":2857,"stargazers_count":119,"open_issues_count":3,"forks_count":34,"subscribers_count":9,"default_branch":"master","last_synced_at":"2024-10-14T20:03:26.290Z","etag":null,"topics":["amf","encoder","filters","ios","mpeg2-ts","rtmp","rtp","rtsp","srt","stream","stream-library","streaming","swift","swiftui"],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pedroSG94.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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}},"created_at":"2020-08-28T19:27:46.000Z","updated_at":"2024-10-07T08:34:40.000Z","dependencies_parsed_at":"2022-08-04T17:30:32.401Z","dependency_job_id":"74be5fce-9f8b-4e91-85e4-fa3ccf4926e1","html_url":"https://github.com/pedroSG94/RootEncoder-iOS","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pedroSG94%2FRootEncoder-iOS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pedroSG94%2FRootEncoder-iOS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pedroSG94%2FRootEncoder-iOS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pedroSG94%2FRootEncoder-iOS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pedroSG94","download_url":"https://codeload.github.com/pedroSG94/RootEncoder-iOS/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247299831,"owners_count":20916190,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["amf","encoder","filters","ios","mpeg2-ts","rtmp","rtp","rtsp","srt","stream","stream-library","streaming","swift","swiftui"],"created_at":"2024-11-05T10:10:06.600Z","updated_at":"2025-04-05T07:03:51.535Z","avatar_url":"https://github.com/pedroSG94.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RootEncoder iOS\n\nRootEncoder iOS (rtmp-rtsp-stream-client-swift) is a stream encoder to push video/audio to media servers using protocols RTMP, RTSP and SRT with all code written in Swift\n\n\n## Status\n\nThe project is not stable yet.\nFor now, the min iOS version required is iOS14 but I have plan to downgrade it a bit. \nSwift 5 is required because RTMP and RTSP protocol use async await in sockets.\n\n## Features\n\n- [X] H264 and AAC support\n- [X] Switch camera while streaming\n- [X] RTSP TCP/UDP\n- [X] RTSPS\n- [X] RTSP auth (basic and digest)\n- [X] RTMP auth (adobe and llnw)\n- [X] RTMP\n- [X] RTMPS\n- [X] Real time filters (with Metal). For now, support only filters with CIImage but I have plan to add filters using vertex and fragment\n- [X] Reconnection (RTMP and RTSP)\n- [X] Stream from device display (DisplayRtsp/DisplayRtmp)\n- [X] H265 support (RTSP and RTMP)\n- [X] Get upload bandwidth used (RTMP and RTSP)\n- [X] Local video record\n\n## Compile\n\n### SPM\n\nIn Xcode go to:\nProject \u003e Package dependencies \u003e + \u003e add this to the search bar:\n```\nhttps://github.com/pedroSG94/RootEncoder-iOS\n```\n\n## Use examples:\n\n### RTMP\n\nhttps://github.com/pedroSG94/RootEncoder-iOS/blob/master/app/RtmpSwiftUIView.swift\n\n### RTSP\n\nhttps://github.com/pedroSG94/RootEncoder-iOS/blob/master/app/RtspSwiftUIView.swift\n\n## Incoming features\n\nI will develop this features but not in this order.\n\n- [ ] Stream from file (FromFileRtsp/FromFileRtmp)\n- [ ] Upload to cocoapod\n- [ ] Minors features: video bitrate on fly, adaptative bitrate.\n- [ ] SRT (maybe the last one)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpedrosg94%2Frootencoder-ios","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpedrosg94%2Frootencoder-ios","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpedrosg94%2Frootencoder-ios/lists"}