Add WebRTC support using libdatachannel
The WebRTC is exposed via `/video.html` endpoint and enabled by default as long as h264 stream is available.
This commit is contained in:
26
Makefile
26
Makefile
@ -10,9 +10,12 @@ ifneq (x,x$(shell which ccache))
|
||||
CCACHE ?= ccache
|
||||
endif
|
||||
|
||||
LIBDATACHANNEL_PATH ?= third_party/libdatachannel
|
||||
|
||||
USE_FFMPEG ?= $(shell pkg-config libavutil libavformat libavcodec && echo 1)
|
||||
USE_LIBCAMERA ?= $(shell pkg-config libcamera && echo 1)
|
||||
USE_RTSP ?= $(shell pkg-config live555 && echo 1)
|
||||
USE_LIBDATACHANNEL ?= $(shell [ -e $(LIBDATACHANNEL_PATH)/CMakeLists.txt ] && echo 1)
|
||||
|
||||
ifeq (1,$(DEBUG))
|
||||
CFLAGS += -g
|
||||
@ -25,12 +28,25 @@ endif
|
||||
|
||||
ifeq (1,$(USE_LIBCAMERA))
|
||||
CFLAGS += -DUSE_LIBCAMERA $(shell pkg-config --cflags libcamera)
|
||||
LDLIBS += $(shell pkg-config --libs libcamera)
|
||||
LDLIBS += $(shell pkg-config --libs libcamera)
|
||||
endif
|
||||
|
||||
ifeq (1,$(USE_RTSP))
|
||||
CFLAGS += -DUSE_RTSP $(shell pkg-config --cflags live555)
|
||||
LDLIBS += $(shell pkg-config --libs live555)
|
||||
LDLIBS += $(shell pkg-config --libs live555)
|
||||
endif
|
||||
|
||||
ifeq (1,$(USE_LIBDATACHANNEL))
|
||||
CFLAGS += -DUSE_LIBDATACHANNEL
|
||||
CFLAGS += -I$(LIBDATACHANNEL_PATH)/include
|
||||
CFLAGS += -I$(LIBDATACHANNEL_PATH)/deps/json/include
|
||||
LDLIBS += -L$(LIBDATACHANNEL_PATH)/build -ldatachannel-static
|
||||
LDLIBS += -L$(LIBDATACHANNEL_PATH)/build/deps/usrsctp/usrsctplib -lusrsctp
|
||||
LDLIBS += -L$(LIBDATACHANNEL_PATH)/build/deps/libsrtp -lsrtp2
|
||||
LDLIBS += -L$(LIBDATACHANNEL_PATH)/build/deps/libjuice -ljuice-static
|
||||
LDLIBS += -lcrypto -lssl
|
||||
|
||||
camera-streamer: $(LIBDATACHANNEL_PATH)/build/libdatachannel-static.a
|
||||
endif
|
||||
|
||||
HTML_SRC = $(addsuffix .c,$(HTML))
|
||||
@ -40,7 +56,7 @@ OBJS = $(patsubst %.cc,%.o,$(patsubst %.c,%.o,$(SRC) $(HTML_SRC)))
|
||||
|
||||
all: $(TARGET)
|
||||
|
||||
%: cmd/% $(OBJS)
|
||||
%: cmd/% $(filter-out third_party/%, $(OBJS))
|
||||
$(CCACHE) $(CXX) $(CFLAGS) -o $@ $(filter-out cmd/%, $^) $(filter $</%, $^) $(LDLIBS)
|
||||
|
||||
install: $(TARGET)
|
||||
@ -64,3 +80,7 @@ headers:
|
||||
html/%.c: html/%
|
||||
xxd -i $< > $@.tmp
|
||||
mv $@.tmp $@
|
||||
|
||||
$(LIBDATACHANNEL_PATH)/build/libdatachannel-static.a: $(LIBDATACHANNEL_PATH)
|
||||
[ -e $</build/Makefile ] || cmake -S $< -B $</build
|
||||
$(MAKE) -C $</build datachannel-static
|
||||
|
Reference in New Issue
Block a user