From ab92c989c6103bae5ce1894227e3ed25cb585477 Mon Sep 17 00:00:00 2001 From: Zhongyang Xia Date: Thu, 19 Nov 2020 11:39:28 +0000 Subject: [PATCH 1/6] 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/6] 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 61dbc30c413a160dc43fb81cc3592a352295b1ed Mon Sep 17 00:00:00 2001 From: Xia Zhongyang Date: Fri, 20 Nov 2020 15:23:09 +0800 Subject: [PATCH 3/6] Update azure-pipelines.yml --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 7f4b571cfb..9a0f15608f 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -25,7 +25,7 @@ steps: - script: make sync displayName: 'sync dependencies' -- script: make app +- script: make app && make release displayName: 'build application' - script: docker run -d --rm -v `pwd`/examples/peerconnection/serverless/corpus:/app -w /app --name alphartc alphartc peerconnection_serverless receiver.json \ From 7579c15d5e3d6cc03fb137d18d6ade8f4ca508f2 Mon Sep 17 00:00:00 2001 From: Xia Zhongyang Date: Fri, 20 Nov 2020 16:16:41 +0800 Subject: [PATCH 4/6] Update azure-pipelines.yml --- azure-pipelines.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 9a0f15608f..754b41ae52 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -25,9 +25,12 @@ steps: - script: make sync displayName: 'sync dependencies' -- script: make app && make release +- script: make app displayName: 'build application' +- script: make release + displayName: 'build release image' + - 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' From 2c6098c4f02a8c5d10eaaf8e305507e9b298bf34 Mon Sep 17 00:00:00 2001 From: Xia Zhongyang Date: Fri, 20 Nov 2020 17:14:52 +0800 Subject: [PATCH 5/6] Update azure-pipelines.yml --- azure-pipelines.yml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 754b41ae52..d70ce27c03 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -31,7 +31,9 @@ steps: - script: make release displayName: 'build release image' -- 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' +- script: docker run -d --rm -v `pwd`/examples/peerconnection/serverless/corpus:/app -w /app --name alphartc alphartc peerconnection_serverless receiver.json + displayName: 'start receiver' + +- script: docker exec alphartc peerconnection_serverless sender.json + displayName: 'start sender' From f7e8e6f34e96cb57b612d004c1c31baab674876d Mon Sep 17 00:00:00 2001 From: Xia Zhongyang Date: Fri, 20 Nov 2020 18:41:03 +0800 Subject: [PATCH 6/6] Update azure-pipelines.yml --- azure-pipelines.yml | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index d70ce27c03..d232e8bedd 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -32,8 +32,5 @@ steps: displayName: 'build release image' - script: docker run -d --rm -v `pwd`/examples/peerconnection/serverless/corpus:/app -w /app --name alphartc alphartc peerconnection_serverless receiver.json - displayName: 'start receiver' - -- script: docker exec alphartc peerconnection_serverless sender.json - displayName: 'start sender' - + && docker exec alphartc peerconnection_serverless sender.json + displayName: 'run example'