From 8e6f1958c39a052e2043f92560224bd9674a9451 Mon Sep 17 00:00:00 2001 From: Joseph Tam Date: Sun, 9 Jun 2024 02:08:57 +0800 Subject: [PATCH] feat: add Dockerfile to adaptive hls demo --- .../Dockerfile | 29 +++++++++++++++++++ ...eStreamingServerNet.AdaptiveHlsDemo.csproj | 5 ++++ .../Makefile | 11 +++++++ .../Program.cs | 2 -- 4 files changed, 45 insertions(+), 2 deletions(-) create mode 100644 samples/LiveStreamingServerNet.AdaptiveHlsDemo/Dockerfile create mode 100644 samples/LiveStreamingServerNet.AdaptiveHlsDemo/Makefile diff --git a/samples/LiveStreamingServerNet.AdaptiveHlsDemo/Dockerfile b/samples/LiveStreamingServerNet.AdaptiveHlsDemo/Dockerfile new file mode 100644 index 00000000..cf12bb83 --- /dev/null +++ b/samples/LiveStreamingServerNet.AdaptiveHlsDemo/Dockerfile @@ -0,0 +1,29 @@ +FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base +RUN apt-get update && apt-get install -y ffmpeg +USER app +WORKDIR /app +EXPOSE 80 +EXPOSE 1935 + +FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build +ARG BUILD_CONFIGURATION=Release +WORKDIR /src +COPY ["samples/LiveStreamingServerNet.AdaptiveHlsDemo/LiveStreamingServerNet.AdaptiveHlsDemo.csproj", "samples/LiveStreamingServerNet.AdaptiveHlsDemo/"] +COPY ["src/LiveStreamingServerNet.StreamProcessor/LiveStreamingServerNet.StreamProcessor.csproj", "src/LiveStreamingServerNet.StreamProcessor/"] +COPY ["src/LiveStreamingServerNet.Rtmp/LiveStreamingServerNet.Rtmp.csproj", "src/LiveStreamingServerNet.Rtmp/"] +COPY ["src/LiveStreamingServerNet.Networking/LiveStreamingServerNet.Networking.csproj", "src/LiveStreamingServerNet.Networking/"] +COPY ["src/LiveStreamingServerNet.Utilities/LiveStreamingServerNet.Utilities.csproj", "src/LiveStreamingServerNet.Utilities/"] +COPY ["src/LiveStreamingServerNet/LiveStreamingServerNet.csproj", "src/LiveStreamingServerNet/"] +RUN dotnet restore "./samples/LiveStreamingServerNet.AdaptiveHlsDemo/LiveStreamingServerNet.AdaptiveHlsDemo.csproj" +COPY . . +WORKDIR "/src/samples/LiveStreamingServerNet.AdaptiveHlsDemo" +RUN dotnet build "./LiveStreamingServerNet.AdaptiveHlsDemo.csproj" -c $BUILD_CONFIGURATION -o /app/build + +FROM build AS publish +ARG BUILD_CONFIGURATION=Release +RUN dotnet publish "./LiveStreamingServerNet.AdaptiveHlsDemo.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false + +FROM base AS final +WORKDIR /app +COPY --from=publish /app/publish . +ENTRYPOINT ["dotnet", "LiveStreamingServerNet.AdaptiveHlsDemo.dll"] \ No newline at end of file diff --git a/samples/LiveStreamingServerNet.AdaptiveHlsDemo/LiveStreamingServerNet.AdaptiveHlsDemo.csproj b/samples/LiveStreamingServerNet.AdaptiveHlsDemo/LiveStreamingServerNet.AdaptiveHlsDemo.csproj index cb10d09d..8b4d22d5 100644 --- a/samples/LiveStreamingServerNet.AdaptiveHlsDemo/LiveStreamingServerNet.AdaptiveHlsDemo.csproj +++ b/samples/LiveStreamingServerNet.AdaptiveHlsDemo/LiveStreamingServerNet.AdaptiveHlsDemo.csproj @@ -6,9 +6,14 @@ enable false false + 6f914df4-156f-4eba-b3e1-103c8c05e472 + Linux + ..\.. + -p 1935:1935 -p 8080:80 + diff --git a/samples/LiveStreamingServerNet.AdaptiveHlsDemo/Makefile b/samples/LiveStreamingServerNet.AdaptiveHlsDemo/Makefile new file mode 100644 index 00000000..5bcdc991 --- /dev/null +++ b/samples/LiveStreamingServerNet.AdaptiveHlsDemo/Makefile @@ -0,0 +1,11 @@ +IMG ?= live-streaming-server-net-adaptive-hls-demo +PORT ?= 8080 +RTMP_PORT ?= 1935 + +.PHONY: build +build: + docker build -t $(IMG) -f ./Dockerfile ../../ + +.PHONY: run +run: + docker run -p $(PORT):80 -p $(RTMP_PORT):1935 -d $(IMG) \ No newline at end of file diff --git a/samples/LiveStreamingServerNet.AdaptiveHlsDemo/Program.cs b/samples/LiveStreamingServerNet.AdaptiveHlsDemo/Program.cs index 925bf43f..3663044a 100644 --- a/samples/LiveStreamingServerNet.AdaptiveHlsDemo/Program.cs +++ b/samples/LiveStreamingServerNet.AdaptiveHlsDemo/Program.cs @@ -61,8 +61,6 @@ private static ILiveStreamingServer CreateLiveStreamingServer(string transmuxerO return LiveStreamingServerBuilder.Create() .ConfigureRtmpServer(options => options .Configure(options => options.EnableGopCaching = false) - .AddVideoCodecFilter(builder => builder.Include(VideoCodec.AVC)) - .AddAudioCodecFilter(builder => builder.Include(AudioCodec.AAC)) .AddStreamProcessor(options => { options.AddStreamProcessorEventHandler(svc =>