1
0
mirror of https://gitlab.crans.org/nounous/ghostream.git synced 2024-12-22 20:52:20 +00:00
Commit Graph

153 Commits

Author SHA1 Message Date
Yohann D'ANELLO
029633d215 Don't fail tests if the telnet module is not loaded 2020-10-13 18:40:12 +02:00
Yohann D'ANELLO
51d38f6fec Store the clients that are connected to a telnet shell in the connected viewers stats 2020-10-13 11:37:59 +02:00
Yohann D'ANELLO
88c4a037cb Add 3 seconds delay before accepting telnet inputs to avoid bruteforce attacks 2020-10-13 11:28:29 +02:00
Yohann D'ANELLO
6d9fe4a028 Use string pointers for the telnet output to avoid concurrency map read/write 2020-10-13 11:17:35 +02:00
Yohann D'ANELLO
770862cb7d Don't use -re ffmpeg option: the video speed is already cadenced by the streamer. Fix #16 2020-10-13 10:46:04 +02:00
Yohann D'ANELLO
3ce82c5d61 Allocate memory for UDP buffers only once 2020-10-13 10:10:25 +02:00
Yohann D'ANELLO
32f877508d Separate the WebRTC stream subroutine in a dedicated subroutine 2020-10-13 09:50:46 +02:00
Yohann D'ANELLO
defba52569 If there is no forwarding, drop forwarding channels 2020-10-13 09:38:44 +02:00
Yohann D'ANELLO
7325301574 Comment in the right order 2020-10-13 01:41:17 +02:00
Yohann D'ANELLO
4db102c384 Ascii is a known keyword, must be in capital letters 2020-10-13 00:56:49 +02:00
Yohann D'ANELLO
727865f444 Interact with telnet to select the stream id 2020-10-13 00:52:08 +02:00
Yohann D'ANELLO
95fcedf2fa Comment telnet package 2020-10-13 00:31:47 +02:00
Yohann D'ANELLO
ee76951854 Don't export to ASCII art if the telnet packet is disabled 2020-10-13 00:30:05 +02:00
Yohann D'ANELLO
61ae490a5d Make telnet output configurable 2020-10-13 00:15:23 +02:00
Yohann D'ANELLO
e640450d98 Start telnet connection to send ASCII Art stream 2020-10-12 23:39:26 +02:00
Yohann D'ANELLO
b675023804 Prepare ascii art quality 2020-10-12 23:11:02 +02:00
Alexandre Iooss
df88fd9e99
Create config package and properly use Viper 2020-10-11 21:35:43 +02:00
Yohann D'ANELLO
4d1dff60c7 -crf is better that -quality good 2020-10-10 17:05:36 +02:00
Yohann D'ANELLO
3dd544c1e4 The FFMPEG parameters make WebRTC working 2020-10-10 17:00:25 +02:00
Yohann D'ANELLO
503649a6da Use FFMPEG settings that are recommended by pion, better performances, see #3 2020-10-10 14:19:42 +02:00
Yohann D'ANELLO
a8146e7cbb Setting blocking option to 0, fix #11 2020-10-10 13:50:37 +02:00
Alexandre Iooss
d1d6eb17b6
Test splitHostPort error cases 2020-10-09 23:37:08 +02:00
Alexandre Iooss
87d2992bdf
Add package comments 2020-10-09 22:36:02 +02:00
Yohann D'ANELLO
473e80c5eb Kill FFMPEG at the end of the forwarding test 2020-10-09 22:31:19 +02:00
Alexandre Iooss
811cec5626
Enable SRT server for forwarding tests 2020-10-09 22:24:01 +02:00
Alexandre Iooss
7ae82656a4
Enable SRT server during testing 2020-10-09 22:17:25 +02:00
Alexandre Iooss
45c6b5dba5
Fix #7: make each module optional 2020-10-09 22:06:30 +02:00
Yohann D'ANELLO
07983a1c71 Try to add a quality selector (WIP), see #4 2020-10-06 00:06:52 +02:00
Yohann D'ANELLO
192c86f140 Count also the viewers that are streaming directly from their video player in the connected users stats 2020-10-05 22:41:19 +02:00
Yohann D'ANELLO
635081f269 Client receives the stream corresponding to the requested stream id 2020-10-05 22:34:55 +02:00
Yohann D'ANELLO
0a1329b929 Separate statistics per stream 2020-10-05 22:09:10 +02:00
Yohann D'ANELLO
022f6fb098 💩 Split webrtc tracks by stream id (need to clean this, stream ID must pass between the session descriptor and the webrtc flux transmit) 2020-10-05 22:00:08 +02:00
Alexandre Iooss
76f009efe3
Use logger rather than panic in ingest 2020-10-05 11:38:17 +02:00
Alexandre Iooss
cbe6a00d1a
Reduce verbosity of streaming 2020-10-05 11:08:22 +02:00
Alexandre Iooss
2a3b79734a
Copy track SSRC and payload, working webrtc! 2020-10-05 10:26:08 +02:00
Alexandre Iooss
e8f4cd7683
Move webrtc ingest in seperate file 2020-10-05 10:11:30 +02:00
Yohann D'ANELLO
3a9568e764 Copy Pion RTP -> WebRTC example, it does not work but does not crash 2020-10-05 00:45:22 +02:00
Alexandre Iooss
4e066d6c33
If ffmpeg returns an error, then test failed 2020-10-04 21:05:42 +02:00
Alexandre Iooss
708501c5c8
use time.Second to wait for 5s 2020-10-04 20:52:26 +02:00
Alexandre Iooss
f3d38dc10d
ffmpeg outputs logs only to stderr 2020-10-04 20:47:05 +02:00
Alexandre Iooss
1576e391eb
Remove globals in forwarding package and make ffmpeg quieter 2020-10-04 20:42:16 +02:00
Alexandre Iooss
606542f622
Remove cfg and forwardingChannel globals in forwarding package 2020-10-04 20:16:29 +02:00
Alexandre Iooss
ad934516a9
Send SRT stream to WebRTC package 2020-10-04 18:22:10 +02:00
Alexandre Iooss
86d436d33d
Limit SRT buffer to MTU 2020-10-04 14:27:16 +02:00
Alexandre Iooss
dd6318256f
Move srt handlers in seperate file 2020-10-04 14:24:00 +02:00
Yohann D'ANELLO
610ddfab28 Handle client connection closure 2020-10-04 13:08:46 +02:00
Alexandre Iooss
2a24598aea
Use password to diff viewer from streamer 2020-10-04 12:40:56 +02:00
Alexandre Iooss
db0937dd1a
Remove useless comments in SRT 2020-10-04 11:45:53 +02:00
Alexandre Iooss
3f5d317250
Do not use file mode for SRT 2020-10-04 11:25:55 +02:00
Alexandre Iooss
6172cf89be
Remove globals in SRT server 2020-10-03 17:50:34 +02:00
Alexandre Iooss
93ac5a7de1
Comment Server SRT 2020-10-03 17:42:38 +02:00
Yohann D'ANELLO
98a798429c Linting 2020-10-03 16:15:42 +02:00
Yohann D'ANELLO
8498829e08 Support stream listening 2020-10-02 23:35:01 +02:00
Yohann D'ANELLO
087d6eee3b Use : as more conventional separator for user:password 2020-10-02 22:39:38 +02:00
Yohann D'ANELLO
596beeeb89 Manage SRT sockets in a dedicated go routine 2020-10-02 22:12:13 +02:00
Yohann D'ANELLO
8eab4dfe22 ID is better than Id according to Golang 2020-10-02 10:33:16 +02:00
Yohann D'ANELLO
12bd0b71e3 Reorder imports 2020-10-02 09:46:15 +02:00
Yohann D'ANELLO
8c2a7f73d7 Don't hardcode SRT API value 2020-10-02 09:44:31 +02:00
Yohann D'ANELLO
0371d3dc7c Authenticate streams 2020-10-01 23:31:14 +02:00
Yohann D'ANELLO
b5338e06bc Fix forwarding test, overwrite /dev/null 2020-10-01 20:53:26 +02:00
Yohann D'ANELLO
650040ef10 Forwarding test must serve then the forwarding package in a subroutine 2020-10-01 19:34:40 +02:00
Yohann D'ANELLO
d7e104261f Unify the forwarding package start with the other, start it in a go routine 2020-10-01 19:26:12 +02:00
Yohann D'ANELLO
98d5c609a3 Comment Packet structure 2020-10-01 19:05:39 +02:00
Yohann D'ANELLO
e74213fefa 🐛 Copy SRT data in another buffer before sending it in the forwarding package to avoid overwriting issues 2020-10-01 18:54:35 +02:00
Yohann D'ANELLO
ee1f1e331b 💩 Change port of SRT server if the forwarding test. We should instead kill the server after the test. 2020-10-01 12:09:49 +02:00
Yohann D'ANELLO
c0689ae063 💩 Change port of SRT server if the forwarding test. We should instead kill the server after the test. 2020-10-01 12:07:28 +02:00
Yohann D'ANELLO
efa44488c0 Use channels to send SRT packets to forwarded streams 2020-10-01 12:00:59 +02:00
Yohann D'ANELLO
dc7a3fef9f Test stream forwarding, but disable it while the project structure is not clean, ie. to avoid that forwarding is a dependency to srt 2020-10-01 11:20:34 +02:00
Yohann D'ANELLO
e8b145550e Skip stream tests if ffmpeg is not installed 2020-09-30 19:28:30 +02:00
Yohann D'ANELLO
ddd8be155e Try to test serving SRT server 2020-09-30 16:53:15 +02:00
Alexandre Iooss
8883c878bf
Better error handling in stream forwarder 2020-09-30 15:28:19 +02:00
Alexandre Iooss
2550d75c57
Refractor streamKey to name 2020-09-30 15:10:13 +02:00
Alexandre Iooss
8f7384ba35
Rename multicast to stream forwarding 2020-09-30 15:07:36 +02:00
Yohann D'ANELLO
b647c761f3 Test loading the configuration 2020-09-30 13:08:44 +02:00
Yohann D'ANELLO
4024ed5b2a Add a comment, fix linting 2020-09-30 08:50:54 +02:00
Yohann D'ANELLO
5efbe309ac Optimize FFMPEG parameters to reduce CPU charge 2020-09-30 00:36:58 +02:00
Yohann D'ANELLO
9049935ee4 Use only one instance of FFPMEG per SRT stream instead of one per additional cast 2020-09-29 23:43:54 +02:00
Yohann D'ANELLO
351870e92a Merge remote-tracking branch 'origin/golang' into multicast
# Conflicts:
#	stream/srt/srt.go
2020-09-29 22:43:37 +02:00
Yohann D'ANELLO
5fa492547b Use external configuration to setup multicasts 2020-09-29 22:40:49 +02:00
Yohann D'ANELLO
2920b6883c Separate multicast feature 2020-09-29 21:31:53 +02:00
Alexandre Iooss
ad26242d4a
Simplify SRT handling 2020-09-29 20:58:55 +02:00
Yohann D'ANELLO
969d36fab4 Use FFMPEG to broadcast the stream on Twitch 2020-09-29 20:56:31 +02:00
Alexandre Iooss
5b5bf2b518
Test splitHostPort 2020-09-29 18:52:27 +02:00
Alexandre Iooss
078a74add1
Do not read prometheus metrics 2020-09-29 18:17:55 +02:00
Yohann D'ANELLO
2005f3ece1 Store connected viewers in Prometheus and serve this amount 2020-09-29 18:03:28 +02:00
Alexandre Iooss
95f4b81f01
Make STUN server configurable 2020-09-29 17:27:19 +02:00
Alexandre Iooss
1c98754624
Restructure projet and add webrtc settings 2020-09-29 17:04:23 +02:00
Alexandre Iooss
29eeb2c0fd
Load SRT host and port from configuration 2020-09-29 16:49:30 +02:00
Yohann D'ANELLO
c67a4adf83 6 UDP ports are enough (but does not work) 2020-09-29 14:23:20 +02:00
Alexandre Iooss
d46efaae3c
Limit WebRTC UDP ports 2020-09-29 14:11:56 +02:00
Yohann D'ANELLO
da5ba44e6b 🌱 Create empty test files to have a realistic coverage 2020-09-28 21:18:49 +02:00
Alexandre Iooss
92f44c981d
More code for SRT handling 2020-09-28 16:32:35 +02:00
Alexandre Iooss
6c7ac2d3b3
Fix sck to srtgo 2020-09-27 22:32:49 +02:00
Alexandre Iooss
a6e972bb51
SrtSocket is a struct 2020-09-27 22:30:12 +02:00
Alexandre Iooss
5999fc69d8
Try to fix SRT initialization 2020-09-27 22:27:18 +02:00
Alexandre Iooss
172b1c3a84
Handle stream in a goroutine 2020-09-27 22:10:47 +02:00
Yohann D'ANELLO
9e3494fe6d 🐛 Fix debug format printing 2020-09-27 21:21:58 +02:00
Alexandre Iooss
622bb42435
Switch to haivision SRT module 2020-09-27 20:43:00 +02:00
Alexandre Iooss
d4aa09c632
Add basic SRT support 2020-09-27 11:14:22 +02:00
Alexandre Iooss
6b5fea66e6
Proper multi client WebRTC 2020-09-25 15:12:28 +02:00