All Projects → ethand91 → Mediasoup3 Record Demo

ethand91 / Mediasoup3 Record Demo

Simple Record Demo using Mediasoup 3 and GStreamer

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Mediasoup3 Record Demo

Dockerfiles
Optimized media, analytics and graphics software stack images. Use the dockerfile(s) in your project or as a recipe book for bare metal installation.
Stars: ✭ 98 (+16.67%)
Mutual labels:  gstreamer, ffmpeg, webrtc
Notes
let me know if my notes help you :D (it's a mess, I know)
Stars: ✭ 119 (+41.67%)
Mutual labels:  gstreamer, webrtc
Rtmp Ts Dash Webrtc
👾 音视频解决方案 Audio and video solutions(AV1)
Stars: ✭ 129 (+53.57%)
Mutual labels:  ffmpeg, webrtc
ros-gst-bridge
a bidirectional ros to gstreamer bridge and utilities for dynamic pipelines
Stars: ✭ 46 (-45.24%)
Mutual labels:  gstreamer, webrtc
docker-nvidia-glx-desktop
MATE Desktop container designed for Kubernetes supporting OpenGL GLX and Vulkan for NVIDIA GPUs with WebRTC and HTML5, providing an open source remote cloud graphics or game streaming platform. Spawns its own fully isolated X Server instead of using the host X server, therefore not requiring /tmp/.X11-unix host sockets or host configuration.
Stars: ✭ 47 (-44.05%)
Mutual labels:  gstreamer, webrtc
Analysisavp
音视频学习,相关文件格式/协议分析。h264 nalu aac adts flv
Stars: ✭ 38 (-54.76%)
Mutual labels:  ffmpeg, webrtc
Cloud Morph
Decentralize, Self-host Cloud Gaming/Application
Stars: ✭ 207 (+146.43%)
Mutual labels:  ffmpeg, webrtc
webrtcsink
All-batteries included GStreamer WebRTC producer
Stars: ✭ 18 (-78.57%)
Mutual labels:  gstreamer, webrtc
Awesome Live Stream
Webrtc && Nginx && DASH && Quic 学习资料收集,持续更新中
Stars: ✭ 290 (+245.24%)
Mutual labels:  ffmpeg, webrtc
Janus Webrtc Gateway Docker
Perfect Docker Image for Media Streaming Expert User ( https://github.com/meetecho/janus-gateway )
Stars: ✭ 582 (+592.86%)
Mutual labels:  ffmpeg, webrtc
Rtp Streamer
rtp record and rtp streamer
Stars: ✭ 60 (-28.57%)
Mutual labels:  ffmpeg, webrtc
Pitivi
MIRROR of https://gitlab.gnome.org/GNOME/pitivi for your convenience
Stars: ✭ 79 (-5.95%)
Mutual labels:  gstreamer
Unitedplayer
A video and audio recorder and player based on OpenGL es,FFmpeg,OpenSl es,MediaCodec on Android platform.It gives video interesting effect through fragment shader.一个支持录制和播放音频视频的安卓短视频应用,并可以选择多种仿抖音滤镜特效展示。
Stars: ✭ 75 (-10.71%)
Mutual labels:  ffmpeg
Pyav
Pythonic bindings for FFmpeg's libraries.
Stars: ✭ 1,196 (+1323.81%)
Mutual labels:  ffmpeg
Webrtc Demo
webrtc 演示示例
Stars: ✭ 74 (-11.9%)
Mutual labels:  webrtc
Twilio Video App React
A collaboration application built with the twilio-video.js SDK and React.js
Stars: ✭ 1,233 (+1367.86%)
Mutual labels:  webrtc
Phormatics
Using A.I. and computer vision to build a virtual personal fitness trainer. (Most Startup-Viable Hack - HackNYU2018)
Stars: ✭ 79 (-5.95%)
Mutual labels:  webrtc
Unityrtc
基于webrtc的unity多人游戏实时语音(A Unity Demo for Impl Real-time Game Voice Among Mutiplayers Based On WEBRTC)
Stars: ✭ 74 (-11.9%)
Mutual labels:  webrtc
Qtfm
Qt File Manager
Stars: ✭ 73 (-13.1%)
Mutual labels:  ffmpeg
Bittorrent Tracker
🌊 Simple, robust, BitTorrent tracker (client & server) implementation
Stars: ✭ 1,184 (+1309.52%)
Mutual labels:  webrtc

Simple video/audio Record Demo Using mediasoup 3 and GStreamer/FFmpeg


Introduction

Simple video/audio record application using Mediasoup and GStreamer

Recorded files are stored in the server's files directory or the directory set by the user (via process.env.RECORD_FILE_LOCATION_PATH)

File names are simply the current timestamp

This sample currently only uses VP8/opus and the output file is .webm


How to use

Install GStreamer

# For Ubuntu
sudo apt-get install libgstreamer1.0-0 gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-doc gstreamer1.0-tools gstreamer1.0-x gstreamer1.0-alsa gstreamer1.0-gl gstreamer1.0-gtk3 gstreamer1.0-qt5 gstreamer1.0-pulseaudio

Install Server Modules

cd server && npm i

Install App Modules

cd app && npm i

Configure the server

Change the announced IP in src/config.js to your local ip (config -> webRtcTransport -> listenIps)

Start the server

# The server uses FFmpeg as default
cd server && node src/server

# To use GStreamer
PROCESS_NAME="GStreamer" node src/server

Build and start the application

cd app
npm run build

# Copy the files from dist to a webserver etc.
# OR start the dev server
npm run dev

Access the sample page

https://localhost:8080

By default recorded videos will be available in server/files directory.


Server ENV Options

Argument Type Explanation
RECORD_FILE_LOCATION_PATH string Path to store the recorded files (user running node MUST have read/write permission)
GSTREAMER_DEBUG_LEVEL number GStreamer Debug Level (GStreamer only)
PROCESS_NAME string The command to use (GStreamer/FFmpeg) (case sensitive) default is FFmpeg
SERVER_PORT number Server port number (default is 3000). Note if you change this you will also need to edit the WebSocket connection url.

TODO

  • video/audio only recording
  • FFmpeg Sample (Done)
  • Multiple formats (mp4/avi etc)
  • Option to play the recorded file using RTP Producer after recording
  • Docker support
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].