{"id":13579837,"url":"https://github.com/mpromonet/live555helper","last_synced_at":"2025-04-05T15:06:41.135Z","repository":{"id":40614181,"uuid":"78295825","full_name":"mpromonet/live555helper","owner":"mpromonet","description":"Helper for live555","archived":false,"fork":false,"pushed_at":"2024-12-29T17:46:01.000Z","size":121,"stargazers_count":93,"open_issues_count":0,"forks_count":36,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-03-29T14:08:33.278Z","etag":null,"topics":["c-plus-plus","live555","rtsp"],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mpromonet.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2017-01-07T18:22:09.000Z","updated_at":"2025-03-24T21:16:02.000Z","dependencies_parsed_at":"2023-12-20T20:27:38.228Z","dependency_job_id":"cbf4aa3d-cc69-4da7-b6c3-3bf183ff32e3","html_url":"https://github.com/mpromonet/live555helper","commit_stats":{"total_commits":94,"total_committers":6,"mean_commits":"15.666666666666666","dds":0.0957446808510638,"last_synced_commit":"63e2d96bb26f60340b03d8daeca8d1cd98cf751f"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mpromonet%2Flive555helper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mpromonet%2Flive555helper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mpromonet%2Flive555helper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mpromonet%2Flive555helper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mpromonet","download_url":"https://codeload.github.com/mpromonet/live555helper/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247353745,"owners_count":20925329,"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":["c-plus-plus","live555","rtsp"],"created_at":"2024-08-01T15:01:43.797Z","updated_at":"2025-04-05T15:06:41.111Z","avatar_url":"https://github.com/mpromonet.png","language":"C++","funding_links":[],"categories":["\u003ca name=\"cpp\"\u003e\u003c/a\u003eC++"],"sub_categories":[],"readme":"# live555helper\nHelper for live555\n\nThe aim of this project is to simplify usage of [live555 Streaming Media](http://www.live555.com/liveMedia/), that is powerful but need to implement lots of logic.\n\nA simple RTSP client could be implement with :\n\n\t#include \u003ciostream\u003e\n\t#include \"environment.h\"\n\t#include \"rtspconnectionclient.h\"\n\n\n\tint main(int argc, char *argv[])\n\t{\n\t\tclass MyCallback : public RTSPConnection::Callback\n\t\t{\n\t\t\tpublic:\n\t\t\t\tvirtual bool    onData(const char* id, unsigned char* buffer, ssize_t size, struct timeval presentationTime) {\n\t\t\t\t\tstd::cout \u003c\u003c id \u003c\u003c \" \" \u003c\u003c size \u003c\u003c \" ts:\" \u003c\u003c presentationTime.tv_sec \u003c\u003c \".\" \u003c\u003c presentationTime.tv_usec \u003c\u003c std::endl;\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t};\n\n\t\tEnvironment env;\n\t\tMyCallback cb;\n\t\tRTSPConnection rtspClient(env, \u0026cb, \"rtsp://pi2.local:8554/unicast\");\n\t\trtspClient.start();\n\t\tenv.mainloop();\n\t\treturn 0;\n\t}\n\t\nA simple SDP client could be implement with :\n\n\t#include \u003ciostream\u003e\n\t#include \"environment.h\"\n\t#include \"sdpclient.h\"\n\n\n\tint main(int argc, char *argv[])\n\t{\n\t\tclass MyCallback : public SDPClient::Callback\n\t\t{\n\t\t\tpublic:\n\t\t\t\tvirtual bool    onData(const char* id, unsigned char* buffer, ssize_t size, struct timeval presentationTime) {\n\t\t\t\t\tstd::cout \u003c\u003c id \u003c\u003c \" \" \u003c\u003c size \u003c\u003c \" ts:\" \u003c\u003c presentationTime.tv_sec \u003c\u003c \".\" \u003c\u003c presentationTime.tv_usec \u003c\u003c std::endl;\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t};\n\n\t\tstd::string ip(\"127.0.0.1\");\n\t\tstd::string port(\"6901\");\n\t\tstd::string rtppayloadtype(\"96\");\n\t\tstd::string codec(\"H264\");\n\n\t\tstd::ostringstream os;\n\t\tos \u003c\u003c \"m=video \" \u003c\u003c port \u003c\u003c \" RTP/AVP \" \u003c\u003c rtppayloadtype \u003c\u003c \"\\r\\n\"\n\t\t   \u003c\u003c \"c=IN IP4 \" \u003c\u003c ip \u003c\u003c\"\\r\\n\"\n\t\t   \u003c\u003c \"a=rtpmap:\" \u003c\u003c rtppayloadtype \u003c\u003c \" \" \u003c\u003c codec \u003c\u003c \"\\r\\n\";\n\t\t\t\n\t\tEnvironment env;\n\t\tMyCallback cb;\n\t\tSDPClient rtpClient(env, \u0026cb, os.str().c_str());\n\t\tenv.mainloop();\n\t\treturn 0;\n\t}\n\nA simple MKV client could be implement with :\n\n\t#include \u003ciostream\u003e\n\t#include \"environment.h\"\n\t#include \"mkvclient.h\"\n\n\tint main(int argc, char *argv[])\n\t{\n\t\tclass MyCallback : public MKVClient::Callback\n\t\t{\n\t\t\tpublic:\n\t\t\t\tvirtual bool    onData(const char* id, unsigned char* buffer, ssize_t size, struct timeval presentationTime) {\n\t\t\t\t\tstd::cout \u003c\u003c id \u003c\u003c \" \" \u003c\u003c size \u003c\u003c \" ts:\" \u003c\u003c presentationTime.tv_sec \u003c\u003c \".\" \u003c\u003c presentationTime.tv_usec \u003c\u003c std::endl;\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t};\n\n\t\tEnvironment env;\n\t\tMyCallback cb;\n\t\tMKVClient mkvClient(env, \u0026cb, \"file://2008-Big_Buck_Bunny-496k.mkv\");\n\t\tenv.mainloop();\n\t\treturn 0;\n\t}\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmpromonet%2Flive555helper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmpromonet%2Flive555helper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmpromonet%2Flive555helper/lists"}