59 lines
1.6 KiB
Markdown
59 lines
1.6 KiB
Markdown
# What is it?
|
|
|
|
In this repository collected different pipelines with workarounds for zero latency streaming.
|
|
Main idea for now is using of docker container with running Ubuntu 22.04 distro inside, mostly for testing purposes.
|
|
We must passthrough in this case GPU and Decklink devices for this purpose it is necessary to have similar driver versions on host and container system, otherwise it just will not work.
|
|
Component diagram showing what we want to achieve
|
|
|
|
## How to run
|
|
|
|
It is suggested to use `nohup` for background execution.
|
|
|
|
```sh
|
|
# create venv
|
|
$ python3 -m venv ./.Python
|
|
$ . .Python/bin/activate
|
|
$ pip install -r gstAutotest/requirements.txt
|
|
$ nohup python3 ./gstAutotest/gstreamerAutotest.py -c="./gstAutotest/autotest-conf.yaml" &
|
|
```
|
|
Output will be saved in **results** folder.
|
|
|
|
|
|
## UML diagram with latency element explanation
|
|
|
|
```plantuml
|
|
``@startuml
|
|
node "Host" {
|
|
package "Docker" {
|
|
interface "UDP socket" as USock
|
|
package "Container" {
|
|
USock - [Gst Pipeline]
|
|
}
|
|
}
|
|
|
|
USock ..> NetworkBridge
|
|
[Kernel] -left- GPU
|
|
DeckLink -up- [Kernel]
|
|
NetworkBridge - [Docker]
|
|
NetworkAdapter -left- [Kernel]
|
|
|
|
[Gst Pipeline] ..> GPU
|
|
[Gst Pipeline] ..> DeckLink
|
|
NetworkBridge ..> NetworkAdapter
|
|
}
|
|
node "Router" {
|
|
port PhysicalPort1
|
|
port PhysicalPort2
|
|
NetworkAdapter --> PhysicalPort2
|
|
}
|
|
node "Oculus" {
|
|
interface WiFi
|
|
component MedicineApp
|
|
MedicineApp <-- WiFi
|
|
WiFi --> PhysicalPort1
|
|
}
|
|
@enduml
|
|
```sh
|
|
sudo docker run --runtime=nvidia --gpus all -v ~/git/gstreamer-pipelines/:/app deepstream-gst:12.6
|
|
```
|