{"id":18331527,"url":"https://github.com/angrycoding/rtsp2mpeg1","last_synced_at":"2025-04-09T18:14:37.734Z","repository":{"id":148799884,"uuid":"292687157","full_name":"angrycoding/rtsp2mpeg1","owner":"angrycoding","description":"rtsp2mpeg1","archived":false,"fork":false,"pushed_at":"2023-08-29T20:37:50.000Z","size":47,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-09T18:14:34.265Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/angrycoding.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":"2020-09-03T21:50:14.000Z","updated_at":"2023-01-13T07:34:06.000Z","dependencies_parsed_at":"2024-11-05T19:55:09.992Z","dependency_job_id":null,"html_url":"https://github.com/angrycoding/rtsp2mpeg1","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angrycoding%2Frtsp2mpeg1","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angrycoding%2Frtsp2mpeg1/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angrycoding%2Frtsp2mpeg1/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angrycoding%2Frtsp2mpeg1/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/angrycoding","download_url":"https://codeload.github.com/angrycoding/rtsp2mpeg1/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248085325,"owners_count":21045139,"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":[],"created_at":"2024-11-05T19:32:56.475Z","updated_at":"2025-04-09T18:14:37.710Z","avatar_url":"https://github.com/angrycoding.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# How to display video from your IP - camera in web - browser\n\nSo you've got ip - camera and now you want to show video from it on the web page right? But this doesn't really work because you don't know how.\nWell any ip - camera has [RTSP](https://en.wikipedia.org/wiki/Real_Time_Streaming_Protocol) url (url that is bound to it's internal server that can stream video out of it). First of all you'll need to get\nRTSP url somehow.\n\nYou can do that using [ONVIF](https://en.wikipedia.org/wiki/ONVIF) [device manager](https://learncctv.com/onvif-device-manager/) or just look at your ip camera manual (hopefully you'll find it there),\nyou're looking to something like this:\n\n```\nrtsp://192.168.1.105:554/user=admin_password=x761219pQsVnr2VS_channel=1_stream=0.sdp\n```\n\nOnce you get there, the rest is easy, just open your favourite text editor and type something like: \n\n```\n\u003cvideo src=\"rtsp://192.168.1.105:554/user=admin_password=x761219pQsVnr2VS_channel=1_stream=0.sdp\"\u003e\u003c/video\u003e\n```\n\nHaha I'm kidding, it's not going to work because you can't just display RTSP stream from the camera in HTML5 video element, it's just not going to work.\nThe reason why it's not working is because HTML5 video can only display something MPEG based, MP4, MOV, MKV - all this is just a containers for H264 codec format.\n\nSo our next step will be to convert RTSP in something that browser can understand and render in HTML5 video tag. To keep it really simple we will use [MPEG1](https://en.wikipedia.org/wiki/MPEG-1)\nthis time. So mpeg1 is just very ancient and simpliest variation of video compression algorithm that is in the mean time understandable by the web - browser and can be relatively simple produced \nout of RTSP stream that's coming out of the camera.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fangrycoding%2Frtsp2mpeg1","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fangrycoding%2Frtsp2mpeg1","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fangrycoding%2Frtsp2mpeg1/lists"}