去掉turn

This commit is contained in:
langhuihui
2020-09-02 12:46:46 +08:00
parent 19e61f14ce
commit c93371ff1a
8 changed files with 24 additions and 50 deletions

36
main.go
View File

@@ -3,10 +3,7 @@ package webrtc
import ( import (
"encoding/json" "encoding/json"
"fmt" "fmt"
"github.com/pion/turn/v2"
"io/ioutil" "io/ioutil"
"log"
"net"
"net/http" "net/http"
"sync" "sync"
"time" "time"
@@ -22,7 +19,6 @@ import (
var config struct { var config struct {
ICEServers []string ICEServers []string
PublicIP string PublicIP string
ListenAddr string
} }
// }{[]string{ // }{[]string{
@@ -88,6 +84,7 @@ type WebRTC struct {
RemoteAddr string RemoteAddr string
videoTrack *Track videoTrack *Track
m MediaEngine m MediaEngine
s SettingEngine
api *API api *API
payloader avformat.H264 payloader avformat.H264
// codecs.H264Packet // codecs.H264Packet
@@ -163,7 +160,8 @@ func (rtc *WebRTC) Publish(streamPath string) bool {
DefaultPayloadTypeH264, DefaultPayloadTypeH264,
new(avformat.H264))) new(avformat.H264)))
//m.RegisterCodec(NewRTPPCMUCodec(DefaultPayloadTypePCMU, 8000)) //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{ peerConnection, err := rtc.api.NewPeerConnection(Configuration{
ICEServers: []ICEServer{ ICEServers: []ICEServer{
{ {
@@ -245,31 +243,6 @@ func (rtc *WebRTC) GetAnswer() ([]byte, error) {
} }
func run() { 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) { http.HandleFunc("/webrtc/play", func(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Access-Control-Allow-Credentials", "true") w.Header().Set("Access-Control-Allow-Credentials", "true")
origin := r.Header["Origin"] origin := r.Header["Origin"]
@@ -310,7 +283,8 @@ func run() {
DefaultPayloadTypeH264, DefaultPayloadTypeH264,
&rtc.payloader)) &rtc.payloader))
//m.RegisterCodec(NewRTPPCMUCodec(DefaultPayloadTypePCMU, 8000)) //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{ peerConnection, err := rtc.api.NewPeerConnection(Configuration{
// ICEServers: []ICEServer{ // ICEServers: []ICEServer{
// { // {

View File

@@ -221,12 +221,12 @@ var staticRenderFns = []
// CONCATENATED MODULE: ./src/App.vue?vue&type=template&id=674ea55a&scoped=true& // 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& // 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_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_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_7e3b881f_staticRenderFns = [] 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& // 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: { methods: {
async play(streamPath) { async play(streamPath) {
pc = new RTCPeerConnection({iceServers:[{urls:"turn:"+this.PublicIP,username:"monibuca",credential:"test"}]}); pc = new RTCPeerConnection();
pc.addTransceiver('video',{ pc.addTransceiver('video',{
direction:'recvonly' direction:'recvonly'
}) })
@@ -427,8 +427,8 @@ function normalizeComponent (
var component = normalizeComponent( var component = normalizeComponent(
components_Playervue_type_script_lang_js_, components_Playervue_type_script_lang_js_,
Playervue_type_template_id_7e3b881f_render, Playervue_type_template_id_30c7d0b2_render,
Playervue_type_template_id_7e3b881f_staticRenderFns, Playervue_type_template_id_30c7d0b2_staticRenderFns,
false, false,
null, null,
null, null,

File diff suppressed because one or more lines are too long

View File

@@ -230,12 +230,12 @@ var staticRenderFns = []
// CONCATENATED MODULE: ./src/App.vue?vue&type=template&id=674ea55a&scoped=true& // 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& // 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_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_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_7e3b881f_staticRenderFns = [] 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& // 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: { methods: {
async play(streamPath) { async play(streamPath) {
pc = new RTCPeerConnection({iceServers:[{urls:"turn:"+this.PublicIP,username:"monibuca",credential:"test"}]}); pc = new RTCPeerConnection();
pc.addTransceiver('video',{ pc.addTransceiver('video',{
direction:'recvonly' direction:'recvonly'
}) })
@@ -436,8 +436,8 @@ function normalizeComponent (
var component = normalizeComponent( var component = normalizeComponent(
components_Playervue_type_script_lang_js_, components_Playervue_type_script_lang_js_,
Playervue_type_template_id_7e3b881f_render, Playervue_type_template_id_30c7d0b2_render,
Playervue_type_template_id_7e3b881f_staticRenderFns, Playervue_type_template_id_30c7d0b2_staticRenderFns,
false, false,
null, null,
null, null,

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -37,7 +37,7 @@ props:{
}, },
methods: { methods: {
async play(streamPath) { async play(streamPath) {
pc = new RTCPeerConnection({iceServers:[{urls:"turn:"+this.PublicIP,username:"monibuca",credential:"test"}]}); pc = new RTCPeerConnection();
pc.addTransceiver('video',{ pc.addTransceiver('video',{
direction:'recvonly' direction:'recvonly'
}) })