{"id":17254107,"url":"https://github.com/ronf/nv","last_synced_at":"2025-04-14T05:32:10.851Z","repository":{"id":40625441,"uuid":"274556002","full_name":"ronf/nv","owner":"ronf","description":"Network Video early videoconferencing tool","archived":false,"fork":false,"pushed_at":"2020-07-19T03:31:42.000Z","size":8114,"stargazers_count":58,"open_issues_count":0,"forks_count":7,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-27T19:51:59.570Z","etag":null,"topics":["multicast","video-compression","video-streaming"],"latest_commit_sha":null,"homepage":"","language":"C","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/ronf.png","metadata":{"files":{"readme":"README.rst","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}},"created_at":"2020-06-24T02:28:56.000Z","updated_at":"2025-01-21T20:22:38.000Z","dependencies_parsed_at":"2022-09-20T12:25:36.124Z","dependency_job_id":null,"html_url":"https://github.com/ronf/nv","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/ronf%2Fnv","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ronf%2Fnv/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ronf%2Fnv/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ronf%2Fnv/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ronf","download_url":"https://codeload.github.com/ronf/nv/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248826774,"owners_count":21167742,"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":["multicast","video-compression","video-streaming"],"created_at":"2024-10-15T07:07:18.559Z","updated_at":"2025-04-14T05:32:08.838Z","avatar_url":"https://github.com/ronf.png","language":"C","readme":"Network Video tool\n==================\n\nThis is an archive of the source code and binaries of one of the very\nfirst videoconferencing tools available on the Internet. It was primarily\nwritten by Ron Frederick, but also includes contributions from a number\nof others to adapt it to support various video capture devices and\ncompression algorithms. See the individual source files for more detailed\nauthor information.\n\nCopyright and License\n---------------------\n\nThe majority of this code is copyright Xerox Corporation and is released\nuntil the following license:\n\n    Copyright (c) Xerox Corporation 1992. All rights reserved.\n\n    License is granted to copy, to use, and to make and to use derivative\n    works for research and evaluation purposes, provided that Xerox is\n    acknowledged in all documentation pertaining to any such copy or derivative\n    work. Xerox grants no other licenses expressed or implied. The Xerox trade\n    name should not be used in any advertising without its written permission.\n\n    XEROX CORPORATION MAKES NO REPRESENTATIONS CONCERNING EITHER THE\n    MERCHANTABILITY OF THIS SOFTWARE OR THE SUITABILITY OF THIS SOFTWARE\n    FOR ANY PARTICULAR PURPOSE.  The software is provided \"as is\" without\n    express or implied warranty of any kind.\n\n    These notices must be retained in any copies of any part of this software.\n\nSome individual source files are copyright Canon Information Systems, Digital\nEquipment Corporation, Sun Microsystems, the Naval Research Laboratory, and\nthe University of Southern California. See the individual source files for\nfull copyright and license information.\n\nBackground (by Ron Frederick)\n-----------------------------\n\nIn October of 1992, I began to experiment with the Sun VideoPix frame grabber\ncard, with the idea of writing a network videoconferencing tool based upon IP\nmulticast. It would be modeled after \"vat\" -- an audioconferencing tool\ndeveloped at LBL, in that it would use a similar lightweight session protocol\nfor users joining into conferences, where you simply sent data to a particular\nmulticast group and watched that group for any traffic from other group\nmembers.\n\nIn order for the program to really be successful, it needed to compress the\nvideo data before putting it out on the network. A goal I chose was to make\nan acceptable looking stream of data that would fit in about 128kbps, or the\nbandwidth available on a standard home ISDN line. I also hoped to produce\nsomething that was still watchable that fit in half this bandwidth. This\nmeant I needed approximately a factor of 20 in compression for the particular\nimage size and frame rate I was working with. I was able to achieve this\ncompression and filed for a patent on the techniques I used, later granted\nas patent `US5485212A`__: Software video compression for teleconferencing.\n\n__ https://patents.google.com/patent/US5485212A\n\nAt the beginning of November, I released the videoconferencing tool \"nv\" (in\nbinary form) to the Internet community. After some initial testing, it was used\nto videocast parts of the November Internet Engineering Task Force all around\nthe world. Approximately 200 subnets in 15 countries were capable of\nreceiving this broadcast, and approximately 50-100 people received video using\n\"nv\" at some point in the week.\n\nOver the next couple of months, three other workshops and some smaller\nmeetings have used \"nv\" to broadcast to the Internet at large, including the\nAustralian NetWorkshop, the MCNC Packet Audio and Video workshop, and the\nMultiG workshop on distributed virtual realities in Sweden.\n\nA source code release of \"nv\" followed in February of 1993, and in March I\nreleased a new version of the tool where I introduced a new wavelet-based\ncompression scheme. In May of 1993, I added support for color video.\n\nThe network protocol used for \"nv\" and other Internet conferencing tools\nbecame the basis of the Realtime Transport Protocol (RTP), standardized\nthrough the Internet Engineering Task Force (IETF), first published in\nRFCs `1889`__-`1890`__ and later revised in RFCs `3550`__-`3551`__, along\nwith various other RFCs that covered profiles for carrying specific\nformats of audio and video.\n\n__ https://tools.ietf.org/html/rfc1889\n__ https://tools.ietf.org/html/rfc1890\n__ https://tools.ietf.org/html/rfc3550\n__ https://tools.ietf.org/html/rfc3551\n\nOver the next couple of years, work contined on \"nv\", porting the tool\nto a number of additional hardware platforms and video capture devices.\nIt continued to be used as one of the primary tools for broadcasting\nconferences on the Internet at the time, including being selected by NASA\nto broadcast live coverage of shuttle missions online.\n\nIn 1994, I added support in \"nv\" for supporting video compression algorithms \ndeveloped by others, including some hardware compression schemes such as\nthe CellB format supported by the SunVideo video capture card. This also\nallowed \"nv\" to send video in CUSeeMe format, to send video to users\nrunning CUSeeMe on Macs and PCs.\n\nThe last publicly released version of \"nv\" was version 3.3beta, released\nin July of 1994. I was working on a \"4.0alpha\" release that was intended\nto migrate \"nv\" over to version 2 of the RTP protocol, but this work was\nnever completed. A copy of the 4.0 alpha code is included in this archive\nfor completeness, but it is unfinished and there are known issues with it,\nparticularly in the incomplete RTPv2 support.\n\nThe framework provided in \"nv\" later went on to become the basis of video\nconferencing in the \"Jupiter multi-media MOO\" project at Xerox PARC, which\neventually became the basis for a spin-off company \"PlaceWare\", later\nacquired by Microsoft. It was also used as the basis for a number of\nhardware video conferencing projects that allowed sending of full NTSC\nbroadcast quality video over high-bandwidth Ethernet and ATM networks.\nI also later used some of this code as the basis for \"Mediastore\", which\nwas a network-based video recording and playback service.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fronf%2Fnv","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fronf%2Fnv","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fronf%2Fnv/lists"}