media server based on c++11, support webrtc/rtmp/httpflv/websocket flv

cpp_media_server

A media server is writen by C++11, and the network io is writen by Boost.Asio.

It support rtmp/httpflv/websocket(flv)/webrtc.

preinstall

How to install boost.asio

Download boost

We suggenst boost v1.76: boost v1.76

How to build

Build boost asio in Mac/linux

./bootstrap.sh
./b2 -j 4 --with-system --with-thread --with-date_time --with-regex --with-serialization stage
./b2 install

What does It support

network protocol feature:

webrtc

  • roommanager
  • websocket
  • join
  • publish/unpublish
  • subscribe/unsubscribe

The webrtc client sdk demo: webrtc sdk demo

rtmp

  • rtmp publish
  • rtmp play

httpflv

  • httpflv play
  • flv(h264/vp8/vp9, aac/opus)

websocket

  • flv in websocket push

webcodec encode media in flv(h264+opus) over websocket, we suggest webclient demo: webcodecpush

Similar Resources

TIP (translate it, please) is a plugin for VLC media player that helps you to study languages by watching videos.

vlc-tip-plugin TIP (translate it, please) is a plugin for VLC media player that helps you to study languages by watching videos. Features The plugin a

May 2, 2022

A clone of Media Player Classic reimplemented in Qt.

A clone of Media Player Classic reimplemented in Qt.

Media Player Classic Qute Theater A clone of Media Player Classic reimplemented in Qt. Media Player Classic Home Cinema (mpc-hc) is considered by many

Jun 18, 2022

Official repository of the ISO Base Media File Format Reference Software

ISO Base Media File Format (ISOBMFF) This repository is the official repository for the ISO Base Media File Format Reference Software. The ISO base me

May 26, 2022

Free and open-source media player written in C++

Liquid Media Player Free and open-source media player written in C++. Currently in development. Build Guide Windows Install the MSYS2 Building Platfor

Apr 1, 2022

Video game library manager with support for wide range of 3rd party libraries and game emulation support, providing one unified interface for your games.

Video game library manager with support for wide range of 3rd party libraries and game emulation support, providing one unified interface for your games.

An open source video game library manager and launcher with support for 3rd party libraries like Steam, GOG, Origin, Battle.net and Uplay. Includes game emulation support, providing one unified interface for your games.

Jun 24, 2022

theora-player is an embeddable theora video player C++ library based on the libtheora sample. It has no audio support at this moment.

theora-player Description theora-player is an embeddable theora video player C++ library based on the libtheora sample. It has no audio support at thi

Oct 14, 2021

PowerVS is a standalone broadcast video server based on ffmpeg

PowerVS is a standalone broadcast video server based on ffmpeg

PowerVS PowerVS is a standalone broadcast video server based on ffmpeg 📝 Table of Contents About Getting Started Running the tests Usage Development

Mar 17, 2022

An Open Source PSVita/TV MP4 player with 1080p playback and subtitle support

An Open Source PSVita/TV MP4 player with 1080p playback and subtitle support

Vita-Media-Player An Open Source PSVita/TV MP4 player with 1080p playback and subtitle support 1080i output supported on the PSTV natively and on the

May 28, 2022

NymphCast is a audio and video casting system with support for custom applications.

NymphCast is a audio and video casting system with support for custom applications.

NymphCast is a software solution which turns your choice of Linux-capable hardware into an audio and video source for a television or powered speakers. It enables the streaming of audio and video over the network from a wide range of client devices, as well as the streaming of internet media to a NymphCast server, controlled by a client device.

Jun 20, 2022
Comments
  • webrtc-client-sdk 推流错误(media_server Segmentation fault,导致 client websocket close)

    webrtc-client-sdk 推流错误(media_server Segmentation fault,导致 client websocket close)

    chrome浏览器输入 http://localhost/9091 ,进入 demo 界面后点击 join 选择要共享的屏幕。websocket 连接打开。

    然后点击 publish 推流。

    chrome 开发者工具 console 输出如下结果。

    image

    cpp_media_server Segmentation fault (core dumped),导致 client websocket 断开。

    cpp_media_server 日志没有输出错误信息[E]。

    image

  • 支持 HTML5 flv 播放

    支持 HTML5 flv 播放

    如果使用独立的流媒体服务器获取FLV流,必须在流媒体服务器上正确配置 Access-Control-Allow-Origin 头,以便跨源获取资源。 因此,在src/net/http/http_common.hpp 的 67 行 : ss << proto_ << "/" << version_ << " " << status_code_ << " " << status_ << "\r\n"; 后添加 ss << "Access-Control-Allow-Origin: *\r\n";,允许所有资源都可以访问此流媒体服务器资源。 重新编译项目,执行./objs/cpp_media_server -c ./conf/rtmp_httpflv.cfg 测试 HTTP-FLV。 bilibili flv.js 在线测试

  • when I complie with c++ ,is error

    when I complie with c++ ,is error

    cpp_media_server/net/webrtc/support_rtc_info.cpp:68:1: sorry, unimplemented: non-trivial designated initializers not supported }; ^ cpp_media_server/net/webrtc/support_rtc_info.cpp:68:1: sorry, unimplemented: non-trivial designated initializers not supported cpp_media_server/net/webrtc/support_rtc_info.cpp:68:1: sorry, unimplemented: non-trivial designated initializers not supported cpp_media_server/net/webrtc/support_rtc_info.cpp:68:1: sorry, unimplemented: non-trivial designated initializers not supported [ 70%] Building CXX object CMakeFiles/cpp_media_server.dir/net/httpflv/httpflv_server.cpp.o [ 71%] Building CXX object CMakeFiles/cpp_media_server.dir/net/httpflv/httpflv_writer.cpp.o

  • cpp_media_server编译报错

    cpp_media_server编译报错

    编译环境: centos7 x86_64
    gcc版本从4.8.5升级到8.3.1 boost版本:使用yum安装,安装版本为1.5.3(boost-1.53.0-28.el7.x86_64.rpm),执行命令如下: yum install boost yum install boost-devel yum install boost-doc

    cpp_media_server版本V.10 相应操作步骤及编译信息如下: image image image image

