From ab92c989c6103bae5ce1894227e3ed25cb585477 Mon Sep 17 00:00:00 2001 From: Zhongyang Xia Date: Thu, 19 Nov 2020 11:39:28 +0000 Subject: [PATCH 1/3] Add Corpus to demostrate usage --- README.md | 73 +++++-------------- .../serverless/corpus/.gitattributes | 3 + .../serverless/corpus/.gitignore | 2 + .../serverless/corpus/onnx-model.onnx | 3 + .../serverless/corpus/receiver.json | 59 +++++++++++++++ .../serverless/corpus/sender.json | 50 +++++++++++++ .../serverless/corpus/testmedia/test.wav | 3 + .../serverless/corpus/testmedia/test.yuv | 3 + 8 files changed, 141 insertions(+), 55 deletions(-) create mode 100644 examples/peerconnection/serverless/corpus/.gitattributes create mode 100644 examples/peerconnection/serverless/corpus/.gitignore create mode 100644 examples/peerconnection/serverless/corpus/onnx-model.onnx create mode 100644 examples/peerconnection/serverless/corpus/receiver.json create mode 100644 examples/peerconnection/serverless/corpus/sender.json create mode 100644 examples/peerconnection/serverless/corpus/testmedia/test.wav create mode 100644 examples/peerconnection/serverless/corpus/testmedia/test.yuv diff --git a/README.md b/README.md index de756e3097..82c43b6369 100644 --- a/README.md +++ b/README.md @@ -136,64 +136,27 @@ This section describes required fields for the json configuration file. - **file_path**: The file path of the output video file in YUV format #### Example +To beter demonstrate the usage, we have an all-inclusive example in `examples/peerconnection/serverless/corpus`. -``` json -{ - "serverless_connection": { - "sender": { - "enabled": false, - "dest_ip": "127.0.0.1", - "dest_port": 8888 - }, - "autoclose": 20 - }, - - "bwe_feedback_duration": 200, - - "onnx": { - "onnx_model_path": "onnx-model.onnx" - }, - - "video_source":{ - "video_disabled": { - "enabled": true - }, - "webcam": { - "enabled": false - }, - "video_file": { - "enabled": true, - "height": 480, - "width": 640, - "fps": 24, - "file_path": "testmedia/test.yuv" - } - }, - - "audio_source": { - "microphone": { - "enabled": false - }, - "audio_file": { - "enabled": true, - "file_path": "testmedia/test.wav" - } - }, - "save_to_file": { - "enabled": true, - "audio": { - "file_path": "outaudio.wav" - }, - "video": { - "width": 640, - "height": 480, - "fps": 24, - "file_path": "outvideo.yuv" - } - } -} +0. Install all prequisite packages, as stated above. Also make sure you have compiled the `alphartc` docker image by running `make` + +1. Create a Docker network +```shell +sudo docker network create --subnet=192.168.0.1/16 alphartc +``` + +2. Start the receiver +```shell +sudo docker run --network alphartc --ip 192.168.0.100 -v $(pwd)/examples/peerconnection/serverless/corpus:/app/config -w /app/config alphartc peerconnection_serverless receiver.json ``` +3. Start the sender +```shell +sudo docker run --network alphartc -v $(pwd)/examples/peerconnection/serverless/corpus:/app/config -w /app/config alphartc peerconnection_serverless sender.json +``` + +After the receiver terminates, you should then be able to see the output files in `examples/peerconnection/serverless/corpus`. + ## Who Are We The OpenNetLab team is an inter-academia research team, initiated by the Networking Reasearch Group at Microsoft Research Asia. Our team members are from different research institudes, including Peking University, Nanjing University and Nanyang Technological University. diff --git a/examples/peerconnection/serverless/corpus/.gitattributes b/examples/peerconnection/serverless/corpus/.gitattributes new file mode 100644 index 0000000000..1bc3fe73aa --- /dev/null +++ b/examples/peerconnection/serverless/corpus/.gitattributes @@ -0,0 +1,3 @@ +*.onnx filter=lfs diff=lfs merge=lfs -text +*.wav filter=lfs diff=lfs merge=lfs -text +*.yuv filter=lfs diff=lfs merge=lfs -text diff --git a/examples/peerconnection/serverless/corpus/.gitignore b/examples/peerconnection/serverless/corpus/.gitignore new file mode 100644 index 0000000000..d066413835 --- /dev/null +++ b/examples/peerconnection/serverless/corpus/.gitignore @@ -0,0 +1,2 @@ +*.yuv +*.wav \ No newline at end of file diff --git a/examples/peerconnection/serverless/corpus/onnx-model.onnx b/examples/peerconnection/serverless/corpus/onnx-model.onnx new file mode 100644 index 0000000000..14d909d867 --- /dev/null +++ b/examples/peerconnection/serverless/corpus/onnx-model.onnx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7acd54d207063aa04284f8e4bba6e152f4599bf50c21c076345000768081fefe +size 1798574 diff --git a/examples/peerconnection/serverless/corpus/receiver.json b/examples/peerconnection/serverless/corpus/receiver.json new file mode 100644 index 0000000000..15e4100ee7 --- /dev/null +++ b/examples/peerconnection/serverless/corpus/receiver.json @@ -0,0 +1,59 @@ +{ + "serverless_connection": { + "autoclose": 20, + "sender": { + "enabled": false, + "dest_ip": "127.0.0.1", + "dest_port": 8888 + }, + "receiver": { + "enabled": true, + "listening_ip": "0.0.0.0", + "listening_port": 8888 + } + }, + + "bwe_feedback_duration": 200, + + "onnx": { + "onnx_model_path": "onnx-model.onnx" + }, + + "video_source":{ + "video_disabled": { + "enabled": true + }, + "webcam": { + "enabled": false + }, + "video_file": { + "enabled": false, + "height": 240, + "width": 320, + "fps": 10, + "file_path": "testmedia/test.yuv" + } + }, + + "audio_source": { + "microphone": { + "enabled": false + }, + "audio_file": { + "enabled": true, + "file_path": "testmedia/test.wav" + } + }, + "save_to_file": { + "enabled": true, + "audio": { + "file_path": "outaudio.wav" + }, + "video": { + "width": 320, + "height": 240, + "fps": 10, + "file_path": "outvideo.yuv" + } + } +} diff --git a/examples/peerconnection/serverless/corpus/sender.json b/examples/peerconnection/serverless/corpus/sender.json new file mode 100644 index 0000000000..59170a94e8 --- /dev/null +++ b/examples/peerconnection/serverless/corpus/sender.json @@ -0,0 +1,50 @@ +{ + "serverless_connection": { + "autoclose": 200, + "sender": { + "enabled": true, + "dest_ip": "192.168.0.100", + "dest_port": 8888 + }, + "receiver": { + "enabled": false, + "listening_ip": "127.0.0.1", + "listening_port": 8888 + } + }, + + "bwe_feedback_duration": 200, + + "onnx": { + "onnx_model_path": "onnx-model.onnx" + }, + + "video_source":{ + "video_disabled": { + "enabled": false + }, + "webcam": { + "enabled": false + }, + "video_file": { + "enabled": true, + "height": 240, + "width": 320, + "fps": 10, + "file_path": "testmedia/test.yuv" + } + }, + + "audio_source": { + "microphone": { + "enabled": false + }, + "audio_file": { + "enabled": true, + "file_path": "testmedia/test.wav" + } + }, + "save_to_file": { + "enabled": false + } +} diff --git a/examples/peerconnection/serverless/corpus/testmedia/test.wav b/examples/peerconnection/serverless/corpus/testmedia/test.wav new file mode 100644 index 0000000000..462b5de6fe --- /dev/null +++ b/examples/peerconnection/serverless/corpus/testmedia/test.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c902083ca931d23a89d7470e4471e7d1405b1bdd3c19eb0803188c0dfbae3d58 +size 277060 diff --git a/examples/peerconnection/serverless/corpus/testmedia/test.yuv b/examples/peerconnection/serverless/corpus/testmedia/test.yuv new file mode 100644 index 0000000000..354fb7a966 --- /dev/null +++ b/examples/peerconnection/serverless/corpus/testmedia/test.yuv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:86ce07ff2c491abb679ee9cb698b668052d14495a81cf7cc219483d0a0e54a7e +size 921600 From edb53972a90162ccfe306166befa64abcc20f2cd Mon Sep 17 00:00:00 2001 From: Ze Gan Date: Fri, 20 Nov 2020 14:38:24 +0800 Subject: [PATCH 2/3] Polish corpus --- README.md | 23 ++++--------------- azure-pipelines.yml | 4 ++++ .../serverless/corpus/receiver.json | 14 ++++------- .../serverless/corpus/sender.json | 18 +++++---------- 4 files changed, 19 insertions(+), 40 deletions(-) diff --git a/README.md b/README.md index 82c43b6369..b9eb8576c7 100644 --- a/README.md +++ b/README.md @@ -135,28 +135,15 @@ This section describes required fields for the json configuration file. - **fps**: Frames per second of the output video file - **file_path**: The file path of the output video file in YUV format -#### Example -To beter demonstrate the usage, we have an all-inclusive example in `examples/peerconnection/serverless/corpus`. +#### Run peerconnection_serverless -0. Install all prequisite packages, as stated above. Also make sure you have compiled the `alphartc` docker image by running `make` +To better demonstrate the usage of peerconnection_serverless, we provide an all-inclusive corpus in `examples/peerconnection/serverless/corpus`. You can use the following commands to execute a tiny example. After these commands terminates, you will get `outvideo.yuv` and `outaudio.wav`. -1. Create a Docker network -```shell -sudo docker network create --subnet=192.168.0.1/16 alphartc -``` - -2. Start the receiver -```shell -sudo docker run --network alphartc --ip 192.168.0.100 -v $(pwd)/examples/peerconnection/serverless/corpus:/app/config -w /app/config alphartc peerconnection_serverless receiver.json -``` - -3. Start the sender -```shell -sudo docker run --network alphartc -v $(pwd)/examples/peerconnection/serverless/corpus:/app/config -w /app/config alphartc peerconnection_serverless sender.json +``` shell +sudo docker run -d --rm -v `pwd`/examples/peerconnection/serverless/corpus:/app -w /app --name alphartc alphartc peerconnection_serverless receiver.json +sudo docker exec alphartc peerconnection_serverless sender.json ``` -After the receiver terminates, you should then be able to see the output files in `examples/peerconnection/serverless/corpus`. - ## Who Are We The OpenNetLab team is an inter-academia research team, initiated by the Networking Reasearch Group at Microsoft Research Asia. Our team members are from different research institudes, including Peking University, Nanjing University and Nanyang Technological University. diff --git a/azure-pipelines.yml b/azure-pipelines.yml index e186a5bcd1..7f4b571cfb 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -28,3 +28,7 @@ steps: - script: make app displayName: 'build application' +- script: docker run -d --rm -v `pwd`/examples/peerconnection/serverless/corpus:/app -w /app --name alphartc alphartc peerconnection_serverless receiver.json \ + && docker exec alphartc peerconnection_serverless sender.json + displayName: 'run example' + diff --git a/examples/peerconnection/serverless/corpus/receiver.json b/examples/peerconnection/serverless/corpus/receiver.json index 15e4100ee7..4105b796ad 100644 --- a/examples/peerconnection/serverless/corpus/receiver.json +++ b/examples/peerconnection/serverless/corpus/receiver.json @@ -2,24 +2,19 @@ "serverless_connection": { "autoclose": 20, "sender": { - "enabled": false, - "dest_ip": "127.0.0.1", - "dest_port": 8888 + "enabled": false }, "receiver": { "enabled": true, "listening_ip": "0.0.0.0", - "listening_port": 8888 + "listening_port": 8000 } }, - "bwe_feedback_duration": 200, - "onnx": { "onnx_model_path": "onnx-model.onnx" }, - - "video_source":{ + "video_source": { "video_disabled": { "enabled": true }, @@ -34,7 +29,6 @@ "file_path": "testmedia/test.yuv" } }, - "audio_source": { "microphone": { "enabled": false @@ -56,4 +50,4 @@ "file_path": "outvideo.yuv" } } -} +} \ No newline at end of file diff --git a/examples/peerconnection/serverless/corpus/sender.json b/examples/peerconnection/serverless/corpus/sender.json index 59170a94e8..12d32d383e 100644 --- a/examples/peerconnection/serverless/corpus/sender.json +++ b/examples/peerconnection/serverless/corpus/sender.json @@ -1,25 +1,20 @@ { "serverless_connection": { - "autoclose": 200, + "autoclose": 20, "sender": { "enabled": true, - "dest_ip": "192.168.0.100", - "dest_port": 8888 + "dest_ip": "0.0.0.0", + "dest_port": 8000 }, "receiver": { - "enabled": false, - "listening_ip": "127.0.0.1", - "listening_port": 8888 + "enabled": false } }, - "bwe_feedback_duration": 200, - "onnx": { "onnx_model_path": "onnx-model.onnx" }, - - "video_source":{ + "video_source": { "video_disabled": { "enabled": false }, @@ -34,7 +29,6 @@ "file_path": "testmedia/test.yuv" } }, - "audio_source": { "microphone": { "enabled": false @@ -47,4 +41,4 @@ "save_to_file": { "enabled": false } -} +} \ No newline at end of file From cd3017b02a9996c28e37902950cc162ae2dd5672 Mon Sep 17 00:00:00 2001 From: Ze Gan Date: Fri, 20 Nov 2020 17:43:20 +0800 Subject: [PATCH 3/3] Fix azure pipeline Signed-off-by: Ze Gan --- azure-pipelines.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 7f4b571cfb..7de97f51aa 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -28,7 +28,8 @@ steps: - script: make app displayName: 'build application' -- script: docker run -d --rm -v `pwd`/examples/peerconnection/serverless/corpus:/app -w /app --name alphartc alphartc peerconnection_serverless receiver.json \ +- script: make release + && docker run -d --rm -v `pwd`/examples/peerconnection/serverless/corpus:/app -w /app --name alphartc alphartc peerconnection_serverless receiver.json && docker exec alphartc peerconnection_serverless sender.json displayName: 'run example'