[+] Docker
This commit is contained in:
@@ -56,6 +56,14 @@
|
||||
|
||||
> 注意:Web终端不支持同时进入多个视频房间,安卓终端支持同时进入多个视频房间。
|
||||
|
||||
## Docker
|
||||
|
||||
```
|
||||
acgist/taoyao-client-web
|
||||
acgist/taoyao-client-media
|
||||
acgist/taoyao-signal-server
|
||||
```
|
||||
|
||||
## 证书
|
||||
|
||||
本地开发测试安装`docs/certs`中的`ca.crt`证书到`受信任的根证书颁发机构`
|
||||
|
||||
@@ -0,0 +1,73 @@
|
||||
# Docker
|
||||
|
||||
## 镜像
|
||||
|
||||
```
|
||||
# Web
|
||||
docker pull acgist/taoyao-client-web:1.0.0
|
||||
docker run --name="taoyao-client-web" -d acgist/taoyao-client-web:1.0.0
|
||||
docker run --name="taoyao-client-web" -d -p 0.0.0.0:8443:8443 acgist/taoyao-client-web:1.0.0
|
||||
docker run --name="taoyao-client-web" -it acgist/taoyao-client-web:1.0.0 /bin/bash
|
||||
docker exec -it acgist/taoyao-client-web:1.0.0 /bin/bash
|
||||
|
||||
# 媒体服务
|
||||
docker pull acgist/taoyao-client-media:1.0.0
|
||||
docker run --name="taoyao-client-media" -d acgist/taoyao-client-media:1.0.0
|
||||
docker run --name="taoyao-client-media" -it acgist/taoyao-client-media:1.0.0 /bin/bash
|
||||
docker exec -it acgist/taoyao-client-media:1.0.0 /bin/bash
|
||||
|
||||
# 信令服务
|
||||
docker pull acgist/taoyao-signal-server:1.0.0
|
||||
docker run --name="taoyao-signal-server" -d acgist/taoyao-signal-server:1.0.0
|
||||
docker run --name="taoyao-signal-server" -d -p 0.0.0.0:8888:8888 -p 0.0.0.0:9999:9999 acgist/taoyao-signal-server:1.0.0
|
||||
docker run --name="taoyao-signal-server" -it acgist/taoyao-signal-server:1.0.0 /bin/bash
|
||||
docker exec -it acgist/taoyao-signal-server:1.0.0 /bin/bash
|
||||
```
|
||||
|
||||
## 制作
|
||||
|
||||
```
|
||||
# Web
|
||||
docker image build -t acgist/taoyao-client-web:1.0.0 .
|
||||
docker push acgist/taoyao-client-web:1.0.0
|
||||
|
||||
# 媒体服务
|
||||
docker image build -t acgist/taoyao-client-media:1.0.0 .
|
||||
docker push acgist/taoyao-client-media:1.0.0
|
||||
|
||||
# 信令服务
|
||||
docker image build -t acgist/taoyao-signal-server:1.0.0 .
|
||||
docker push acgist/taoyao-signal-server:1.0.0
|
||||
```
|
||||
|
||||
## Dockerfile
|
||||
|
||||
### Web
|
||||
|
||||
```
|
||||
FROM node:18.16.0
|
||||
EXPOSE 8443/tcp
|
||||
COPY taoyao-client-web /data/taoyao/taoyao-client-web
|
||||
WORKDIR /data/taoyao/taoyao-client-web
|
||||
CMD npm run dev
|
||||
```
|
||||
|
||||
### 媒体服务
|
||||
|
||||
```
|
||||
FROM node:18.16.0
|
||||
COPY taoyao-client-media /data/taoyao/taoyao-client-media
|
||||
WORKDIR /data/taoyao/taoyao-client-media
|
||||
CMD npm run dev
|
||||
```
|
||||
|
||||
### 信令服务
|
||||
|
||||
```
|
||||
FROM openjdk:17.0.2-jdk
|
||||
EXPOSE 8888/tcp
|
||||
EXPOSE 9999/tcp
|
||||
COPY taoyao-signal-server /data/taoyao/taoyao-signal-server
|
||||
WORKDIR /data/taoyao/taoyao-signal-server
|
||||
CMD ./deploy/bin/startup.sh
|
||||
```
|
||||
|
||||
@@ -6,16 +6,17 @@ base=${bin%/*}
|
||||
cd $base
|
||||
echo "启动目录:$base"
|
||||
|
||||
# 结束任务
|
||||
if [ ! -f "/.dockerenv" ]; then
|
||||
# Java运行环境
|
||||
JAVA=$(which java)
|
||||
if [ -z "$JAVA" ] ; then
|
||||
echo "必须安装${java.version}+JDK"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 结束任务
|
||||
if [ ! -f "/.dockerenv" ]; then
|
||||
sh bin/stop.sh
|
||||
bash bin/stop.sh
|
||||
else
|
||||
JAVA="java"
|
||||
fi
|
||||
|
||||
# 启动参数
|
||||
@@ -38,7 +39,7 @@ fi
|
||||
|
||||
# 等待任务
|
||||
if [ ! -f "/.dockerenv" ]; then
|
||||
sh bin/wait.sh
|
||||
bash bin/wait.sh
|
||||
else
|
||||
echo -e "\033[32m启动成功:${project.artifactId}-${project.version}\033[0m"
|
||||
fi
|
||||
|
||||
@@ -6,6 +6,7 @@ sleep 1
|
||||
# 等待任务
|
||||
startTime=$(date +%s)
|
||||
processId=$(ps -aux | grep "${project.artifactId}" | grep java | awk '{print $2}')
|
||||
processPortNumber=0
|
||||
if [ ! -z "$processId" ]; then
|
||||
waitIndex=0
|
||||
processPortNumber=$(netstat -anop | grep $processId | grep LISTEN | wc -l)
|
||||
@@ -23,9 +24,9 @@ if [ ! -z "$processId" ]; then
|
||||
done
|
||||
echo ""
|
||||
fi
|
||||
if [ "$processPortNumber" -lt 1 ]; then
|
||||
if [ $processPortNumber -lt 1 ]; then
|
||||
echo -e "\033[31m启动失败:${project.artifactId}-${project.version}\033[0m"
|
||||
sh bin/stop.sh
|
||||
bash bin/stop.sh
|
||||
exit 0
|
||||
else
|
||||
finishTime=$(date +%s)
|
||||
|
||||
@@ -89,6 +89,13 @@ public class RtpTest {
|
||||
// ffmpeg不支持rtcpMux
|
||||
// ffmpeg -re -i video.mp4 -c:v libvpx -map 0:0 -f tee "[select=v:f=rtp:ssrc=123123:payload_type=102]rtp://192.168.1.110:40793?rtcpport=47218"
|
||||
// ffmpeg -re -i video.mp4 -c:v vp8 -map 0:0 -f tee "[select=v:f=rtp:ssrc=123123:payload_type=102]rtp://192.168.1.110:40793?rtcpport=47218"
|
||||
// 音频视频同时传输
|
||||
// ffmpeg -re -i video.mp4 -c:v copy -an -f rtp rtp://192.168.8.122:6666 -c:a copy -vn -f rtp rtp://192.168.8.122:7777 -sdp_file taoyao.sdp
|
||||
// ffplay -protocol_whitelist "file,rtp,udp" -i taoyao.sdp
|
||||
// ffmpeg -protocol_whitelist "file,rtp,udp" -i taoyao.sdp taoyao.mp4
|
||||
// 混音
|
||||
// ffmpeg -re -i video.mp4 -i music.mp3 -map 0 -vn -c:a copy -f rtp rtp://192.168.8.122:6666 -map 0 -an -c:v copy -f rtp rtp://192.168.8.122:7777 -map 1 -c:a aac -f rtp rtp://192.168.8.122:8888 -sdp_file taoyao.sdp
|
||||
// ffmpeg -protocol_whitelist "file,rtp,udp" -i taoyao.sdp -filter_complex "[0:0]aresample=8000[a0];[0:2]aresample=8000[a2];[a0][a2]amix=inputs=2" taoyao.mp4
|
||||
final Scanner scanner = new Scanner(System.in);
|
||||
do {
|
||||
if(StringUtils.isEmpty(line)) {
|
||||
|
||||
Reference in New Issue
Block a user