OvenMediaEngine (OME) is a Streaming Server for Sub-Second Latency. It supports WebRTC, RTMP, SRT, MPEG-2 TS, RTSP as input, WebRTC, LL-DASH, MPEG-DASH, HLS as output.
OvenMediaEngine (OME) is a Streaming Server for Sub-Second Latency. It supports WebRTC, RTMP, SRT, MPEG-2 TS, RTSP as input, WebRTC, LL-DASH, MPEG-DASH, HLS as output.

OvenMediaEngine (OME) is a Streaming Server for Sub-Second Latency. It supports WebRTC, RTMP, SRT, MPEG-2 TS, RTSP as input, WebRTC, LL-DASH, MPEG-DASH, HLS as output.

Jun 21, 2022
yangwebrtc is a self-developed rtc architecture supporting Webrtc/Srt/Rtmp, including a variety of video and audio codecs and processing, etc.
yangwebrtc is a self-developed rtc architecture supporting Webrtc/Srt/Rtmp, including a variety of video and audio codecs and processing, etc.

YangWebrtc Overview yangwebrtc是一个自主研发的支持Webrtc/Srt/Rtmp的rtc架构,包含多种视音频编解码和处理等。 支持视频会议、高清录播直播、直播互动等多种视音频应用。 可用于远程教育、远程医疗、指挥调度、安防监控、影视录播、协同办公、直播互动等多种行业应用

Jun 15, 2022
Kodi is an award-winning free and open source software media player and entertainment hub for digital media
Kodi is an award-winning free and open source software media player and entertainment hub for digital media

website • docs • community • add-ons Welcome to Kodi Home Theater Software! Kodi is an award-winning free and open source software media player and en

Jun 24, 2022
🤟Super fast H.264/H.265 FLV player
🤟Super fast H.264/H.265 FLV player

??Super fast H.264/H.265 FLV player

Jun 21, 2022
Pear - WebRTC Toolkit for IoT/Embedded Device

Pear is a WebRTC SDK written in C. The SDK aims to integrate IoT/Embedded device with WebRTC applications.

Jun 16, 2022
webrtc c++ library for mediasoup with full sfu c++ demo
webrtc c++ library for mediasoup with full sfu c++ demo

项目说明: 本项目是基于mediasoup v3 版本 webrtc m84版本 的sfu的js版本修改成的c++版本,支持和js版本一样的完整demo功能,但是本项目是直接把worker进程代码集成 到了demo可以直接代码级别的调用,支持VC2019,xcode,CLion的开发环境,可以直接断

Jun 19, 2022
Yangwebrtc - Webrtc Libary for PC, non-google lib
Yangwebrtc - Webrtc Libary for PC, non-google lib

MetaRTC(yangwebrtc) Overview MetaRTC(yangwebrtc)是一个自主研发的支持Webrtc/Srt/Rtmp的rtc架构,包含多种视音频编解码和处理等。 yangwebrtc为PC版本 metaRTC为嵌入式版本 https://github.com/metar

Jun 15, 2022
Smartstreaming is a high-performance and scalable streaming media server.

1. introduction Smartstreaming is a high-performance and scalable streaming media server. 2. design | io | Coroutine | | transport | tcp/udp/srt/quic

Jan 7, 2022
Jellyfin Desktop Client based on Plex Media Player
Jellyfin Desktop Client based on Plex Media Player

Desktop client using jellyfin-web with embedded MPV player. Supports Windows, Mac OS, and Linux. Media plays within the same window using the jellyfin-web interface unlike Jellyfin Desktop. Supports audio passthrough. Based on Plex Media Player.

Jun 19, 2022
🎥 mpv is a free (as in freedom) media player for the command line.
🎥 mpv is a free (as in freedom) media player for the command line.

mpv is a free (as in freedom) media player for the command line. It supports a wide variety of media file formats, audio and video codecs, and subtitle types.

Jun 21, 2022