https://github.com/introlab/opentera-webrtc

WebRTC JavaScript, C++ and Python libraries and signaling server for the OpenTera project with hardware acceleration with GStreamer

https://github.com/introlab/opentera-webrtc

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.1%) to scientific vocabulary

Keywords

cplusplus cpp gstreamer javascript jetson library opentera python raspberrypi robotics signaling-server webrtc
Last synced: 4 months ago · JSON representation

Repository

WebRTC JavaScript, C++ and Python libraries and signaling server for the OpenTera project with hardware acceleration with GStreamer

Basic Info
  • Host: GitHub
  • Owner: introlab
  • License: apache-2.0
  • Language: C++
  • Default Branch: main
  • Homepage:
  • Size: 7.52 MB
Statistics
  • Stars: 37
  • Watchers: 3
  • Forks: 4
  • Open Issues: 9
  • Releases: 22
Topics
cplusplus cpp gstreamer javascript jetson library opentera python raspberrypi robotics signaling-server webrtc
Created over 5 years ago · Last pushed 11 months ago
Metadata Files
Readme Contributing License Code of conduct

README.md

OpenTera - WebRTC

Actions Status

WebRTC is a standard for real-time audio/video/data communication and is mostly used in web browsers. For the OpenTera micro-service architecture, we wanted to use Google's native WebRTC implementation for robots so we would have more control on the streams and develop a framework that is optimized for robot teleoperation. We also wanted to use hardware acceleration if possible on embedded platforms.

This project provides:

License

By default, libwebrtc is built with non-free codecs. See webrtc-native-build to build without them.

API Documentation

API Documentation is available here.

How to Contribute

Please read the Code of Conduct and CONTRIBUTING files.

Dependencies

Build Instructions

Examples

C++

Python

Javascript

Hardware Acceleration with GStreamer

Hardware acceleration depends on the platform you are using to build opentera-webrtc. The following table summarizes supported hardware and GStreamer plugins:

| Platform | VP8 | VP9 | H.264 | |-----------------------------------|-----------------------------|---------------|------------------------------| | Jetson TX2/Nano | nvv4l2vp8enc, nvv4l2decoder | nvv4l2decoder | nvv4l2h264enc, nvv4l2decoder | | Jetson Xavier NX | X | nvv4l2decoder | nvv4l2h264enc, nvv4l2decoder | | Jetson AGX Xavier | X | nvv4l2decoder | nvv4l2h264enc, nvv4l2decoder | | Jetson Orin / Orin Nano / Orin NX | X | nvv4l2decoder | nvv4l2h264enc, nvv4l2decoder | | Raspberry Pi 4 | X | X | v4l2h264enc, v4l2h264dec | | VA-API | vaapivp8enc, vaapivp8dec | vaapivp9dec | vaapih264enc, vaapih264dec | | Apple Media | X | X | vtenc_h264, vtdec |

Note that VP9 encoding is under development, see issue 117.

ROS

  • The C++ library and Python bindings are used in our openterawebrtcros ROS package. RGB images published in ROS topics can be easily used for streaming in a RTCPeerConnection using our signaling server. Hardware acceleration and codec selection can be used if available.

Frontend

Authors

  • Marc-Antoine Maheux (@mamaheux)
  • Dominic Létourneau (@doumdi)
  • Philippe Warren (@philippewarren)
  • François Michaud (@michaudf)

Contributors

  • Cédric Godin (@godced)
  • Ian-Mathieu Joly (@joli-1801)

Sponsor

IntRoLab

IntRoLab - Intelligent / Interactive / Integrated / Interdisciplinary Robot Lab

Owner

  • Name: IntRoLab
  • Login: introlab
  • Kind: organization
  • Location: Sherbrooke, Québec, Canada

IntRoLab - Intelligent / Interactive / Integrated / Interdisciplinary Robot Lab @ Université de Sherbrooke

GitHub Events

Total
  • Release event: 1
  • Watch event: 5
  • Delete event: 1
  • Push event: 19
  • Pull request review event: 1
  • Pull request event: 3
  • Fork event: 3
  • Create event: 3
Last Year
  • Release event: 1
  • Watch event: 5
  • Delete event: 1
  • Push event: 19
  • Pull request review event: 1
  • Pull request event: 3
  • Fork event: 3
  • Create event: 3

Issues and Pull Requests

Last synced: 10 months ago

All Time
  • Total issues: 34
  • Total pull requests: 131
  • Average time to close issues: 4 months
  • Average time to close pull requests: about 1 month
  • Total issue authors: 6
  • Total pull request authors: 5
  • Average comments per issue: 0.38
  • Average comments per pull request: 0.39
  • Merged pull requests: 87
  • Bot issues: 0
  • Bot pull requests: 33
Past Year
  • Issues: 1
  • Pull requests: 10
  • Average time to close issues: N/A
  • Average time to close pull requests: 2 days
  • Issue authors: 1
  • Pull request authors: 4
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.0
  • Merged pull requests: 8
  • Bot issues: 0
  • Bot pull requests: 1
Top Authors
Issue Authors
  • philippewarren (7)
  • doumdi (5)
  • mamaheux (4)
  • G-Lauz (2)
  • BioR0bot (1)
  • ihabZhaika (1)
Pull Request Authors
  • mamaheux (41)
  • dependabot[bot] (24)
  • philippewarren (15)
  • doumdi (11)
  • joli-1801 (3)
Top Labels
Issue Labels
enhancement (3) bug (2) wontfix (1)
Pull Request Labels
dependencies (24) javascript (15) python (9)