mirror of
https://github.com/Monibuca/plugin-webrtc.git
synced 2025-10-05 14:56:56 +08:00
去掉turn
This commit is contained in:
36
main.go
36
main.go
@@ -3,10 +3,7 @@ package webrtc
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"github.com/pion/turn/v2"
|
||||
"io/ioutil"
|
||||
"log"
|
||||
"net"
|
||||
"net/http"
|
||||
"sync"
|
||||
"time"
|
||||
@@ -22,7 +19,6 @@ import (
|
||||
var config struct {
|
||||
ICEServers []string
|
||||
PublicIP string
|
||||
ListenAddr string
|
||||
}
|
||||
|
||||
// }{[]string{
|
||||
@@ -88,6 +84,7 @@ type WebRTC struct {
|
||||
RemoteAddr string
|
||||
videoTrack *Track
|
||||
m MediaEngine
|
||||
s SettingEngine
|
||||
api *API
|
||||
payloader avformat.H264
|
||||
// codecs.H264Packet
|
||||
@@ -163,7 +160,8 @@ func (rtc *WebRTC) Publish(streamPath string) bool {
|
||||
DefaultPayloadTypeH264,
|
||||
new(avformat.H264)))
|
||||
//m.RegisterCodec(NewRTPPCMUCodec(DefaultPayloadTypePCMU, 8000))
|
||||
rtc.api = NewAPI(WithMediaEngine(rtc.m))
|
||||
rtc.s.SetNAT1To1IPs([]string{config.PublicIP}, ICECandidateTypeHost)
|
||||
rtc.api = NewAPI(WithMediaEngine(rtc.m), WithSettingEngine(rtc.s))
|
||||
peerConnection, err := rtc.api.NewPeerConnection(Configuration{
|
||||
ICEServers: []ICEServer{
|
||||
{
|
||||
@@ -245,31 +243,6 @@ func (rtc *WebRTC) GetAnswer() ([]byte, error) {
|
||||
}
|
||||
|
||||
func run() {
|
||||
udpListener, err := net.ListenPacket("udp4", config.ListenAddr)
|
||||
if err != nil {
|
||||
log.Panicf("Failed to create TURN server listener: %s", err)
|
||||
}
|
||||
if _, err := turn.NewServer(turn.ServerConfig{
|
||||
Realm: "monibuca",
|
||||
// Set AuthHandler callback
|
||||
// This is called everytime a user tries to authenticate with the TURN server
|
||||
// Return the key for that user, or false when no user is found
|
||||
AuthHandler: func(username string, realm string, srcAddr net.Addr) ([]byte, bool) {
|
||||
return []byte("monibuca"), true
|
||||
},
|
||||
// PacketConnConfigs is a list of UDP Listeners and the configuration around them
|
||||
PacketConnConfigs: []turn.PacketConnConfig{
|
||||
{
|
||||
PacketConn: udpListener,
|
||||
RelayAddressGenerator: &turn.RelayAddressGeneratorStatic{
|
||||
RelayAddress: net.ParseIP(config.PublicIP), // Claim that we are listening on IP passed by user (This should be your Public IP)
|
||||
Address: "0.0.0.0", // But actually be listening on every interface
|
||||
},
|
||||
},
|
||||
},
|
||||
}); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
http.HandleFunc("/webrtc/play", func(w http.ResponseWriter, r *http.Request) {
|
||||
w.Header().Set("Access-Control-Allow-Credentials", "true")
|
||||
origin := r.Header["Origin"]
|
||||
@@ -310,7 +283,8 @@ func run() {
|
||||
DefaultPayloadTypeH264,
|
||||
&rtc.payloader))
|
||||
//m.RegisterCodec(NewRTPPCMUCodec(DefaultPayloadTypePCMU, 8000))
|
||||
rtc.api = NewAPI(WithMediaEngine(rtc.m))
|
||||
rtc.s.SetNAT1To1IPs([]string{config.PublicIP}, ICECandidateTypeHost)
|
||||
rtc.api = NewAPI(WithMediaEngine(rtc.m), WithSettingEngine(rtc.s))
|
||||
peerConnection, err := rtc.api.NewPeerConnection(Configuration{
|
||||
// ICEServers: []ICEServer{
|
||||
// {
|
||||
|
14
ui/dist/plugin-webrtc.common.js
vendored
14
ui/dist/plugin-webrtc.common.js
vendored
@@ -221,12 +221,12 @@ var staticRenderFns = []
|
||||
|
||||
// CONCATENATED MODULE: ./src/App.vue?vue&type=template&id=674ea55a&scoped=true&
|
||||
|
||||
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"0b526416-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Player.vue?vue&type=template&id=7e3b881f&
|
||||
var Playervue_type_template_id_7e3b881f_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Modal',_vm._g(_vm._b({attrs:{"draggable":"","title":_vm.streamPath},on:{"on-ok":_vm.onClosePreview,"on-cancel":_vm.onClosePreview}},'Modal',_vm.$attrs,false),_vm.$listeners),[_c('video',{ref:"webrtc",attrs:{"width":"488","height":"275","autoplay":"","muted":"","controls":""},domProps:{"srcObject":_vm.stream,"muted":true}}),_c('div',{attrs:{"slot":"footer"},slot:"footer"},[(_vm.remoteSDP)?_c('mu-badge',[_c('a',{attrs:{"slot":"content","href":_vm.remoteSDPURL,"download":"remoteSDP.txt"},slot:"content"},[_vm._v("remoteSDP")])]):_vm._e(),(_vm.localSDP)?_c('mu-badge',[_c('a',{attrs:{"slot":"content","href":_vm.localSDPURL,"download":"localSDP.txt"},slot:"content"},[_vm._v("localSDP")])]):_vm._e()],1)])}
|
||||
var Playervue_type_template_id_7e3b881f_staticRenderFns = []
|
||||
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"0b526416-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Player.vue?vue&type=template&id=30c7d0b2&
|
||||
var Playervue_type_template_id_30c7d0b2_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Modal',_vm._g(_vm._b({attrs:{"draggable":"","title":_vm.streamPath},on:{"on-ok":_vm.onClosePreview,"on-cancel":_vm.onClosePreview}},'Modal',_vm.$attrs,false),_vm.$listeners),[_c('video',{ref:"webrtc",attrs:{"width":"488","height":"275","autoplay":"","muted":"","controls":""},domProps:{"srcObject":_vm.stream,"muted":true}}),_c('div',{attrs:{"slot":"footer"},slot:"footer"},[(_vm.remoteSDP)?_c('mu-badge',[_c('a',{attrs:{"slot":"content","href":_vm.remoteSDPURL,"download":"remoteSDP.txt"},slot:"content"},[_vm._v("remoteSDP")])]):_vm._e(),(_vm.localSDP)?_c('mu-badge',[_c('a',{attrs:{"slot":"content","href":_vm.localSDPURL,"download":"localSDP.txt"},slot:"content"},[_vm._v("localSDP")])]):_vm._e()],1)])}
|
||||
var Playervue_type_template_id_30c7d0b2_staticRenderFns = []
|
||||
|
||||
|
||||
// CONCATENATED MODULE: ./src/components/Player.vue?vue&type=template&id=7e3b881f&
|
||||
// CONCATENATED MODULE: ./src/components/Player.vue?vue&type=template&id=30c7d0b2&
|
||||
|
||||
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Player.vue?vue&type=script&lang=js&
|
||||
//
|
||||
@@ -268,7 +268,7 @@ props:{
|
||||
},
|
||||
methods: {
|
||||
async play(streamPath) {
|
||||
pc = new RTCPeerConnection({iceServers:[{urls:"turn:"+this.PublicIP,username:"monibuca",credential:"test"}]});
|
||||
pc = new RTCPeerConnection();
|
||||
pc.addTransceiver('video',{
|
||||
direction:'recvonly'
|
||||
})
|
||||
@@ -427,8 +427,8 @@ function normalizeComponent (
|
||||
|
||||
var component = normalizeComponent(
|
||||
components_Playervue_type_script_lang_js_,
|
||||
Playervue_type_template_id_7e3b881f_render,
|
||||
Playervue_type_template_id_7e3b881f_staticRenderFns,
|
||||
Playervue_type_template_id_30c7d0b2_render,
|
||||
Playervue_type_template_id_30c7d0b2_staticRenderFns,
|
||||
false,
|
||||
null,
|
||||
null,
|
||||
|
2
ui/dist/plugin-webrtc.common.js.map
vendored
2
ui/dist/plugin-webrtc.common.js.map
vendored
File diff suppressed because one or more lines are too long
14
ui/dist/plugin-webrtc.umd.js
vendored
14
ui/dist/plugin-webrtc.umd.js
vendored
@@ -230,12 +230,12 @@ var staticRenderFns = []
|
||||
|
||||
// CONCATENATED MODULE: ./src/App.vue?vue&type=template&id=674ea55a&scoped=true&
|
||||
|
||||
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"0b526416-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Player.vue?vue&type=template&id=7e3b881f&
|
||||
var Playervue_type_template_id_7e3b881f_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Modal',_vm._g(_vm._b({attrs:{"draggable":"","title":_vm.streamPath},on:{"on-ok":_vm.onClosePreview,"on-cancel":_vm.onClosePreview}},'Modal',_vm.$attrs,false),_vm.$listeners),[_c('video',{ref:"webrtc",attrs:{"width":"488","height":"275","autoplay":"","muted":"","controls":""},domProps:{"srcObject":_vm.stream,"muted":true}}),_c('div',{attrs:{"slot":"footer"},slot:"footer"},[(_vm.remoteSDP)?_c('mu-badge',[_c('a',{attrs:{"slot":"content","href":_vm.remoteSDPURL,"download":"remoteSDP.txt"},slot:"content"},[_vm._v("remoteSDP")])]):_vm._e(),(_vm.localSDP)?_c('mu-badge',[_c('a',{attrs:{"slot":"content","href":_vm.localSDPURL,"download":"localSDP.txt"},slot:"content"},[_vm._v("localSDP")])]):_vm._e()],1)])}
|
||||
var Playervue_type_template_id_7e3b881f_staticRenderFns = []
|
||||
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"0b526416-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Player.vue?vue&type=template&id=30c7d0b2&
|
||||
var Playervue_type_template_id_30c7d0b2_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Modal',_vm._g(_vm._b({attrs:{"draggable":"","title":_vm.streamPath},on:{"on-ok":_vm.onClosePreview,"on-cancel":_vm.onClosePreview}},'Modal',_vm.$attrs,false),_vm.$listeners),[_c('video',{ref:"webrtc",attrs:{"width":"488","height":"275","autoplay":"","muted":"","controls":""},domProps:{"srcObject":_vm.stream,"muted":true}}),_c('div',{attrs:{"slot":"footer"},slot:"footer"},[(_vm.remoteSDP)?_c('mu-badge',[_c('a',{attrs:{"slot":"content","href":_vm.remoteSDPURL,"download":"remoteSDP.txt"},slot:"content"},[_vm._v("remoteSDP")])]):_vm._e(),(_vm.localSDP)?_c('mu-badge',[_c('a',{attrs:{"slot":"content","href":_vm.localSDPURL,"download":"localSDP.txt"},slot:"content"},[_vm._v("localSDP")])]):_vm._e()],1)])}
|
||||
var Playervue_type_template_id_30c7d0b2_staticRenderFns = []
|
||||
|
||||
|
||||
// CONCATENATED MODULE: ./src/components/Player.vue?vue&type=template&id=7e3b881f&
|
||||
// CONCATENATED MODULE: ./src/components/Player.vue?vue&type=template&id=30c7d0b2&
|
||||
|
||||
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Player.vue?vue&type=script&lang=js&
|
||||
//
|
||||
@@ -277,7 +277,7 @@ props:{
|
||||
},
|
||||
methods: {
|
||||
async play(streamPath) {
|
||||
pc = new RTCPeerConnection({iceServers:[{urls:"turn:"+this.PublicIP,username:"monibuca",credential:"test"}]});
|
||||
pc = new RTCPeerConnection();
|
||||
pc.addTransceiver('video',{
|
||||
direction:'recvonly'
|
||||
})
|
||||
@@ -436,8 +436,8 @@ function normalizeComponent (
|
||||
|
||||
var component = normalizeComponent(
|
||||
components_Playervue_type_script_lang_js_,
|
||||
Playervue_type_template_id_7e3b881f_render,
|
||||
Playervue_type_template_id_7e3b881f_staticRenderFns,
|
||||
Playervue_type_template_id_30c7d0b2_render,
|
||||
Playervue_type_template_id_30c7d0b2_staticRenderFns,
|
||||
false,
|
||||
null,
|
||||
null,
|
||||
|
2
ui/dist/plugin-webrtc.umd.js.map
vendored
2
ui/dist/plugin-webrtc.umd.js.map
vendored
File diff suppressed because one or more lines are too long
2
ui/dist/plugin-webrtc.umd.min.js
vendored
2
ui/dist/plugin-webrtc.umd.min.js
vendored
File diff suppressed because one or more lines are too long
2
ui/dist/plugin-webrtc.umd.min.js.map
vendored
2
ui/dist/plugin-webrtc.umd.min.js.map
vendored
File diff suppressed because one or more lines are too long
@@ -37,7 +37,7 @@ props:{
|
||||
},
|
||||
methods: {
|
||||
async play(streamPath) {
|
||||
pc = new RTCPeerConnection({iceServers:[{urls:"turn:"+this.PublicIP,username:"monibuca",credential:"test"}]});
|
||||
pc = new RTCPeerConnection();
|
||||
pc.addTransceiver('video',{
|
||||
direction:'recvonly'
|
||||
})
|
||||
|
Reference in New Issue
Block a user